记录一个二开插件调用销售订单下推生成生产订单的坑原创
金蝶云社区-云社区用户4z450611
云社区用户4z450611
60人赞赏了该文章 532次浏览 未经作者许可,禁止转载编辑于2023年11月15日 00:54:45

通常情况下,我们在插件中调用自动下推时,如果是按行下推则无需传入源单单据内码,只要传分录内码就行。

【官方知识】:在插件中实现自定义下推 (kingdee.com)

企业微信截图_16999808715871.png


但标准产品的销售订单下推生产订单中,有一个插件(Kingdee.K3.MFG.PRD.App.BillConvertServicePlugIn.SeOrder2MoConvert),里面用到了下推参数里的 销售订单内码。


如果我们调用 销售订单->生产订单的下推,按行下推,源单内码不传的话,会抛出异常:"将参数值从 String 转换到 Int64 失败。"



                        var selectedRow = new ListSelectedRow(Convert.ToString(order["Id"]),//这个订单内码一定要传! Convert.ToString(row["Id"]), rowNo++, rule.SourceFormId);
                        selectedRow.EntryEntityKey = "FSaleOrderEntry";
                        selectedRows.Add(selectedRow);
......
          ConvertServiceHelper.Push(ctx, pushArgs, pushOption);


大半夜先怀疑二开插件问题,排除之后又怀疑是执行计划调用,里面的Context会不会有问题。。。

排查数小时未果,最后反编译标准插件源码看了半天。。

赞 60