库存单据引入过程遇到未知错误,必须声明表变量"@PKValue_udt2"问题排查原创
金蝶云社区-邱育华
邱育华
17人赞赏了该文章 638次浏览 未经作者许可,禁止转载编辑于2022年11月02日 17:54:57

一、【问题现象】

1、报错:引入过程遇到未知错误,必须声明表变量"@PKValue_udt2"问题排查

2、模板是从系统下载的,几百行的时候又能导入,5K行左右就导入不进去报错

image.png


二、【原因分析】

从报错堆栈看,报错方法为FillIDAndNumMapData,应该是基础资料匹配填充的出现报错。

image.png


调试数据发现:同样的批号,有些后面有空格结尾,有些没有空格结尾

Q[59BM0CBCEWD@W(%KO_M57.jpg


看具体的报错日志:

image.png



引入的时候基础资料类型的数据会从库中匹配出对应的内码,存在系统的临时表中,临时表使用基础资料内码作为主键,当一个批号存在两种情况,空格结尾和非空格结尾,引入不进行去空格处理,sql匹配的时候不区分空格两种都匹配出同一个内码,导入插入临时表报错:插入重复的数据。


另外一次同类报错的排查,批号字段的编码有重复的造成(S字符既有全角也有半角)

image.png



总结:  

引入过程遇到未知错误,必须声明表变量"@PKValue_udt2",对于这一类的报错,重点排查:

1、基础资料编码中英文符号问题(既有全角也有半角)  

2、编码是否存在空格结尾

3、重点关注批号字段,大多数情况都是批号字段不规范导致引入报错

赞 17