1.主物料信息获取
2.物料凭证表数据逻辑修改
3.物料凭证表添加新字段
4.冲销回调实现(为完全实现)
1个文件已添加
8个文件已修改
531 ■■■■ 已修改文件
HH.WCS.Mobox3.pinggao.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/ApibackModel.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/WmsSapController.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/WmsSpaHelper.cs 259 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/ZSCM2_CXPZ.cs 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/MaterialVoucher.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/SapRoot.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/TN_Distribution_CNTR.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/TN_Outbound_Order.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.pinggao.csproj
@@ -172,6 +172,7 @@
    <Compile Include="api\WmsSpaHelper.cs" />
    <Compile Include="api\ZCCM_NC.cs" />
    <Compile Include="api\ZSCM2_CBZX.cs" />
    <Compile Include="api\ZSCM2_CXPZ.cs" />
    <Compile Include="api\ZSCM2_SCFLJHW.cs" />
    <Compile Include="App_Start\SwaggerControllerDescProvider.cs" />
    <Compile Include="core\WMSCore.cs" />
api/ApibackModel.cs
@@ -177,6 +177,56 @@
        }
        #endregion
        #region 通用冲销回调入参
        public class ReturnTYBcak
        {
            public class ITEM
            {
                /// <summary>
                /// 唯一标识
                /// </summary>
                public string YWLPZBH { get; set; }
                /// <summary>
                /// 物料凭证号
                /// </summary>
                public string YWLPZND { get; set; }
                /// <summary>
                /// 物料凭年度
                /// </summary>
                public string YWLPZHXM { get; set; }
                public string WLPZBH { get; set; }
                public string WLPZND { get; set; }
                /// <summary>
                /// 返回结果标识(0成功或者1失败)字符长度1
                /// </summary>
                public string WLPZHXM { get; set; }
                public int MSGCODE { get; set; }
                /// <summary>
                /// 失败原因或者成功信息字符长度255
                /// </summary>
                public string MSGDESP { get; set; }
            }
            public class ROOT
            {
                /// <summary>
                ///
                /// </summary>
                public List<ITEM> ITEM { get; set; }
            }
            public class Root
            {
                /// <summary>
                ///
                /// </summary>
                public ROOT ROOT { get; set; }
            }
        }
        #endregion
        #region 内采入库审核完成回调入参
        public class NcRkDto {
            public class HEAD
@@ -423,7 +473,7 @@
                /// <summary>
                /// 
                /// </summary>
                public HEAD HEAD { get; set; }
                public List<HEAD> HEAD { get; set; }
            }
            public class Root
api/WmsSapController.cs
@@ -115,7 +115,7 @@
        /// <returns></returns>
        [HttpPost]
        public SimpleResult MaterReceiveXmlData([FromBody] MaterDto.Root xmlData)
        public WLReturnRoot.Root MaterReceiveXmlData([FromBody] MaterDto.Root xmlData)
        {
            #region xml数据接收转数组
@@ -135,7 +135,7 @@
            #endregion
            #region 外采入库业务流程
            SimpleResult simpleResult = WmsSpaHelper.Mater_In(xmlData);
            WLReturnRoot.Root simpleResult = WmsSpaHelper.Mater_In(xmlData);
            //接收返回参数 生成sap对接文档返回格式
            //var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg);
@@ -148,6 +148,8 @@
            //    Content = new StringContent(xml, Encoding.UTF8, "application/xml")
            //};
            //return response;
            var json = JsonConvert.SerializeObject(simpleResult);
            return simpleResult;
            #endregion
        }
api/WmsSpaHelper.cs
@@ -821,17 +821,28 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        internal static SimpleResult Mater_In(MaterDto.Root model)
        internal static WLReturnRoot.Root Mater_In(MaterDto.Root model)
        {
            var db = new SqlHelper<object>().GetInstance();
            var result = new SimpleResult();
            result.resultMsg = "成功";
            try
            var response = new WLReturnRoot.Root
            {
                db.BeginTran();
                List<TN_Material> list = new List<TN_Material>();
                foreach (var item in model.ROOT.ITEM)
                ROOT = new WLReturnRoot.ROOT
                {
                    ITEM = new List<WLReturnRoot.ITEM>
                    {
                    }
                }
            };
            db.BeginTran();
            List<WLReturnRoot.ITEM> list = new List<WLReturnRoot.ITEM>();
            foreach (var item in model.ROOT.ITEM)
            {
                try
                {
                    var result = new WLReturnRoot.ITEM();
                    var materlist = db.Queryable<TN_Material>().Where(it => it.S_ITEM_CODE == item.WLBM).First();
                    if (materlist == null)
                    {
@@ -849,20 +860,54 @@
                        tN_Material.S_CPZ = item.CPZ;
                        tN_Material.S_CPZMS = item.CPZMS;
                        tN_Material.S_ITEM_NAME = item.VTEXT;
                        list.Add(tN_Material);
                        db.Insertable<TN_Material>(tN_Material).ExecuteCommand();
                        result.MSGDESP = "成功";
                        result.MSGCODE = 0;
                        result.GCBM = item.GCBM;
                        result.WLBM = item.WLBM;
                        list.Add(result);
                    }
                    else
                    {
                        materlist.S_ITEM_CODE = item.WLBM;
                        materlist.S_GCBM = item.GCBM;
                        materlist.S_WLZBM = item.WLZBM;
                        materlist.S_WLZMS = item.WLZMS;
                        materlist.S_WLLX = item.WLLX;
                        materlist.S_WLMS = item.WLMS;
                        materlist.S_WLCMS = item.WLCMS;
                        materlist.S_DWBM = item.DWBM;
                        materlist.S_DWMS = item.DWMS;
                        materlist.S_JBM = item.JBM;
                        materlist.S_CPZ = item.CPZ;
                        materlist.S_CPZMS = item.CPZMS;
                        materlist.S_ITEM_NAME = item.VTEXT;
                        db.Updateable<TN_Material>(materlist).ExecuteCommand();
                        result.MSGDESP = "成功";
                        result.MSGCODE = 0;
                        result.GCBM = item.GCBM;
                        result.WLBM = item.WLBM;
                        list.Add(result);
                    }
                }
                db.Insertable<TN_Material>(list).ExecuteCommand();
                db.CommitTran();
                catch (Exception e)
                {
                    var result = new WLReturnRoot.ITEM();
                    result.MSGDESP = e.Message;
                    result.MSGCODE = 1;
                    result.GCBM = item.GCBM;
                    result.WLBM = item.WLBM;
                    list.Add(result);
                    db.RollbackTran();
                    throw;
                }
            }
            response.ROOT.ITEM = list;
            //db.Insertable<TN_Material>(list).ExecuteCommand();
            db.CommitTran();
            }
            catch (Exception e)
            {
                db.RollbackTran();
                throw;
            }
            return result;
            return response;
        }
@@ -1749,7 +1794,7 @@
                    S_START_AREA = locinfo.S_AREA_CODE,
                    S_START_WH = locinfo.S_WH_CODE,
                    S_END_LOC = model.start,
                    //S_BS_NO = model.arrival_no,
                    S_BS_NO = model.MaterList[0].arrival_no,
                    N_TYPE = 1,
                    S_TYPE = WMSTask.GetTypeStr(1),
                    S_OP_DEF_CODE = "",
@@ -1838,7 +1883,8 @@
                    var startinfo = db.Queryable<Location>().Where(it => it.S_CODE == start).First();
                    //出库单详情
                    var po = db.Queryable<TN_Outbound_Order>().Includes(s => s.Details).Where(a => a.S_NO == arrival_no).First();
                    //分拣单
                    //var popp = db.Queryable<TN_Distribution_CNTR>().Where(a => a.S_BS_NO == arrival_no&&a.S_SORT_TYPE=="未分类" && a.N_B_STATE == 2).First();
                    //回参物料信息
                    List<OutboundRecord> records = new List<OutboundRecord>();
@@ -2253,13 +2299,19 @@
                    //添加凭证记录表
                    result.resultMsg = data.ROOT.ITEM.MSGDESP;
                    result.resultCode = data.ROOT.ITEM.MSGCODE;
                    MaterialVoucher materialVoucher = new MaterialVoucher();
                    materialVoucher.S_NO = po.S_NO;
                    materialVoucher.S_TYPE = po.S_OUT_TYPE;
                    materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZBH;
                    materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND;
                    materialVoucher.STATUS = 0;
                    db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                    foreach (var item in MaterList)
                    {
                        MaterialVoucher materialVoucher = new MaterialVoucher();
                        materialVoucher.S_NO = po.S_NO;
                        materialVoucher.S_TYPE = po.S_OUT_TYPE;
                        materialVoucher.S_WLBM = item.item_code;
                        materialVoucher.S_WLH = item.N_ROW_NO;
                        materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZBH;
                        materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND;
                        materialVoucher.STATUS = 0;
                        db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                    }
                    #endregion
                    db.CommitTran();
@@ -2298,6 +2350,13 @@
                    var startinfo = db.Queryable<Location>().Where(it => it.S_CODE == start).First();
                    //出库单详情
                    var po = db.Queryable<TN_Outbound_Order>().Includes(s => s.Details).Where(a => a.S_NO == arrival_no).First();
                    string GZRQ = "";
                    if (po.BUDAT != null)
                    {
                        GZRQ = DateTime.Parse(po.BUDAT.ToString()).ToString("yyyyMMdd");
                    }
                    //来源冲销凭证对应的物料凭证信息
                    //var poIn = db.Queryable<TN_Inbound_Order>().Includes(s => s.Details).Where(a => a.S_NO == po.S_BS_NO).First();
                    //根据入库查看凭证编号信息
@@ -2307,71 +2366,102 @@
                    {
                        ROOT = new CXCkBackDto.ROOT
                        {
                            HEAD = new CXCkBackDto.HEAD
                            HEAD = new List<CXCkBackDto.HEAD>
                            {
                                WLPZ = po.S_WLPZ,
                                WLPZNF = po.S_WLPZNF,
                                WLPZXM = MaterList[0].N_ROW_NO,
                                GZRQ = "2025-03-20",
                                SRRQ = "2025-03-19",
                                GZRY = "过账人员姓名"
                                //GZRQ = GZRQ,
                                //SRRQ = PZZDRQ,
                                //WLPZ = po.S_WLPZ,
                                //WLPZNF = po.S_WLPZNF,
                                //WLPZXM = MaterList[0].N_ROW_NO,
                                //GZRY = po.UNAME
                            }
                        }
                    };
                    //回参物料信息
                    //List<OutboundRecord> records = new List<OutboundRecord>();
                    //foreach (var item in MaterList)
                    //{
                    List<CXCkBackDto.HEAD> listhead = new List<CXCkBackDto.HEAD>();
                    foreach (var item in po.Details)
                    {
                        CXCkBackDto.HEAD hEAD = new CXCkBackDto.HEAD();
                        hEAD.GZRQ = GZRQ;
                        hEAD.SRRQ = DateTime.Now.ToString("yyyyMMdd");
                        hEAD.WLPZ = po.S_NO;
                        hEAD.WLPZNF = po.S_WLPZND;
                        hEAD.WLPZXM = item.N_ROW_NO;
                        hEAD.GZRY = po.UNAME;
                        listhead.Add(hEAD);
                    }
                    myRoot.ROOT.HEAD = listhead;
                    //    db.BeginTran();
                    //    //出库记录
                    //    var pz = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == arrival_no).First();
                    //    OutboundRecord outboundRecord = new OutboundRecord();
                    //    outboundRecord.S_WLPZBH = pz.S_WLPZBH;
                    //    outboundRecord.S_WLPZND = pz.S_WLPZND;
                    //    outboundRecord.S_NO = arrival_no;
                    //    outboundRecord.S_WLBM = item.item_code;
                    //    outboundRecord.S_SL = item.qty;
                    //    outboundRecord.S_CNTR_CODE = cntr_code;
                    //    records.Add(outboundRecord);
                    //}
                    //db.Insertable<OutboundRecord>(records).ExecuteCommand();
                    #region wms-sap回调
                    //类转json
                    var json = JsonConvert.SerializeObject(myRoot.ROOT);
                    //json转xml
                    string xml = JsonConvert.DeserializeXmlNode(json, "ROOT").OuterXml;
                    LogHelper.Info($"冲销出库回调xml数据{xml}");
                    // 创建 StringContent 并指定媒体类型为 "text/xml"
                    HttpContent content = new StringContent(xml, Encoding.UTF8, "application/xml");
                    string url = Settings.WCSSeverUrl + "/api/WmsSap/cesReceiveXmlData";
                    string responseXml = "";
                    using (HttpClient client = new HttpClient())
                    {
                        // 发送 POST 请求并接收响应
                        HttpResponseMessage responsess = await client.PostAsync(url, content);
                        responseXml = await responsess.Content.ReadAsStringAsync();
                    }
                    ZSCM2_CXPZ service = new ZSCM2_CXPZ();
                    //  service.Credentials = new NetworkCredential("CONN_RFC", "Init.1234");
                    // 准备请求参数
                    ZfmScm2CxpzMm001 request = new ZfmScm2CxpzMm001();
                    request.Input = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + xml;
                    LogHelper.Info($"通用冲销SAP回调");
                    // 调用Web Service
                    ZfmScm2CxpzMm001Response responses = service.ZfmScm2CxpzMm001(request);
                    // 处理响应
                    LogHelper.Info("通用冲销SAP返回结果: " + responses.Output);
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(responseXml.ToString());
                    xmlDoc.LoadXml(responses.Output.ToString());
                    JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
                    var data = JsonConvert.DeserializeObject<ReturnWcBcak.Root>(jsonObject.ToString());
                    var data = JsonConvert.DeserializeObject<ReturnTYBcak.Root>(jsonObject.ToString());
                    var resmeg = "";
                    int rescode = 0;
                    //添加凭证记录表
                    result.resultMsg = data.ROOT.ITEM.MSGDESP;
                    result.resultCode = data.ROOT.ITEM.MSGCODE;
                    MaterialVoucher materialVoucher = new MaterialVoucher();
                    materialVoucher.S_NO = po.S_NO;
                    materialVoucher.S_TYPE = po.S_OUT_TYPE;
                    materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZBH;
                    materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND;
                    materialVoucher.STATUS = 0;
                    db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                    if (data!=null)
                    {
                        List<MaterialVoucher> materiallist = new List<MaterialVoucher>();
                        foreach (var item in data.ROOT.ITEM)
                        {
                            if (item.MSGCODE == 0)
                            {
                                MaterialVoucher materialVoucher = new MaterialVoucher();
                                materialVoucher.S_NO = po.S_NO;
                                materialVoucher.S_TYPE = po.S_OUT_TYPE;
                                materialVoucher.S_WLPZBH = item?.WLPZBH;
                                materialVoucher.S_WLPZND = item?.WLPZND;
                                materialVoucher.S_WLPZHXM = item?.WLPZHXM;
                                materialVoucher.S_YWLPZBH = item?.YWLPZBH;
                                materialVoucher.S_YWLPZND = item?.YWLPZND;
                                materialVoucher.S_YWLPZHXM = item?.YWLPZHXM;
                                materialVoucher.STATUS = 0;
                                resmeg += item?.MSGDESP;
                                materiallist.Add(materialVoucher);
                            }
                            else {
                                rescode = 1;
                            }
                        }
                        if (materiallist.Count()>0)
                        {
                            db.Insertable<MaterialVoucher>(materiallist).ExecuteCommand();
                        }
                    }
                    result.resultMsg = resmeg;
                    result.resultCode = rescode;
                    #endregion
                    db.CommitTran();
@@ -2605,7 +2695,10 @@
                try
                {
                    if (MaterList.Count()<1)
                    {
                        throw new Exception("累计码盘数量物料数据为空");
                    }
                    foreach (var item in MaterList)
                    {
                        var allInfolist = db.Queryable<TN_Inbound_Detail>()
@@ -3867,14 +3960,14 @@
                        {
                            ROOT = new CXCkBackDto.ROOT
                            {
                                HEAD = new CXCkBackDto.HEAD
                                HEAD = new List<CXCkBackDto.HEAD>
                                {
                                    WLPZ = materpz.S_WLPZ,
                                    WLPZNF = materpz.S_WLPZNF,
                                    WLPZXM = null,
                                    GZRQ = "2025-03-20",
                                    SRRQ = DateTime.Now.ToString(),
                                    GZRY = "过账人员姓名"
                                    //WLPZ = materpz.S_WLPZ,
                                    //WLPZNF = materpz.S_WLPZNF,
                                    //WLPZXM = null,
                                    //GZRQ = "2025-03-20",
                                    //SRRQ = DateTime.Now.ToString(),
                                    //GZRY = "过账人员姓名"
                                }
                            }
                        };
@@ -3923,7 +4016,7 @@
                }
                catch (Exception ex)
                {
                    LogHelper.Info($"入库回调报错{ex.Message}");
                    LogHelper.Info($"冲销回库回调报错{ex.Message}");
                    db.RollbackTran();
                    throw;
                }
api/ZSCM2_CXPZ.cs
New file
@@ -0,0 +1,158 @@
//------------------------------------------------------------------------------
// <auto-generated>
//     此代码由工具生成。
//     运行时版本:4.0.30319.42000
//
//     对此文件的更改可能会导致不正确的行为,并且如果
//     重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Serialization;
//
// 此源代码由 wsdl 自动生成, Version=4.8.3928.0。
//
/// <remarks/>
// CODEGEN: 未处理命名空间“http://schemas.xmlsoap.org/ws/2004/09/policy”中的可选 WSDL 扩展元素“Policy”。
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="binding", Namespace="urn:sap-com:document:sap:soap:functions:mc-style")]
public partial class ZSCM2_CXPZ : System.Web.Services.Protocols.SoapHttpClientProtocol {
    private System.Threading.SendOrPostCallback ZfmScm2CxpzMm001OperationCompleted;
    /// <remarks/>
    public ZSCM2_CXPZ() {
        this.Url = "http://10.89.33.217:8000/sap/bc/srt/rfc/sap/zscm2_cxpz/110/zscm2_cxpz/bin" +
            "ding";
    }
    /// <remarks/>
    public event ZfmScm2CxpzMm001CompletedEventHandler ZfmScm2CxpzMm001Completed;
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
    [return: System.Xml.Serialization.XmlElementAttribute("ZfmScm2CxpzMm001Response", Namespace="urn:sap-com:document:sap:soap:functions:mc-style")]
    public ZfmScm2CxpzMm001Response ZfmScm2CxpzMm001([System.Xml.Serialization.XmlElementAttribute("ZfmScm2CxpzMm001", Namespace="urn:sap-com:document:sap:soap:functions:mc-style")] ZfmScm2CxpzMm001 ZfmScm2CxpzMm0011) {
        object[] results = this.Invoke("ZfmScm2CxpzMm001", new object[] {
                    ZfmScm2CxpzMm0011});
        return ((ZfmScm2CxpzMm001Response)(results[0]));
    }
    /// <remarks/>
    public System.IAsyncResult BeginZfmScm2CxpzMm001(ZfmScm2CxpzMm001 ZfmScm2CxpzMm0011, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("ZfmScm2CxpzMm001", new object[] {
                    ZfmScm2CxpzMm0011}, callback, asyncState);
    }
    /// <remarks/>
    public ZfmScm2CxpzMm001Response EndZfmScm2CxpzMm001(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((ZfmScm2CxpzMm001Response)(results[0]));
    }
    /// <remarks/>
    public void ZfmScm2CxpzMm001Async(ZfmScm2CxpzMm001 ZfmScm2CxpzMm0011) {
        this.ZfmScm2CxpzMm001Async(ZfmScm2CxpzMm0011, null);
    }
    /// <remarks/>
    public void ZfmScm2CxpzMm001Async(ZfmScm2CxpzMm001 ZfmScm2CxpzMm0011, object userState) {
        if ((this.ZfmScm2CxpzMm001OperationCompleted == null)) {
            this.ZfmScm2CxpzMm001OperationCompleted = new System.Threading.SendOrPostCallback(this.OnZfmScm2CxpzMm001OperationCompleted);
        }
        this.InvokeAsync("ZfmScm2CxpzMm001", new object[] {
                    ZfmScm2CxpzMm0011}, this.ZfmScm2CxpzMm001OperationCompleted, userState);
    }
    private void OnZfmScm2CxpzMm001OperationCompleted(object arg) {
        if ((this.ZfmScm2CxpzMm001Completed != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.ZfmScm2CxpzMm001Completed(this, new ZfmScm2CxpzMm001CompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    /// <remarks/>
    public new void CancelAsync(object userState) {
        base.CancelAsync(userState);
    }
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:sap-com:document:sap:soap:functions:mc-style")]
public partial class ZfmScm2CxpzMm001 {
    private string inputField;
    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public string Input {
        get {
            return this.inputField;
        }
        set {
            this.inputField = value;
        }
    }
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:sap-com:document:sap:soap:functions:mc-style")]
public partial class ZfmScm2CxpzMm001Response {
    private string outputField;
    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public string Output {
        get {
            return this.outputField;
        }
        set {
            this.outputField = value;
        }
    }
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
public delegate void ZfmScm2CxpzMm001CompletedEventHandler(object sender, ZfmScm2CxpzMm001CompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class ZfmScm2CxpzMm001CompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    private object[] results;
    internal ZfmScm2CxpzMm001CompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState) {
        this.results = results;
    }
    /// <remarks/>
    public ZfmScm2CxpzMm001Response Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((ZfmScm2CxpzMm001Response)(this.results[0]));
        }
    }
}
models/MaterialVoucher.cs
@@ -16,11 +16,17 @@
        /// </summary>
        public string S_NO { get; set; }
        public string S_TYPE { get; set; }
        public string S_WLBM { get; set; }
        public string S_WLH { get; set; }
        /// <summary>
        /// 物料编码
        /// </summary>
        public string S_WLPZBH { get; set; }
        public string S_WLPZND { get; set; }
        public string S_WLPZHXM  { get; set; }
        public string S_YWLPZBH { get; set; }
        public string S_YWLPZND { get; set; }
        public string S_YWLPZHXM { get; set; }
        /// <summary>
        /// 0有效 1冲销
        /// </summary>
models/SapRoot.cs
@@ -244,6 +244,52 @@
            }
        }
        #endregion
        #region 物料收货回参
        /// <summary>
        /// 物料收货回参
        /// </summary>
        public class WLReturnRoot
        {
            public class ITEM
            {
                /// <summary>
                /// 物料凭证号
                /// </summary>
                public string GCBM { get; set; }
                public string WLBM { get; set; }
                /// <summary>
                /// 返回结果标识(0成功或者1失败)字符长
                /// </summary>
                public int MSGCODE { get; set; }
                /// <summary>
                /// 失败原因或者成功信息字符长度255
                /// </summary>
                public string MSGDESP { get; set; }
            }
            public class ROOT
            {
                /// <summary>
                ///
                /// </summary>
                public List<ITEM> ITEM { get; set; }
            }
            public class Root
            {
                /// <summary>
                ///
                /// </summary>
                public ROOT ROOT { get; set; }
            }
        }
        #endregion
        #region 领料单回参
        public class LLDReturnRoot {
models/TN_Distribution_CNTR.cs
@@ -56,6 +56,7 @@
        /// 来源业务编码
        /// </summary>
        public string S_BS_NO { get; set; }
        public string S_SORT_TYPE { get; set; }
        /// <summary>
        /// 自动生成作业
        /// </summary>
models/TN_Outbound_Order.cs
@@ -20,7 +20,7 @@
        /// <summary>
        /// 年份
        /// </summary>
        public string S_WLPZNF { get; set; }
        //public string S_WLPZNF { get; set; }
        public string S_WLPZHXM { get; set; }
        public string S_WLPZ { get; set; }
        public string S_WLPZND { get; set; }