打开这个东西-API资源管理器
找到生产订单接口
查看使用说明
新建VS项目
注意步骤
//第二步:构造环境上下文对象,传入login,并按需设置其它上下文参数
U8EnvContext envContext = new U8EnvContext();
envContext.U8Login = u8Login;
//第三步:设置API地址标识(Url)
//当前API:新增生产订单的地址标识为:U8API/MOrder/MOrderAdd
U8ApiAddress myApiAddress = new U8ApiAddress("U8API/MOrder/MOrderAdd");
//第四步:构造APIBroker
U8ApiBroker broker = new U8ApiBroker(myApiAddress, envContext);
ExtensionBusinessEntity extbo = broker.GetExtBoEntity("extbo");
填写主表字段如下
extbo[0]["MoId"] = "1000000001"; //主键,int类型
extbo[0]["MoCode"] = ccode; //生产订单号(必须),string类型
/***************************** 非必输字段 *****************************/
extbo[0]["CreateUser"] = cUser; //制单人(导出用),string类型
extbo[0]["CreateDate"] = DateTime.Now; //制单日期(导出用),DateTime类型
extbo[0]["CreateTime"] = DateTime.Now;//制单时间(导出用),DateTime类型
extbo[0]["ModifyUser"] = ""; //修改人(导出用),string类型
extbo[0]["ModifyDate"] = ""; //修改日期(导出用),DateTime类型
extbo[0]["ModifyTime"] = ""; //修改时间(导出用),DateTime类型
填写子表字段如下
ExtensionBusinessEntity Mom_OrderDetail = extbo[0].SubEntity["Mom_OrderDetail"];
Mom_OrderDetail[0]["DMoClass"] = list.DMoClass; //类型(1标准/2非标准/3重复计划),int类型
Mom_OrderDetail[0]["DInvCode"] = list.DInvCode.Trim(); //物料编码(必须),string类型 "B010-0237002"
Mom_OrderDetail[0]["DStartDate"] = list.DStartDate.Trim(); //开工日期(必须),DateTime类型 "2020-09-20"
Mom_OrderDetail[0]["DDueDate"] = list.DDueDate.Trim(); //完工日期(必须),DateTime类型 "2020-09-30"
Mom_OrderDetail[0]["DQty"] = list.DQty; //生产数量(必须),double类型 "666"
Mom_OrderDetail[0]["DSortSeq"] = DSortSeq; //行号(必须),int类型
DSortSeq++;
/***************************** 非必输字段 *****************************/
Mom_OrderDetail[0]["DInvAddCode"] = ""; //物料代号(导出用),string类型
Mom_OrderDetail[0]["DInvName"] = ""; //物料名称(导出用),string类型
Mom_OrderDetail[0]["DInvStd"] = ""; //物料规格(导出用),string类型
Mom_OrderDetail[0]["DInvFree_1"] = ""; //物料自由项1,string类型
Mom_OrderDetail[0]["DInvFree_2"] = ""; //物料自由项2,string类型
Mom_OrderDetail[0]["DInvFree_3"] = ""; //物料自由项3,string类型
Mom_OrderDetail[0]["DInvFree_4"] = ""; //物料自由项4,string类型
Mom_OrderDetail[0]["DInvFree_5"] = ""; //物料自由项5,string类型
Mom_OrderDetail[0]["DInvFree_6"] = ""; //物料自由项6,string类型
Mom_OrderDetail[0]["DInvFree_7"] = ""; //物料自由项7,string类型
Mom_OrderDetail[0]["DInvFree_8"] = ""; //物料自由项8,string类型
Mom_OrderDetail[0]["DInvFree_9"] = ""; //物料自由项9,string类型
Mom_OrderDetail[0]["DInvFree_10"] = ""; //物料自由项10,string类型
Mom_OrderDetail[0]["DInvDefine_1"] = ""; //物料自定义项1,string类型
Mom_OrderDetail[0]["DInvDefine_2"] = ""; //物料自定义项2,string类型
Mom_OrderDetail[0]["DInvDefine_3"] = ""; //物料自定义项3,string类型
Mom_OrderDetail[0]["DInvDefine_4"] = ""; //物料自定义项4,string类型
Mom_OrderDetail[0]["DInvDefine_5"] = ""; //物料自定义项5,string类型
Mom_OrderDetail[0]["DInvDefine_6"] = ""; //物料自定义项6,string类型
Mom_OrderDetail[0]["DInvDefine_7"] = ""; //物料自定义项7,string类型
Mom_OrderDetail[0]["DInvDefine_8"] = ""; //物料自定义项8,string类型
Mom_OrderDetail[0]["DInvDefine_9"] = ""; //物料自定义项9,string类型
Mom_OrderDetail[0]["DInvDefine_10"] = ""; //物料自定义项10,string类型
Mom_OrderDetail[0]["DInvDefine_11"] = ""; //物料自定义项11,int类型
Mom_OrderDetail[0]["DInvDefine_12"] = ""; //物料自定义项12,int类型
Mom_OrderDetail[0]["DInvDefine_13"] = ""; //物料自定义项13,double类型
Mom_OrderDetail[0]["DInvDefine_14"] = ""; //物料自定义项14,double类型
Mom_OrderDetail[0]["DInvDefine_15"] = ""; //物料自定义项15,DateTime类型
Mom_OrderDetail[0]["DInvDefine_16"] = ""; //物料自定义项16,DateTime类型
Mom_OrderDetail[0]["DMoTypeCode"] = list.DMoTypeCode.Trim(); //订单类别,string类型
Mom_OrderDetail[0]["DMoTypeDesc"] = ""; //类别说明(导出用),string类型
Mom_OrderDetail[0]["DStatus"] = ""; //状态,int类型
Mom_OrderDetail[0]["DLeadTime"] = ""; //提前期,int类型
Mom_OrderDetail[0]["DInvUnitName"] = ""; //计量单位名称(导出用),string类型
Mom_OrderDetail[0]["DMrpQty"] = ""; //MRP净算量,double类型
Mom_OrderDetail[0]["DChangeRate"] = ""; //换算率,double类型
Mom_OrderDetail[0]["DAuxUnitCode"] = ""; //辅助单位,string类型
Mom_OrderDetail[0]["DAuxUnitName"] = ""; //辅助单位名称(导出用),string类型
Mom_OrderDetail[0]["DAuxQty"] = ""; //辅助生产量(导出用),double类型
Mom_OrderDetail[0]["DMoLotCode"] = list.MoLotCode.Trim(); //生产批号,string类型
Mom_OrderDetail[0]["DWhCode"] = list.DWhCode.Trim(); //预入仓库,string类型
Mom_OrderDetail[0]["DWhName"] = ""; //仓库名称(导出用),string类型
Mom_OrderDetail[0]["DMDeptCode"] = list.DMDeptCode.Trim(); //生产部门,string类型
Mom_OrderDetail[0]["DDeptName"] = ""; //部门名称(导出用),string类型
Mom_OrderDetail[0]["DBomType"] = list.BomType.Trim(); //BOM选择(导出用),int类型
Mom_OrderDetail[0]["DBomVersion"] = list.BomVersion.Trim(); //BOM版本号(导出用),int类型
Mom_OrderDetail[0]["DBomVersionDesc"] = ""; //BOM版本说明(导出用),string类型
Mom_OrderDetail[0]["DBomVersionDate"] = ""; //BOM版本日期(导出用),DateTime类型
Mom_OrderDetail[0]["DBomIdentCode"] = ""; //BOM替代标识(导出用),string类型
Mom_OrderDetail[0]["DBomIdentDesc"] = ""; //BOM替代说明(导出用),string类型
Mom_OrderDetail[0]["DRoutingType"] = ""; //工艺路线选择,int类型
Mom_OrderDetail[0]["DRoutingVersion"] = ""; //工艺路线版本号,int类型
Mom_OrderDetail[0]["DRoutingVersionDesc"] = ""; //工艺路线版本说明(导出用),string类型
Mom_OrderDetail[0]["DRoutingVersionDate"] = ""; //工艺路线版本日期,DateTime类型
Mom_OrderDetail[0]["DRoutingIdentCode"] = ""; //工艺路线替代标识,string类型
Mom_OrderDetail[0]["DRoutingIdentDesc"] = ""; //工艺路线替代说明(导出用),string类型
Mom_OrderDetail[0]["DRemark"] = list.DRemark.Trim(); //备注,string类型
Mom_OrderDetail[0]["DDefine_22"] = "是"; //表体自定义项1,string类型 Define22代表ROHS标志,默认给"是"
Mom_OrderDetail[0]["DDefine_23"] = list.Define23.Trim(); //表体自定义项2,string类型
Mom_OrderDetail[0]["DDefine_24"] = list.Define24.Trim(); //表体自定义项3,string类型
最后填写子件表
ExtensionBusinessEntity Mom_MoAllocate = Mom_OrderDetail[0].SubEntity["Mom_MoAllocate"];
/****************************** 必输字段 ******************************/
Mom_MoAllocate[i]["DSortSeq"] = dataRow["SortSeq"]; //子件行号(必须),int类型
Mom_MoAllocate[i]["DOpSeq"] = dataRow["OpSeq"]; //工序行号,string类型
Mom_MoAllocate[i]["DInvCode"] = dataRow["子件编码"]; //子件编码(必须),string类型
Mom_MoAllocate[i]["DBaseQtyN"] = dataRow["基本用量_分子"]; //基本用量,double类型
Mom_MoAllocate[i]["DBaseQtyD"] = dataRow["基本用量_分母"]; //基础数量,double类型
Mom_MoAllocate[i]["DStartDemDate"] = list.DStartDate.Trim(); //需求日期,DateTime类型
//第六步:调用API
if (!broker.Invoke())
{
//错误处理
Exception apiEx = broker.GetException();
if (apiEx != null)
{
if (apiEx is MomSysException)
{
MomSysException sysEx = apiEx as MomSysException;
//Console.WriteLine("系统异常:" + sysEx.Message);
// _return = PubConstant.CombReturn(false, "ERROR81", "系统异常:" + sysEx.Message);
m.Message = "系统异常:" + sysEx.Message;
m.Return = "False";
m.modid = "-1";
m.MoCode = "-1";
_return = GetMOM_moallocate(m, "-1");
}
else if (apiEx is MomBizException)
{
MomBizException bizEx = apiEx as MomBizException;
//Console.WriteLine("API异常:" + bizEx.Message);
//_return = PubConstant.CombReturn(false, "ERROR82", "API异常:" + bizEx.Message);
m.Message = "API异常:" + bizEx.Message;
m.Return = "False";
m.modid = "-1";
m.MoCode = "-1";
_return = GetMOM_moallocate(m, "-1");
//todo:异常处理
}
//异常原因
String exReason = broker.GetExceptionString();
if (exReason.Length != 0)
{
//_return = PubConstant.CombReturn(false, "ERROR83", "异常原因:" + exReason);
m.Message = "异常原因:" + exReason;
m.Return = "False";
m.modid = "-1";
m.MoCode = "-1";
_return = GetMOM_moallocate(m, "-1");
//Console.WriteLine("异常原因:" + exReason);
}
}
//结束本次调用,释放API资源
broker.Release();
return _return;
}
//第七步:获取返回结果
//获取返回值
//获取普通返回值。此返回值数据类型为System.Boolean,此参数按值传递,表示返回值: true:成功, false: 失败
System.Boolean result = Convert.ToBoolean(broker.GetReturnValue());
获取普通OUT参数errMsg。此返回值数据类型为System.String,在使用该参数之前,请判断是否为空
//System.String errMsgRet = broker.GetResult("errMsg") as System.String;
获取普通INOUT参数VouchId。此返回值数据类型为System.String,在使用该参数之前,请判断是否为空
//System.String VouchIdRet = broker.GetResult("VouchId") as System.String;
System.String cCodeRet = broker.GetResult("cCode") as System.String;
System.String VouchIdRet = "";
获取普通OUT参数domMsg。此返回值数据类型为MSXML2.IXMLDOMDocument2,在使用该参数之前,请判断是否为空
//MSXML2.IXMLDOMDocument2 domMsgRet = (MSXML2.IXMLDOMDocument2)broker.GetResult("domMsg");
//结束本次调用,释放API资源
broker.Release();
netLogin.ShutDown();
u8Login.ShutDown();
if (!result){失败}else{成功}