系统运维.数据异常.没有找到键为xxx的数据
【问题描述】
运行时,单据类型列表,WebApi测试或者单据参数配置界面报错:没有找到键为xxx的数据。
设计器,打开子系统报错:没有找到键为xxx的数据。
【问题原因】
业务对象标识必须在多个元数据主从表中保持大小写一致,虽然Sql Server类型的数据库不区分字符大小写,但是ORM底层代码按表主键值去检索数据时,是严格区分大小写的,于是就有问题了。
【解决办法】
<1>根据报错提示中给出的业务对象标识,去数据库检索所有可能出现大小写不一致的数据,并基于元数据XML中的业务对象标识进行数据修正。
/*检测是否存在业务对象标识大小写不一致的情况*/
SELECT FID,FKERNELXML FROM T_META_OBJECTTYPE WHERE FID='PUR_PurchaseOrder'
SELECT FID FROM T_META_OBJECTTYPE_E WHERE FID='PUR_PurchaseOrder'
SELECT FID FROM T_META_OBJECTTYPE_L WHERE FID='PUR_PurchaseOrder'
SELECT FID,FENTRYID FROM T_META_OBJECTTYPENAMEEX WHERE FID='PUR_PurchaseOrder'
SELECT FENTRYID FROM T_META_OBJECTTYPENAMEEX_L WHERE FENTRYID='PUR_PurchaseOrder'
<2>正确的业务对象标识,可参考表T_META_OBJECTTYPE中的FKERNELXML存储的元数据XML中的Id节点的值。如果上图中出现了业务对象标识大小写不一致的情况,需写Update语句进行修复。
例如:
UPDATE T_META_OBJECTTYPE_E SET FID='PUR_PurchaseOrder' WHERE FID='PUR_PurchaseOrder'
UPDATE T_META_OBJECTTYPE_L SET FID='PUR_PurchaseOrder' WHERE FID='PUR_PurchaseOrder'
UPDATE T_META_OBJECTTYPENAMEEX SET FID='PUR_PurchaseOrder',FENTRYID='PUR_PurchaseOrder' WHERE FID='PUR_PurchaseOrder'
UPDATE T_META_OBJECTTYPENAMEEX_L SET FENTRYID='PUR_PurchaseOrder' WHERE FENTRYID='PUR_PurchaseOrder'
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
系统运维.数据异常.没有找到键为xxx的数据
本文2024-09-23 03:57:20发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-162172.html