生产订单审核,下达报错问题(客户二开单据转换)原创
金蝶云社区-Tracy_Huang
Tracy_Huang
7人赞赏了该文章 8,426次浏览 未经作者许可,禁止转载编辑于2022年11月10日 19:04:52
summary-icon摘要由AI智能服务提供

文本概述:生产订单审核或下达报错,源于客户二次开发单据转换时忽略“组别”和“行标识”字段赋值。解决需通过插件重写AfterConvert事件赋值,或采用非插件法但需限制单据合并。另,报错还因未映射基本单位字段或序列号单位无值。

生产订单审核或者下达报如下错误问题分析:

最近,多次遇到上述这种问题:生产订单在审核或者下达的时候报错(我们最近的5.0补丁和6.0补丁都已做了容错处理)
上述这个问题基本上都是客户二开单据转换路线(比如从采购订单下推生产订单或者内部交易单下推生产订单),暴露出来的问题!

所以,我在这里做一下总结分析:

1、首先,二开单据转换路线(只针对从其他单据到生产订单的转换路线),必须了解生产订单上有两个比较重要的字段的含义:
组别(FGROUP):这个字段的用处是为了记录联副产品的关系,主产品的FGroup和联副产品的FGroup是一样的,每个主产品之间的FGroup是不一致的
行标识(FROWID):这个字段为了记录父子关系,为了构建树形结构的关系
2、客户在二开单据的时候很容易忽略掉这两个字段(因为是隐藏的,有自己的特殊含义),所以客户在二开的时候,通常不会给这两个字段赋值,这样就会造成上面的报错
3、要解决上面的问题,客户就必须通过单据转换插件来处理了(类似可以参考销售订单到生产订单),当然,我这里也会粗略的教大家如何对这两个字段赋值(这里需要有开发基础了):
    客户要新加一个插件类,这个类继承于BaseBillConvertServicePlugIn,在这个插件类里面重写AfterConvert事件,在这个事件里面,对生产订单数据包里面的FGROUP和FROWID进行赋值
            FGROUP赋值的方式:主产品的FGROUP等于FSEQ字段,联副产品的FGROUP等于主产品的FGROUP
            FROWID赋值的方式:通过生产一个随机的GUID(内部已提供 SequentialGuid.NewGuid().ToString()生产一个GUID),给FROWID赋值


PS:也有不用二开插件的方法,但是此方法有局限性,不支持多张单据合并下推生产订单,只适用于一张单据多条分录下推生产订单,配置方法如下:

1、单据转换字段映射加上子项明细组别的映射,来源于上游单据体的序号,如图:

blob.png


2、单据转换表单服务策略,新增服务,如下图:

blob.png


二开单据转换到生产订单,提示如下错误:

111.png

原因有两种,比较常见是第一种:

第一种是二开单据转换到生产订单,字段映射关系未映射基本单位字段,如下图:

222.png

第二种是物料启用了序列号管理,但是序列号单位没有值,如下图:

333.png