//第二步:构造环境上下文对象,传入login,并按需设置其它上下文参数
                U8EnvContext envContext = new U8EnvContext();
                envContext.U8Login = u8Login;

//设置上下文参数
                envContext.SetApiContext("VoucherType", 2); //上下文数据类型:int,含义:单据类型, 采购到货单 2 
                envContext.SetApiContext("bPositive", true); //上下文数据类型:bool,含义:红蓝标识:True,蓝字;False,红字
                envContext.SetApiContext("sBillType", "0"); //上下文数据类型:string,含义:到货单类型, 到货单 0 退货单 1
                envContext.SetApiContext("sBusType", "普通采购"); //上下文数据类型:string,含义:业务类型:普通采购,直运采购,受托代销

//第三步:设置API地址标识(Url)
                //当前API:新增或修改的地址标识为:U8API/ArrivedGoods/VoucherSave
                U8ApiAddress myApiAddress = new U8ApiAddress("U8API/ArrivedGoods/VoucherSave");

//第四步:构造APIBroker
                U8ApiBroker broker = new U8ApiBroker(myApiAddress, envContext);

MSXML2.IXMLDOMDocument2 docHead = new DOMDocument();
                MSXML2.IXMLDOMDocument2 docBody = new DOMDocument();
                docHead.load(Server.MapPath("./") + @"XML\pu_arrivalvouch.xml");
                docBody.load(Server.MapPath("./") + @"XML\pu_arrivalvouchs.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 PU_ArrivalVouch ").Tables[0];
                string ccode = "0000000001";

if (ccoddt != null && ccoddt.Rows.Count > 0)
                {
                    ccode = ClsSystem.gnvl(ccoddt.Rows[0]["cCode"], "0000000001");
                }

string cBusType = "";
                string cRdCode = "";
                string cPTCode = "";
                string cSource = "";

if ((string)sumTable.Rows[0]["cBusType"] == "01")
                {
                    cBusType = "普通采购";
                    cPTCode = "01";
                    cSource = "采购到货单";
                }
                else if ((string)sumTable.Rows[0]["cBusType"] == "02")
                {
                    cBusType = "委外加工";
                    cPTCode = "02";
                    cSource = "委外到货单";
                }

string arridSql = "SELECT ID,cPersonCode,cpocode  FROM dbo.PU_ArrivalVouch WHERE cCode='" + ClsSystem.gnvl(sumTable.Rows[0]["cCode"], "") + "' ";
                System.Data.DataTable arridt = DbHelperSQL.Query(arridSql).Tables[0];
                string arrid = "";
                string cPersonCode = "";
                string cpocode = "";
                if (arridt != null && arridt.Rows.Count > 0)
                {
                    arrid = ClsSystem.gnvl(arridt.Rows[0]["ID"], "");
                    cPersonCode = ClsSystem.gnvl(arridt.Rows[0]["cPersonCode"], "");
                    xeHead.setAttribute("cpersoncode", cPersonCode); //职员编号,string类型
                    cpocode = ClsSystem.gnvl(arridt.Rows[0]["cpocode"], "");
                }
                else
                {
                    re[0] = "NG";
                    re[1] = "异常原因:" + "请输入正确采购到货单号的cCode";
                    return re;
                }

xeHead.setAttribute("ibilltype", 2);//单据类型,int类型 2拒收 
                xeHead.setAttribute("bnegative", "1"); //负发票标志,string类型
                xeHead.setAttribute("ccode", ccode);//        DomHead[0]["cmaker"] = ""; //制单人,string类型
                xeHead.setAttribute("ddate", u8Login.CurDate);//        DomHead[0]["cmaker"] = ""; //制单人,string类型
                //   xeHead.setAttribute("cptcode", "01");//采购类型编码,string类型
                xeHead.setAttribute("cvencode", sumTable.Rows[0]["cvencode"].ToString());  //供货单位编号,string类型
                xeHead.setAttribute("cdepcode", sumTable.Rows[0]["cdepcode"].ToString()); //部门编码,string类型
                xeHead.setAttribute("brdflag", "1");  //收发标志,int类型
                xeHead.setAttribute("cmemo", "MES自动生成单据!");//备注,string类型

xeHead.setAttribute("csource", cSource);  //单据来源,int类型
                xeHead.setAttribute("cptcode", cPTCode); //采购类型编码,string类型
                xeHead.setAttribute("cbustype", cBusType);//业务类型,int类型

MSXML2.IXMLDOMNode nodeBody = docBody.selectSingleNode("//z:row");
                IXMLDOMElement xeBody = (IXMLDOMElement)nodeBody;
                int irowno = 1;

foreach (DataRow datarow in sumTable.Rows)
                {
                    if (Convert.ToDouble(datarow["iQuantity"].ToString()) == 0) continue;

if (irowno != 1)
                    {
                        IXMLDOMNode newNode = nodeBody.cloneNode(false);
                        IXMLDOMElement xeBody1 = (IXMLDOMElement)newNode;
                        xeBody1.setAttribute("cinvcode", datarow["cinvcode"].ToString());

//判断存货是否启用保质期管理并获取保质期单位
                        string cmassunit = "";
                        int iMassDate = 0;
                        bool bInvQuality = false;
                        DateTime dVDate = DateTime.Parse(ClsSystem.gnvl(u8Login.CurDate, DateTime.Today.ToString("yyyy-MM-dd")));
                        string strsql = "select cMassUnit,bInvQuality,iMassDate from inventory where cinvcode = '" + ClsSystem.gnvl(datarow["cinvcode"], "") + "' and bInvQuality = 1";
                        System.Data.DataTable invt = DbHelperSQL.Query(strsql).Tables[0];

if (invt != null && invt.Rows.Count > 0)
                        {
                            cmassunit = ClsSystem.gnvl(invt.Rows[0]["cMassUnit"], "");
                            bInvQuality = Convert.ToBoolean(ClsSystem.gnvl(invt.Rows[0]["bInvQuality"], "false"));
                            iMassDate = Convert.ToInt16(ClsSystem.gnvl(invt.Rows[0]["iMassDate"], 0));
                            //计算保质期天数
                            if (cmassunit != "" || bInvQuality == true)
                            {
                                if (cmassunit == "1")
                                    dVDate = dVDate.AddYears(iMassDate);
                                else if (cmassunit == "2")
                                    dVDate = dVDate.AddMonths(iMassDate);
                                else
                                {
                                    dVDate = dVDate.AddDays(iMassDate);
                                }
                            }
                            xeBody1.setAttribute("dvdate", dVDate.ToString("yyyy-MM-dd"));//失效日期,DateTime类型
                            xeBody1.setAttribute("imassdate", iMassDate);//保质期,int类型
                            xeBody1.setAttribute("cMassUnit", ClsSystem.gnvl(invt.Rows[0]["cMassUnit"], ""));//保质期单位,int类型
                        }

string bInvBatchsql = "select isnull(bInvBatch,0) as  bInvBatch from inventory where cinvcode = '" + ClsSystem.gnvl(datarow["cinvcode"], "") + "' ";
                        System.Data.DataTable bInvBatcht = DbHelperSQL.Query(bInvBatchsql).Tables[0];
                        if (bInvBatcht != null && bInvBatcht.Rows.Count > 0)
                        {
                            int bInvBatch = Convert.ToInt16(bInvBatcht.Rows[0]["bInvBatch"]);

xeBody1.setAttribute("cBatch", bInvBatch == 1 ? datarow["cBatch"].ToString() : "");

}

string arridSqls = string.Format(@"SELECT TOP 1 s1.Autoid,s2.dDate,s2.cCode,s1.iPOsID ,p2.cPOID,s1.bgift   , s1.iTaxRate 
FROM dbo.PU_ArrivalVouchs s1 LEFT JOIN PU_ArrivalVouch s2 ON s1.ID=s2.ID   
LEFT JOIN  Po_podetails p1 on  s1.iposid=p1.id    
LEFT JOIN Po_Pomain p2 ON p1.poid=p2.poid  WHERE  s1.ID='{0}' AND s1.ivouchrowno='{1}'   AND s1.cInvCode='{2}'    ", arrid, datarow["iRowNo"], ClsSystem.gnvl(datarow["cinvcode"], ""));

if ((string)sumTable.Rows[0]["cBusType"] == "01")
                        {
                            arridSqls = string.Format(@"SELECT TOP 1 s1.Autoid,s2.dDate,s2.cCode,s1.iPOsID ,p2.cPOID,s1.bgift   , s1.iTaxRate 
FROM dbo.PU_ArrivalVouchs s1 LEFT JOIN PU_ArrivalVouch s2 ON s1.ID=s2.ID   
LEFT JOIN Po_podetails p1 on  s1.iposid=p1.id    
LEFT JOIN Po_Pomain p2 ON p1.poid=p2.poid  WHERE  s1.ID='{0}' AND s1.ivouchrowno='{1}'   AND s1.cInvCode='{2}'    ", arrid, datarow["iRowNo"], ClsSystem.gnvl(datarow["cinvcode"], ""));

}
                        else if ((string)sumTable.Rows[0]["cBusType"] == "02")
                        {
                            arridSqls = string.Format(@"SELECT TOP 1 s1.Autoid,s2.dDate,s2.cCode,s1.iPOsID ,p2.cCode as cPOID,s1.bgift   , s1.iTaxRate 
FROM dbo.PU_ArrivalVouchs s1 LEFT JOIN PU_ArrivalVouch s2 ON s1.ID=s2.ID   
LEFT JOIN OM_MODetails p1 on  s1.iPOsID=p1.modetailsid    
LEFT JOIN OM_MOMain p2 ON p1.MOID=p2.MOID  WHERE  s1.ID='{0}' AND s1.ivouchrowno='{1}'   AND s1.cInvCode='{2}'  ", arrid, datarow["iRowNo"], ClsSystem.gnvl(datarow["cinvcode"], ""));
                        }

System.Data.DataTable arridts = DbHelperSQL.Query(arridSqls).Tables[0];

if (arridts != null && arridts.Rows.Count > 0)
                        {
                            xeBody1.setAttribute("cordercode", ClsSystem.gnvl(arridts.Rows[0]["cPOID"], "")); //订单号,string类型
                            xeBody1.setAttribute("iposid", ClsSystem.gnvl(arridts.Rows[0]["iPOsID"], ""));  //订单子表ID,int类型
                            xeBody1.setAttribute("icorid", ClsSystem.gnvl(arridts.Rows[0]["Autoid"], ""));//采购到货单子表标识,string类型
                            xeBody1.setAttribute("carrivalcode", ClsSystem.gnvl(arridts.Rows[0]["cCode"], "")); //到货单号,string类型
                            xeBody1.setAttribute("iTaxRate", ClsSystem.gnvl(arridts.Rows[0]["iTaxRate"], ""));

}
                        else
                        {
                            re[0] = "NG";
                            re[1] = "异常原因:" + "请输入正确采购到货单号的行号";
                            return re;
                        }

xeBody1.setAttribute("cwhcode", datarow["cwhcode"].ToString());
                        xeBody1.setAttribute("cDefine32", datarow["QUEUE_ID"].ToString());
                        xeBody1.setAttribute("cDefine27", datarow["iQuantity"].ToString());//不合格数量

if (sumTable.Columns.Contains("cdefine31"))
                        {
                            xeBody1.setAttribute("cdefine31", datarow["cdefine31"].ToString());
                        }
                        xeBody1.setAttribute("iquantity", -1 * Convert.ToDouble(datarow["iQuantity"].ToString()));

xeBody1.setAttribute("irowno", irowno);
                        docBody.selectSingleNode("//rs:data").appendChild(newNode);
                    }
                    else
                    {
                        xeBody.setAttribute("cinvcode", datarow["cinvcode"].ToString());
                        //判断存货是否启用保质期管理并获取保质期单位
                        string cmassunit = "";
                        int iMassDate = 0;
                        bool bInvQuality = false;
                        DateTime dVDate = DateTime.Parse(ClsSystem.gnvl(u8Login.CurDate, DateTime.Today.ToString("yyyy-MM-dd")));
                        string strsql = "select cMassUnit,bInvQuality,iMassDate from inventory where cinvcode = '" + ClsSystem.gnvl(datarow["cinvcode"], "") + "' and bInvQuality = 1";
                        System.Data.DataTable invt = DbHelperSQL.Query(strsql).Tables[0];

if (invt != null && invt.Rows.Count > 0)
                        {
                            cmassunit = ClsSystem.gnvl(invt.Rows[0]["cMassUnit"], "");
                            bInvQuality = Convert.ToBoolean(ClsSystem.gnvl(invt.Rows[0]["bInvQuality"], "false"));
                            iMassDate = Convert.ToInt16(ClsSystem.gnvl(invt.Rows[0]["iMassDate"], 0));
                            //计算保质期天数
                            if (cmassunit != "" || bInvQuality == true)
                            {
                                if (cmassunit == "1")
                                    dVDate = dVDate.AddYears(iMassDate);
                                else if (cmassunit == "2")
                                    dVDate = dVDate.AddMonths(iMassDate);
                                else
                                {
                                    dVDate = dVDate.AddDays(iMassDate);
                                }
                            }
                            xeBody.setAttribute("dvdate", dVDate.ToString("yyyy-MM-dd"));//失效日期,DateTime类型
                            xeBody.setAttribute("imassdate", iMassDate);//保质期,int类型
                            xeBody.setAttribute("cMassUnit", ClsSystem.gnvl(invt.Rows[0]["cMassUnit"], ""));//保质期单位,int类型
                        }

string bInvBatchsql = "select isnull(bInvBatch,0) as  bInvBatch from inventory where cinvcode = '" + ClsSystem.gnvl(datarow["cinvcode"], "") + "' ";
                        System.Data.DataTable bInvBatcht = DbHelperSQL.Query(bInvBatchsql).Tables[0];
                        if (bInvBatcht != null && bInvBatcht.Rows.Count > 0)
                        {
                            int bInvBatch = Convert.ToInt16(bInvBatcht.Rows[0]["bInvBatch"]);

xeBody.setAttribute("cBatch", bInvBatch == 1 ? datarow["cBatch"].ToString() : "");

}

string arridSqls = string.Format(@"SELECT TOP 1 s1.Autoid,s2.dDate,s2.cCode,s1.iPOsID ,p2.cPOID,s1.bgift  , s1.iTaxRate 
FROM dbo.PU_ArrivalVouchs s1 LEFT JOIN PU_ArrivalVouch s2 ON s1.ID=s2.ID   
LEFT JOIN Po_podetails p1 on  s1.iposid=p1.id AND s2.cbustype NOT IN ( N'委外加工' )    
LEFT JOIN Po_Pomain p2 ON p1.poid=p2.poid AND s2.cbustype NOT IN ( N'委外加工' )      WHERE  s1.ID='{0}' AND s1.ivouchrowno='{1}'   AND s1.cInvCode='{2}'  ", arrid, datarow["iRowNo"], ClsSystem.gnvl(datarow["cinvcode"], ""));

if ((string)sumTable.Rows[0]["cBusType"] == "01")
                        {
                            arridSqls = string.Format(@"SELECT TOP 1 s1.Autoid,s2.dDate,s2.cCode,s1.iPOsID ,p2.cPOID,s1.bgift   , s1.iTaxRate 
FROM dbo.PU_ArrivalVouchs s1 LEFT JOIN PU_ArrivalVouch s2 ON s1.ID=s2.ID   
LEFT JOIN Po_podetails p1 on  s1.iposid=p1.id    
LEFT JOIN Po_Pomain p2 ON p1.poid=p2.poid  WHERE  s1.ID='{0}' AND s1.ivouchrowno='{1}'   AND s1.cInvCode='{2}'    ", arrid, datarow["iRowNo"], ClsSystem.gnvl(datarow["cinvcode"], ""));

}
                        else if ((string)sumTable.Rows[0]["cBusType"] == "02")
                        {
                            arridSqls = string.Format(@"SELECT TOP 1 s1.Autoid,s2.dDate,s2.cCode,s1.iPOsID ,p2.cCode as cPOID,s1.bgift   , s1.iTaxRate 
FROM dbo.PU_ArrivalVouchs s1 LEFT JOIN PU_ArrivalVouch s2 ON s1.ID=s2.ID   
LEFT JOIN OM_MODetails p1 on  s1.iPOsID=p1.modetailsid   
LEFT JOIN OM_MOMain p2 ON p1.MOID=p2.MOID  WHERE  s1.ID='{0}' AND s1.ivouchrowno='{1}'   AND s1.cInvCode='{2}'  ", arrid, datarow["iRowNo"], ClsSystem.gnvl(datarow["cinvcode"], ""));
                        }

System.Data.DataTable arridts = DbHelperSQL.Query(arridSqls).Tables[0];

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

xeBody.setAttribute("cordercode", ClsSystem.gnvl(arridts.Rows[0]["cPOID"], "")); //订单号,string类型
                            xeBody.setAttribute("iposid", ClsSystem.gnvl(arridts.Rows[0]["iPOsID"], ""));  //订单子表ID,int类型
                            xeBody.setAttribute("icorid", ClsSystem.gnvl(arridts.Rows[0]["Autoid"], ""));//采购到货单子表标识,string类型
                            xeBody.setAttribute("carrivalcode", ClsSystem.gnvl(arridts.Rows[0]["cCode"], "")); //到货单号,string类型
                            xeBody.setAttribute("iTaxRate", ClsSystem.gnvl(arridts.Rows[0]["iTaxRate"], ""));  //税率

}
                        else
                        {
                            re[0] = "NG";
                            re[1] = "异常原因:" + "请输入正确采购到货单号的行号";
                            return re;
                        }

xeBody.setAttribute("cwhcode", datarow["cwhcode"].ToString());
                        xeBody.setAttribute("cDefine32", datarow["QUEUE_ID"].ToString());
                        xeBody.setAttribute("cDefine27", datarow["iQuantity"].ToString());//不合格数量

if (sumTable.Columns.Contains("cdefine31"))
                        {
                            xeBody.setAttribute("cdefine31", datarow["cdefine31"].ToString());
                        }
                        xeBody.setAttribute("iquantity", -1 * Convert.ToDouble(datarow["iQuantity"].ToString()));

xeBody.setAttribute("irowno", irowno);
                    }
                    irowno++;
                }

//传入表头的MSXML2.DOMDocumentClass对象
                broker.AssignNormalValue("DomHead", docHead);

//传入表体的MSXML2.DOMDocumentClass对象
                broker.AssignNormalValue("domBody", docBody);

传入表头的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", false);

给普通参数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);

//给普通参数VoucherState赋值。此参数的数据类型为int,此参数按值传递,表示单据状态:2新增,1修改,0非编辑
                broker.AssignNormalValue("VoucherState", 2);

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

//该参数CurDom为OUT型参数,由于其数据类型为MSXML2.IXMLDOMDocument2,非一般值类型,因此必须传入一个参数变量。在API调用返回时,可以直接使用该参数
                //MSXML2.IXMLDOMDocument2 CurDom = new DOMDocument26Class();
                //broker.AssignNormalValue("CurDom", CurDom);

MSXML2.IXMLDOMDocument2 CurDom = new DOMDocument();

broker.AssignNormalValue("CurDom", CurDom);

//给普通参数UserMode赋值。此参数的数据类型为int,此参数按值传递,表示模式,0:CS;1:BS
                broker.AssignNormalValue("UserMode", 0);

//第六步:调用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());

//获取返回值
                //获取普通返回值。此返回值数据类型为System.String,此参数按值传递,表示错误描述:空,正确;非空,错误
                System.Boolean result = false;

result = string.IsNullOrEmpty(broker.GetReturnValue() as System.String);

System.String errMsgRet = broker.GetReturnValue() as System.String;
                //获取out/inout参数值

//获取普通OUT参数errMsg。此返回值数据类型为System.String,在使用该参数之前,请判断是否为空
                // System.String errMsgRet = broker.GetResult("errMsg") as System.String;

//获取普通INOUT参数VouchId。此返回值数据类型为System.String,在使用该参数之前,请判断是否为空
                System.String VouchIdRet = broker.GetResult("curID") as System.String;
                //System.String cCodeRet = broker.GetResult("cCode") as System.String;

//获取普通OUT参数domMsg。此返回值数据类型为MSXML2.IXMLDOMDocument2,在使用该参数之前,请判断是否为空
                MSXML2.IXMLDOMDocument2 domMsgRet = (MSXML2.IXMLDOMDocument2)broker.GetResult("CurDom");

//结束本次调用,释放API资源
                broker.Release();

if (!result)
                {
                    if (errMsgRet != null)
                    {
                        re[0] = "NG";
                        re[1] = errMsgRet;
                    }
                }

U8到货拒收单API接口示例(参照采购到货)相关推荐

  1. U8采购入库单API接口示例(参照采购到货)

    //第一步:构造u8login对象并登陆(引用U8API类库中的Interop.U8Login.dll) //如果当前环境中有login对象则可以省去第一步 U8Login.clsLogin u8Lo ...

  2. C#圆通快递电子面单api接口调用方法

    快递电子面单支持多家快递物流公司单号获取.分拣码返回.面单打印.在线下单发货.通知快递员上门取件等功能,可用于电商平台.自营商城.打单工具.WMS仓储系统.APP等需要发货的场景,可有效提高商家的打印 ...

  3. 物流快递电子面单Api接口怎么申请对接(顺丰、快递鸟、菜鸟、拼多多)

    关于电子面单: 电子面单是一种通过热敏纸打印输出纸质物流面单的物流服务.通过热感应显示文字,打印速度比传统针式打印速度提升4~6倍.电子面单以接口形式嵌入到自己的系统.网站上,可以在自己的平台操作打印 ...

  4. 用友U8开放平台的 api接口

    用友U8开放平台: API,提供丰富的业务分类,接口类,业务需求分析可以借鉴其分类架构:

  5. 常用快递电子面单api接口及对接调用方式

    现在电商行业发展很快,很多企业订单量大,手写快递单比较慢,所以开通对接电子面单打印API接口就成了很多企业迫切需要的功能: 目前申请渠道目前有三个,快递公司.菜鸟和快递鸟.前两个对接接口需要一定的资质 ...

  6. 亚马逊AMAZON API接口示例

    item_get - AMAZON产品详情 公共参数 请求地址:https://console.open.onebound.cn/console/?i=Anzexi 名称 类型 必须 描述 key S ...

  7. 快递鸟基于java功能打印电子面单api接口

    之前的后天管理系统的电子面单打印使用的是灵通打单. 使用相对比较麻烦,需要到处Excel之后再导入,麻烦. 快递鸟有电子面单api,后台系统直接对接很是方便,不过也遇到了好些问题. 不难是不难,但是遇 ...

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

    //第二步:构造环境上下文对象,传入login,并按需设置其它上下文参数                 U8EnvContext envContext = new U8EnvContext(); e ...

  9. U8材料出库单API接口 --参照生产订单

    //第二步:构造环境上下文对象,传入login,并按需设置其它上下文参数                 U8EnvContext envContext = new U8EnvContext(); e ...

最新文章

  1. 安装php出现php-cgi error 1
  2. 【Android 应用开发】Activity 返回堆栈管理 ( 栈内复用模式 singleTask | 单实例模式 singleInstance )
  3. 20、Power Query-数据合并、拆分
  4. [css] 你有用过弹性布局吗?说说你对它的理解
  5. php怎么分割页面,用html如何把页面分割成多个文件,由多个文件拼接而成?
  6. 重磅!教育部撤销518个高校专业
  7. 图数据库 HugeGraph : IndexLabel
  8. 4加密问题漏洞修复_Apache Shiro 反序列化漏洞实战
  9. 腾讯优图刷新人体姿态估计国际权威榜单,相关论文被ECCV2020收录
  10. 2015年 不可不知的五大热点话题
  11. canvas.clipPath canvas.clipRect() 无效的原因
  12. 理解VMware资源池
  13. 大小端及转换(C++)
  14. Deep Cosine Metric Learning for Person Re-Identification
  15. 微信小游戏 H5 排行榜源码
  16. 腾讯市值首破5000亿美元;阿里224亿港币入股高鑫零售;特斯拉新超跑在华接受预定丨价值早报
  17. 【人物志】美团技术委员会前端通道主席洪磊:爱折腾的斜杠青年
  18. Vue el-menu-item路由跳转
  19. JTAG/C2 接口定义
  20. 一键删除qq空间说说

热门文章

  1. 全球BT下载网站排名
  2. 【MySQL】如何构建一个完整的MySQL知识体系(MySQL专栏启动)
  3. 挥泪裁测试员?软件测试六边形战士技能,互联网裁员潮不存在的......
  4. 重磅!华为搜索引擎面世
  5. 洛谷P1417:优先级与背包问题
  6. 全局性谋划、战略性布局、整体性推进智能技术
  7. 浙江大学计算机学院博士论文格式,博士学位论文格式模板(浙江大学博士论文模板样例)...
  8. 【无标题】阳光厨房管理系统需求分析
  9. 郑大计算机应用基础试题5章,郑大计算机应用基础.docx
  10. 怎么查看python的库的函数_如何查看python库函数