API接口物料清单之替代设置问题
金蝶云社区-云社区用户22yY3288
云社区用户22yY3288
1人赞赏了该文章 1,256次浏览 未经作者许可,禁止转载编辑于2016年07月19日 15:39:56

我调用了物料清单保存的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() });

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0