在处理生产退料单时,发现复制物料后“生产任务单号”为空。经分析,问题源于BOS明细实体的字段顺序排列。调整顺序后问题解决。总结指出BOS字段顺序影响系统赋值,且BOS中与用户前端看到的顺序可不同,用户可自定义前端顺序。
一、遇到的问题
如下图,操作生产退料单的时候,先是从生产用料清单下推了两条物料到生产退料单中,然后复制了第一行的物料出来想改一下退料类型为不良退料,结果发现“生产任务单号”为空(这个生产任务单号就是系统预置的生产订单号,我们内部沿用WISE的叫法改成了任务单号)。
然后经过后台查看,发现这个退料单的生产订单内码和行ID都是有存储了的,结果却没有带出任务单号,这个是什么问题呢?
二、分析问题
经过一段分析之后,对比了同一个账套的生产领料单是正常的,然后发现了演示账套的生产退料单也是正常的,后面有个同事发现这个有问题的账套的生产订单编号是排在BOS里面的表体第一位的,所以他推测是和这个字段的排列顺序有关系,如下图
三、验证思路
在测试账套把这个生产任务单编号挪到物料编码后面,重新回到生产退料单中复制分录行,就可以正常带出任务单号了(如下图)。至此,问题已得到解决,原因就是BOS-明细实体的字段顺序排列导致的。
四、总结
1、BOS中-明细实体的字段顺序排列,会影响系统对单据明细表体的赋值,所以大家在BOS中移动实体的字段顺序的时候需要注意这个问题。
2、BOS中-明细实体的字段排列顺序,和用户在前端看到的字段顺序可以是不一样的。也就是说,我BOS里面可以把生产订单号排在物料编码后面,但是前台依然是可以由用户自己拖动任务单号放到第一位(这个是根据单据选项参数中的用户参数来决定的,可以根据用户的需求自己定义排列的顺序,如下图)。
至此,全文终!
推荐阅读