委托关系脏数据处理脚本原创
金蝶云社区-戴一帆
戴一帆
8人赞赏了该文章 405次浏览 未经作者许可,禁止转载编辑于2020年12月01日 19:23:41

错误日志:

Caused by: java.lang.IllegalArgumentException: error type:need com.kingdee.eas.basedata.org.OrgUnitInfo but the parameter IObjectValue is null

at com.kingdee.bos.dao.AbstractBaseObjectCollection.checkClass(AbstractBaseObjectCollection.java:86)

at com.kingdee.bos.dao.AbstractBaseObjectCollection.addObject(AbstractBaseObjectCollection.java:119)

at com.kingdee.eas.basedata.org.OrgUnitCollection.add(OrgUnitCollection.java:14)

at com.kingdee.eas.basedata.org.app.OrgUnitRelationControllerBean._getToUnit(OrgUnitRelationControllerBean.java:159)

 

一般是委托关系里有垃圾数据所致,解决方案如下:

1、 检查数据:select * from T_Org_UnitRelation where ffromUnitid not in (select fid from T_ORG_BaseUnit) or ftounitid not in (select fid from T_ORG_BaseUnit)

2、如果1有数据返回,先备份数据:select * into bak0427_UnitRelation from T_Org_UnitRelation

3、删除垃圾数据:delete from T_Org_UnitRelation where ffromUnitid not in (select fid from T_ORG_BaseUnit) or ftounitid not in (select fid from T_ORG_BaseUnit)

4、 重启服务(此步骤可以根据实际情况选择是否要执行,如果以上脚本执行完不报错了,可以不重启)。

备注:第四步重启服务是为了清除缓存,因为组织在系统中会有强缓存。执行脚本也可清缓存,则不用重启服务。清除组织缓存脚本(服务端脚本):com.kingdee.eas.basedata.org.app.cache.OrgCacheImpl.clearOrgCache()

 


赞 8