由于工序计划下推工序汇报,不能以分录行下推的原因,参考如下官方帖子。
二开案例.WEBAPI.使用WEBAPI工序计划下推生成工序汇报 (kingdee.com)
实际在Postman测试,总是报如下错误:
{"IsSuccess":"false","Message":{"ClassName":"System.ArgumentException","Message":"已添加了具有相同键的项。",...}}
在这个坑里面折腾了一天,数据包各种尝试都无法解决,但奇怪的是单据保存与审核是成功的。
通过对ILSpy对源码的的分析发现,报错是如下代码行:
DynamicObjectToJsonConverter.MapDataObjectProperty(meta.BusinessInfo, jSONObject, x);
根据报错提示是此方法内部 SetBaseDataField 抛出的错误,再深入到此方法内部发现BUG所在行:
if (bdField.NameProperty != null)
{
bdObj.Add(bdField.NameProperty.Key, bdField.GetRefPropertyValue(baseDataObj, bdField.NameProperty.Key));
}
修改为:
if (bdField.NameProperty != null && !bdObj.ContainsKey(bdField.NameProperty.Key))
{
bdObj.Add(bdField.NameProperty.Key, bdField.GetRefPropertyValue(baseDataObj, bdField.NameProperty.Key));
}
希望官方尽快修复。