1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > U8销售出库单API接口 --参照发货通知单

U8销售出库单API接口 --参照发货通知单

时间:2021-07-13 01:09:07

相关推荐

U8销售出库单API接口 --参照发货通知单

//第二步:构造环境上下文对象,传入login,并按需设置其它上下文参数

U8EnvContext envContext = new U8EnvContext();

envContext.U8Login = u8Login;

//第三步:设置API地址标识(Url)

//当前API:添加新单据的地址标识为:U8API/MaterialOut/Add

U8ApiAddress myApiAddress = new U8ApiAddress("U8API/saleout/Add");

//第四步:构造APIBroker

U8ApiBroker broker = new U8ApiBroker(myApiAddress, envContext);

//第五步:API参数赋值

//给普通参数sVouchType赋值。此参数的数据类型为System.String,此参数按值传递,表示单据类型:01

broker.AssignNormalValue("sVouchType", "32");

MSXML2.IXMLDOMDocument2 docHead = new DOMDocument();

MSXML2.IXMLDOMDocument2 docBody = new DOMDocument();

docHead.load(Server.MapPath("./") + @"XML\dmrdrecord32.xml");

docBody.load(Server.MapPath("./") + @"XML\dmrdrecords32.xml");

MSXML2.IXMLDOMNode nodeHead = docHead.selectSingleNode("//z:row");

//sumTable.Rows[0]["dtvdate"] = u8Login.CurDate;

IXMLDOMElement xeHead = (IXMLDOMElement)nodeHead;

xeHead.setAttribute("id", "");

xeHead.setAttribute("cmaker", cUser);// DomHead[0]["cmaker"] = ""; //制单人,string类型

System.Data.DataTable ccoddt = DbHelperSQL.Query("SELECT MAX(cCode) as cCode FROM rdrecord32 ").Tables[0];

string ccode = "0000000001";

if (ccoddt != null && ccoddt.Rows.Count > 0)

{

ccode = ClsSystem.gnvl(ccoddt.Rows[0]["cCode"], "0000000001");

}

xeHead.setAttribute("ccode", ccode);// DomHead[0]["cmaker"] = ""; //制单人,string类型

xeHead.setAttribute("ddate", u8Login.CurDate);// DomHead[0]["cmaker"] = ""; //制单人,string类型

xeHead.setAttribute("ccuscode", sumTable.Rows[0]["CUST_ID"].ToString()); //客户编码,string类型

xeHead.setAttribute("cdepcode", sumTable.Rows[0]["DEPT_ID"].ToString()); //部门编码,string类型

xeHead.setAttribute("cwhcode", sumTable.Rows[0]["cWhcode"].ToString()); //仓库编码,string类型

// xeHead.setAttribute("imquantity", sumTable.Rows[0]["iquantity"].ToString());

//xeHead.setAttribute("cpspcode", sumTable.Rows[0]["cpspcode"].ToString()); //产品编码,string类型

//xeHead.setAttribute("cmpocode", sumTable.Rows[0]["cmpocode"].ToString());//订单号,string类型

//xeHead.setAttribute("iproorderid", sumTable.Rows[0]["iproorderid"].ToString());//生产订单ID,string类型

xeHead.setAttribute("cmemo", "MES自动生成单据!");//备注,string类型

MSXML2.IXMLDOMNode nodeBody = docBody.selectSingleNode("//z:row");

IXMLDOMElement xeBody = (IXMLDOMElement)nodeBody;

int irowno = 1;

xeHead.setAttribute("cSTCode", arridts.Rows[0]["cSTCode"].ToString()); //销售类型

xeBody1.setAttribute("isodid", arridts.Rows[0]["iorderdid"].ToString()); //销售订单子表ID,string类型

xeBody1.setAttribute("cbdlcode", arridts.Rows[0]["cDLCode"].ToString()); //发货单号,string类型

xeBody1.setAttribute("iorderdid", arridts.Rows[0]["iorderdid"].ToString()); //iorderdid,int类型

xeBody1.setAttribute("iordercode", arridts.Rows[0]["iordercode"].ToString());//销售订单号,string类型

xeBody1.setAttribute("iorderseq", arridts.Rows[0]["iorderseq"].ToString()); //销售订单行号,string类型

xeBody1.setAttribute("isoseq", arridts.Rows[0]["iorderseq"].ToString()); //需求跟踪行号,string类型

xeBody1.setAttribute("idlsid", arridts.Rows[0]["iDLsID"].ToString());//发货单子表ID,int类型

//传入表头的MSXML2.DOMDocumentClass对象

broker.AssignNormalValue("DomHead", docHead);

//传入表体的MSXML2.DOMDocumentClass对象

broker.AssignNormalValue("domBody", docBody);

//给普通参数domPosition赋值。此参数的数据类型为System.Object,此参数按引用传递,表示货位:传空

broker.AssignNormalValue("domPosition", null);

//该参数errMsg为OUT型参数,由于其数据类型为System.String,为一般值类型,因此不必传入一个参数变量。在API调用返回时,可以通过GetResult("errMsg")获取其值

//给普通参数cnnFrom赋值。此参数的数据类型为ADODB.Connection,此参数按引用传递,表示连接对象,如果由调用方控制事务,则需要设置此连接对象,否则传空

broker.AssignNormalValue("cnnFrom", null);

//该参数VouchId为INOUT型普通参数。此参数的数据类型为System.String,此参数按值传递。在API调用返回时,可以通过GetResult("VouchId")获取其值

string reVouchId = "";

broker.AssignNormalValue("VouchId", reVouchId);

//该参数domMsg为OUT型参数,由于其数据类型为MSXML2.IXMLDOMDocument2,非一般值类型,因此必须传入一个参数变量。在API调用返回时,可以直接使用该参数

MSXML2.IXMLDOMDocument2 domMsg = new DOMDocument();

broker.AssignNormalValue("domMsg", domMsg);

bool bCheck = Convert.ToBoolean(DbHelperSQL.GetSingle("select cValue from AccInformation where cName='ballowzero'"));

//给普通参数bCheck赋值。此参数的数据类型为System.Boolean,此参数按值传递,表示是否控制可用量。

broker.AssignNormalValue("bCheck", true);

//给普通参数bBeforCheckStock赋值。此参数的数据类型为System.Boolean,此参数按值传递,表示检查可用量

broker.AssignNormalValue("bBeforCheckStock", true);

//给普通参数bIsRedVouch赋值。此参数的数据类型为System.Boolean,此参数按值传递,表示是否红字单据

broker.AssignNormalValue("bIsRedVouch", false);

//给普通参数sAddedState赋值。此参数的数据类型为System.String,此参数按值传递,表示传空字符串

broker.AssignNormalValue("sAddedState", "");

//给普通参数bReMote赋值。此参数的数据类型为System.Boolean,此参数按值传递,表示是否远程:转入false

broker.AssignNormalValue("bReMote", false);

//第六步:调用API

if (!broker.Invoke())

{

//错误处理

Exception apiEx = broker.GetException();

if (apiEx != null)

{

if (apiEx is MomSysException)

{

MomSysException sysEx = apiEx as MomSysException;

//Console.WriteLine("系统异常:" + sysEx.Message);

re[0] = "NG";

re[1] = "系统异常:" + sysEx.Message;

}

else if (apiEx is MomBizException)

{

MomBizException bizEx = apiEx as MomBizException;

//Console.WriteLine("API异常:" + bizEx.Message);

re[0] = "NG";

re[1] = "API异常:" + bizEx.Message;

//todo:异常处理

}

//异常原因

String exReason = broker.GetExceptionString();

if (exReason.Length != 0)

{

re[0] = "NG";

re[1] = "异常原因:" + exReason;

//Console.WriteLine("异常原因:" + exReason);

}

}

//结束本次调用,释放API资源

broker.Release();

return re;

}

//第七步:获取返回结果

//获取返回值

//获取普通返回值。此返回值数据类型为System.Boolean,此参数按值传递,表示返回值:true:成功,false:失败

System.Boolean result = Convert.ToBoolean(broker.GetReturnValue());

//获取out/inout参数值

//获取普通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;

//获取普通OUT参数domMsg。此返回值数据类型为MSXML2.IXMLDOMDocument2,在使用该参数之前,请判断是否为空

MSXML2.IXMLDOMDocument2 domMsgRet = (MSXML2.IXMLDOMDocument2)broker.GetResult("domMsg");

//结束本次调用,释放API资源

broker.Release();

if (!result)

{

if (errMsgRet != null)

{

re[0] = "NG";

re[1] = errMsgRet;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。