我调用了物料清单保存的API没有问题,生成了父料A,子项物料B。
这时候我需要设置B的替代料B1,通过系统替代设置操作没问题,但通过接口替代设置返回TRUE没有效果,不知道什么原因?
我估计是没有设置需要替代的主料B,研究了很久也不知道如何构造B和B1的关联关系。
代码如下:
JObject jsonRoot = new JObject();
// Creator: 创建用户
//jsonRoot.Add("RepSetup", "demo");
// NeedUpDateFields: 哪些字段需要更新?为空则表示参数中全部字段,均需要更新
//jsonRoot.Add("NeedUpDateFields", new JArray(""));
// Model: 单据详细数据参数
JObject model = new JObject();
jsonRoot.Add("Model", model);
// 单据主键:必须填写,系统据此判断是新增还是修改单据;新增单据,填0 120879
model.Add("FID", FID);
JObject basedata = new JObject();
//创建组织 FCreateOrgId {\"FOrgID\":0,\"FNumber\":\"String\",\"FName\":\"String\"}
basedata.Add("FNumber", "101.2");
model.Add("FCreateOrgId", basedata);
//使用组织 FUseOrgId {\"FOrgID\":0,\"FNumber\":\"String\",\"FName\":\"String\"}
basedata = new JObject();
basedata.Add("FNumber", "101.2");
model.Add("FUseOrgId", basedata);
//单据类型
basedata = new JObject();
basedata.Add("FNumber", "WLQD01_SYS");
model.Add("FBILLTYPE", basedata);
//物料编码
basedata = new JObject();
basedata.Add("FNumber", "1.01.001.0066TEST");
model.Add("FMATERIALID", basedata);
//物料单位
basedata = new JObject();
basedata.Add("FNumber", "Pcs");
model.Add("FUNITID", basedata);
//BOM分类
model.Add("FBOMCATEGORY", 1);
//BOM用途
model.Add("FBOMUSE", 99);
// 开始构建单据体参数:集合参数JArray
JArray entryRows = new JArray();
// 把单据体行集合,添加到model中,以单据体Key为标识
string entityKey = "FTreeEntity";
model.Add(entityKey, entryRows);
// 添加新行,把新行加入到单据体行集合
//JObject entryRow = new JObject();
//entryRows.Add(entryRow);
//// 给新行,设置关键字段值
//// 单据体主键:必须填写,系统据此判断是新增还是修改行
//entryRow.Add("FEntryID", FENTRYID);
//替代
// 添加新行,把新行加入到单据体行集合
JObject entryRow1 = new JObject();
entryRows.Add(entryRow1);
// 给新行,设置关键字段值
// 单据体主键:必须填写,系统据此判断是新增还是修改行
entryRow1.Add("FEntryID", 0);
//物料(FMaterialId):基础资料,填写编码
basedata = new JObject();
basedata.Add("FNumber", "1.01.231-0142-000");
entryRow1.Add("FMATERIALIDCHILD", basedata);
//// 子项类型
entryRow1.Add("FMATERIALTYPE", 3);
//用量类型
entryRow1.Add("FDOSAGETYPE", 2);
////分子
entryRow1.Add("FNUMERATOR", 2);
//分母
entryRow1.Add("FDENOMINATOR", 1);
// 调用Web API接口服务,保存采购订单
string jsonstr = client.Execute
"Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExcuteOperation",
new object[] { "ENG_BOM","RepSetup", jsonRoot.ToString() });
推荐阅读
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *