![封面](/download?fileName=010042a6c5660e31471a9f9e5d4ddac8cada.jpg)
一、报错内容
二、分析
9338d378-ef69-4440-b011-b9c938031e4b.dym,Error: MetaFile Version 637032075294672434 Is Lower than Meta in DBVersion 637037061406837593
这个报错的意思是:部署包中元数据9338d378-ef69-4440-b011-b9c938031e4b的版本号低于安装的目标环境中该元数据的版本号,所以才导致不会执行二开包中的该内容
出现这种情况的原因一般都是目标环境(正式环境)中有人直接通过boside去保存过该业务对象,所以才导致版本号升高
三、解决办法
以9338d378-ef69-4440-b011-b9c938031e4b为例,部署包以及开发环境中该业务对象的版本都是637032075294672434(F1),正式环境中版本号为637037061406837593(F2)(为方便阅读,均以F1和F2代替元数据版本号,且F1<F2)
办法一:降低目标环境(正式环境)中该业务对象的版本,在正式账套中执行语句
update T_META_OBJECTTYPE set Fversion='F1-1' where FID='9338d378-ef69-4440-b011-b9c938031e4b'
'F1-1' 表示用F1的值减去1 ,这样就可让正式环境中该元数据的版本号低于了部署包中的元数据版本号
办法二:升高开发环境以及部署包的版本号(推荐方案):
每保存一次单据,该单据的版本号就会提高,所以多保存几次后再重新做部署包即可
也是直接更新数据库中的字段
update T_META_OBJECTTYPE set Fversion='F2+1' where FID='9338d378-ef69-4440-b011-b9c938031e4b'
'F2+1' 表示用F2的值加上1 ,这样就可让开发环境中该元数据的版本号高于正式环境中元数据版本号,再重新做部署包即可
四、查看元数据版本最简单的方法:
如果是用解决方案或者应用来做的二次开发,可以右键打开单据所在本地文件直接查看Fversion的值
后续会继续以这种形式写一下二开包报错的常用解决办法,see you~