系统运维.元数据恢复.基于元数据修改日志恢复元数据

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

系统运维.元数据恢复.基于元数据修改日志恢复元数据

【应用场景】

<1>BOSIDE中可以对元数据的XML直接修改,直接修改元数据XML,对操作者的要求极高,很容易改坏元数据,导致元数据损坏。

<2>用户二开使用的是BOS集成开发平台,希望能将某个元数据快速恢复到某个特定的版本(协同平台有svn管理元数据,可简单快速恢复)。

<3>星空版本不低于PT-146832 [7.5.1604.4](发布时间:2020/4/2)。



【案例演示】

扩展采购订单,分3次修改该扩展,然后通过元数据修改日志,将元数据恢复到第二次修改时的状态。



【实现步骤】

<1>BOSIDE扩展采购订单,新增文本字段,保存,新增文本字段1,保存,新增文本字段2,保存。

三次保存元数据的操作,将产生3条元数据修改日志。


<2>使用扩展层的采购订单的业务对象标识去查询元数据修改日志,并获取第二次元数据修改记录的内码,用于后面进行元数据恢复。

/*元数据修改日志*/
SELECT * FROM T_BAS_METADATALOG WHERE FOBJECTID='58f7a445-893e-48ab-a646-f1e34ff22cb6'
/*元数据(多语言)修改日志*/
SELECT * FROM T_BAS_METADATALOG_L a LEFT JOIN T_BAS_METADATALOG b ON a.FID=b.FID 
WHERE b.FOBJECTID='58f7a445-893e-48ab-a646-f1e34ff22cb6'

此例中,第二次元数据修改日志的内码是425345。


<3>通过SQL,将元数据恢复到指定版本。

/*根据元数据修改日志恢复元数据*/
UPDATE T_META_OBJECTTYPE SET FKERNELXML=b.FKERNELXML
--SELECT a.FKERNELXML,b.FKERNELXML
FROM T_META_OBJECTTYPE a JOIN T_BAS_METADATALOG b ON a.FID=b.FOBJECTID
WHERE b.FID=425345
/*根据元数据修改日志恢复元数据(多语言)*/
UPDATE T_META_OBJECTTYPE_L SET FKERNELXMLLANG=c.FKERNELXMLLANG
--SELECT a.FKERNELXMLLANG,c.FKERNELXMLLANG
FROM T_META_OBJECTTYPE_L a 
JOIN T_BAS_METADATALOG b ON a.FID=b.FOBJECTID
JOIN T_BAS_METADATALOG_L c ON b.FID=c.FID AND a.FLOCALEID=c.FLOCALEID
WHERE b.FID=425345


<4>重新打开采购订单扩展节点,此时,元数据已被恢复到第二次修改时的状态。

---------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

系统运维.元数据恢复.基于元数据修改日志恢复元数据

【应用场景】<1>BOSIDE中可以对元数据的XML直接修改,直接修改元数据XML,对操作者的要求极高,很容易改坏元数据,导致元数据损坏。<2>用户...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息