生产订单下推入库单的OpenAPI开发(JAVA SDK)原创
金蝶云社区-依然如昨
依然如昨
53人赞赏了该文章 783次浏览 未经作者许可,禁止转载编辑于2023年12月13日 08:09:05

一、需求

    在三方JAVA开发的完工汇报系统中,最后一道工序完工就需要同步金蝶系统里自动下推入库单入库。


二、解决方案   

    既然是下推,那肯定的用api的push方法,但是第一次push后系统报入库单上明细行物料没有批号(我们生产件启用了批号),下推失败。

    本来在手动下推的时候,这个批号是手动填的,但是即使在下推前获取了这个批号值也无法通过push方法传到目标入库单里,push方法里输入参数里没有目标单的model,所以也无法直接携带任何字段值到入库单上。


    在小小的社区里搜啊搜啊搜,找到只言片语解决方案、就问你是喜还是忧?

     “push参数里有一个CustomParams可以传值,二开插件接收这个自定义参数自行处理。”——大概就这么多!


    已经调用了api接口了,还要去开发个插件才能处理完整下推操作?我的发!

    果断去看了单据转换规则,发现生产订单行上有批号字段,字段映射里也对应了入库单的批号——OK,那就调用生产订单的修改接口,把行内批号加上,再下推不就好了?完美解决!

    push解决了,入库单生成了,可是又发现了问题:

    因为是多批入库的,本次入库的数量可能不是生产订单上的未入库数。比如订单剩余未入库1000,可能本次只完工入库300,下次可能是500,最后再来一个200的批次。但是push不管啊,直接是剩余数量全部下推下去,而且因为上面接口的原因,你根本没办法把本次300的数量携带到已生成的入库单上。

    只好再调用入库单的修改接口把实际入库数1000改成300,当时以为提交接口、审核接口就彻底搞定了,但是比较坑的事情又来了,push返回里并没有入库单单据体关键信息,没有fentryid,只有fid,你调用入库单的接口修改数量总要对应行的吧(尽管在我说的这个应用场景可能每次入库都是1行,但多行的需求也不是小概率)。没办法,只好再调用一次入库单的查询接口,把fentryid找到,对应工序汇报数量做修改,再调用提交、审核....

     好了,这就是本次生产订单下推入库单的6步调用api接口的解决方案。希望能给大家一点帮助,如果有更好的方法也请大家不吝赐教。Tks!

ps:接口调用其实很耗性能,可能save接口耗时更多一些,开发电脑上6步调用在前端有时会有稍微顿一下才显示结果,而不是无感显示。

    附6步接口源码:

    

上传图片


上传图片


赞 53