二开部署包安装后报元数据错误错的解决办法原创
金蝶云社区-云社区用户328W0753
云社区用户328W0753
12人赞赏了该文章 1,809次浏览 未经作者许可,禁止转载编辑于2019年09月11日 15:17:47
封面

一、报错内容

报错内容.png

二、分析

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 ,这样就可让正式环境中该元数据的版本号低于了部署包中的元数据版本号

image.png

办法二:升高开发环境以及部署包的版本号(推荐方案):

  1. 每保存一次单据,该单据的版本号就会提高,所以多保存几次后再重新做部署包即可

  2. 也是直接更新数据库中的字段

    update T_META_OBJECTTYPE set Fversion='F2+1'  where FID='9338d378-ef69-4440-b011-b9c938031e4b'

'F2+1'  表示用F2的值加上1 ,这样就可让开发环境中该元数据的版本号高于正式环境中元数据版本号,再重新做部署包即可


四、查看元数据版本最简单的方法:

如果是用解决方案或者应用来做的二次开发,可以右键打开单据所在本地文件直接查看Fversion的值

image.png

image.png


后续会继续以这种形式写一下二开包报错的常用解决办法,see you~

赞 12