一、说明:
出现【未将对象引用设置到对象的实例】这个报错提示的原因有多种,本文暂时只列举了一种情况以及解决方案(其他情况后续遇到后继续补充)
二、报错原文:
三、分析
出现这种情况的原因之一是二开的单据(1)继承了一些基模板(2)扩展了其他包的单据(3)多级扩展
自己制作的部署包中只包含了自己做的这一层的单据,而恰好安装的目标环境中缺少继承的基模板、多级扩展的中间层等单据,所以才会导致上面日志的错误
例如日志中的元数据aed2802f-32ca-4df7-a7a2-64667168d0d8,在数据库或者bos中查看它的依赖项:
可知aed2802f-32ca-4df7-a7a2-64667168d0d8依赖了,6804504e05074ed5a4d23ec18b916a66,BOS_BuinessBillWithEntryModel,BOS_BusinessBillModel,BOS_BillModel,
其中BOS_BuinessBillWithEntryModel,BOS_BusinessBillModel,BOS_BillModel,是金蝶标准的,所以每个环境会自带
但是6804504e05074ed5a4d23ec18b916a66是二开的,在数据库中查询不到此单
缺少6804504e05074ed5a4d23ec18b916a66就是安装报错的关键
四、解决办法
第一种方案:在目标环境中安装上缺少的其他人做的部署包(例如先执行包含单据6804504e05074ed5a4d23ec18b916a66的部署包,再执行自己的部署包)
第二种方案:在自己的部署包中同时将自己的单据依赖的其他单据(非金蝶的)一起加到部署包中,即将6804504e05074ed5a4d23ec18b916a66也一起加到自己的部署包中
推荐阅读