public void MI_MES_MATSTARCE_REQ([System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:sap2mes:matstorace_ii")] DT_MES_MATSTARCE_REQ MT_MES_MATSTARCE_REQ)
 {
     this.Invoke("MI_MES_MATSTARCE_REQ", new object[] {
         MT_MES_MATSTARCE_REQ
     });
 }
 /// <remarks/>
 public System.IAsyncResult BeginMI_MES_MATSTARCE_REQ(DT_MES_MATSTARCE_REQ MT_MES_MATSTARCE_REQ, System.AsyncCallback callback, object asyncState)
 {
     return(this.BeginInvoke("MI_MES_MATSTARCE_REQ", new object[] {
         MT_MES_MATSTARCE_REQ
     }, callback, asyncState));
 }
Example #3
0
        public ServiceResult Run(RunMethod runMethod)
        {
            SAPWebServiceEntity webServiceEntity = System.Configuration.ConfigurationManager.GetSection("InventoryTransferConfig") as SAPWebServiceEntity;

            if (webServiceEntity == null)
            {
                return(new ServiceResult(false, "没有维护InvertoryTransferConfig对应的Service地址", this.m_Argument.TransactionCode));
            }

            InventoryFacade invFacade = new InventoryFacade(this.DataProvider);

            #region Begin for Prepare input Paremeter

            DT_MES_MATSTARCE_REQ inventoryParameter  = new DT_MES_MATSTARCE_REQ();
            object[]             sapStorageQueryList = null;

            if (runMethod == RunMethod.Auto)
            {
                sapStorageQueryList = invFacade.QuerySAPStorageQueryNotDealed(1);

                if (sapStorageQueryList == null)
                {
                    return(new ServiceResult(true, "", this.m_Argument.TransactionCode));
                }

                SAPStorageQuery query = (SAPStorageQuery)sapStorageQueryList[0];
                inventoryParameter.LGORT = query.StorageID.Split(',');
                inventoryParameter.MATNR = query.ItemCode;
                inventoryParameter.TRANS = this.m_Argument.TransactionCode;
                inventoryParameter.WERKS = query.OrganizationID.Split(',');
            }
            else if (runMethod == RunMethod.Manually)
            {
                inventoryParameter.LGORT = this.m_Argument.Location;
                inventoryParameter.MATNR = this.m_Argument.MaterialNumber;
                inventoryParameter.TRANS = this.m_Argument.TransactionCode;
                inventoryParameter.WERKS = this.m_Argument.OrgList;
            }

            invFacade.DeleteSAPStorageInfo(inventoryParameter.WERKS, inventoryParameter.LGORT, inventoryParameter.MATNR);

            #endregion

            string xmlFilePath = SerializeUtil.SerializeFile(this.m_Argument.TransactionCode + "_Request.xml",
                                                             typeof(DT_MES_MATSTARCE_REQ), inventoryParameter);

            #region InventoryLog

            DBDateTime         dateTime       = FormatHelper.GetNowDBDateTime(this.DataProvider);
            SAPDataTransferLog inventoryLog   = new SAPDataTransferLog();
            TransferFacade     transferFacade = new TransferFacade(this.DataProvider);

            inventoryLog.JobID               = TransferFacade.InvertoryJobID;
            inventoryLog.TransactionCode     = inventoryParameter.TRANS;
            inventoryLog.TransactionSequence = 1;
            inventoryLog.RequestDate         = dateTime.DBDate;
            inventoryLog.RequestTime         = dateTime.DBTime;
            inventoryLog.RequestContent      = xmlFilePath;
            inventoryLog.OrganizationID      = 2000;
            inventoryLog.SendRecordCount     = 1;

            transferFacade.AddSAPDataTransferLog(inventoryLog);

            #endregion

            #region Begin for Calling WebService

            try
            {
                //Delete sapstorageInfo
                //invFacade.DeleteSAPStorageInfoByItemCode(this.m_Argument.MaterialNumber.ToUpper());

                InvertoryServiceClientProxy clientProxy = new InvertoryServiceClientProxy();
                clientProxy.RequestEncoding = Encoding.UTF8;
                clientProxy.Timeout         = InternalVariables.MS_TimeOut * 1000;
                clientProxy.Url             = webServiceEntity.Url;
                clientProxy.PreAuthenticate = true;
                System.Uri uri = new Uri(clientProxy.Url);
                clientProxy.Credentials = new NetworkCredential(webServiceEntity.UserName, webServiceEntity.Password).GetCredential(uri, "");
                clientProxy.MI_MES_MATSTARCE_REQ(inventoryParameter);
                clientProxy.Dispose();
                clientProxy = null;
            }
            catch (Exception e)
            {
                inventoryLog.Result       = "Fail";
                inventoryLog.ErrorMessage = e.Message;
                transferFacade.UpdateSAPDataTransferLog(inventoryLog);
                return(new ServiceResult(false, e.Message, inventoryLog.TransactionCode));
            }

            if (runMethod == RunMethod.Auto && sapStorageQueryList != null)
            {
                try
                {
                    SAPStorageQuery query = (SAPStorageQuery)sapStorageQueryList[0];
                    query.Flag            = FlagStatus.FlagStatus_POST;
                    query.TransactionCode = this.m_Argument.TransactionCode;
                    invFacade.UpdateSAPStorageQuery(query);
                }
                catch (Exception ex)
                {
                    return(new ServiceResult(false, ex.Message, this.m_Argument.TransactionCode));
                }
            }

            #endregion

            return(new ServiceResult(true, "", this.m_Argument.TransactionCode));
        }