示例#1
0
        private ServiceResult RunOne(SAPWebServiceEntity webServiceEntity, SAPMaterialTrans sapMaterialTrans, DT_MES_TRANSFERPOST_REQ req)
        {
            string xmlFilePath = SerializeUtil.SerializeFile(this.m_Argument.TransactionCode + "_Request.xml",
                                                             typeof(DT_MES_TRANSFERPOST_REQ), req);

            #region TransferLog

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

            materialIssueLog.JobID               = TransferFacade.MaterialIssueJobID;
            materialIssueLog.TransactionCode     = this.m_Argument.TransactionCode;
            materialIssueLog.TransactionSequence = 1;
            materialIssueLog.RequestDate         = dateTime.DBDate;
            materialIssueLog.RequestTime         = dateTime.DBTime;
            materialIssueLog.RequestContent      = xmlFilePath;
            materialIssueLog.OrganizationID      = 2000;
            materialIssueLog.SendRecordCount     = 1;

            transferFacade.AddSAPDataTransferLog(materialIssueLog);

            #endregion

            #region Begin for Calling WebService

            try
            {
                MaterialIssueServiceClientProxy clientProxy = new MaterialIssueServiceClientProxy();
                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_TRANSFERPOST_REQ(req);
                clientProxy.Dispose();
                clientProxy = null;
            }
            catch (Exception e)
            {
                materialIssueLog.Result       = "Fail";
                materialIssueLog.ErrorMessage = e.Message;
                transferFacade.UpdateSAPDataTransferLog(materialIssueLog);
                return(new ServiceResult(false, e.Message, materialIssueLog.TransactionCode));
            }

            #endregion

            #region Update tblsapmaterialtrans

            if (sapMaterialTrans != null)
            {
                InventoryFacade inventoryFacade = new InventoryFacade(this.DataProvider);
                try
                {
                    sapMaterialTrans.Flag            = FlagStatus.FlagStatus_POST;
                    sapMaterialTrans.TransactionCode = this.m_Argument.TransactionCode;
                    inventoryFacade.UpdateSAPMaterialTrans(sapMaterialTrans);
                }
                catch (Exception ex)
                {
                    return(new ServiceResult(false, ex.Message, this.m_Argument.TransactionCode));
                }
            }

            #endregion

            return(new ServiceResult(true, "", this.m_Argument.TransactionCode));
        }
示例#2
0
 /// <remarks/>
 public System.IAsyncResult BeginMI_MES_TRANSFERPOST_REQ(DT_MES_TRANSFERPOST_REQ MT_MES_TRANSFERPOST_REQ, System.AsyncCallback callback, object asyncState)
 {
     return(this.BeginInvoke("MI_MES_TRANSFERPOST_REQ", new object[] {
         MT_MES_TRANSFERPOST_REQ
     }, callback, asyncState));
 }
示例#3
0
        public ServiceResult Run(RunMethod runMethod)
        {
            ServiceResult returnValue = null;

            SAPWebServiceEntity webServiceEntity = System.Configuration.ConfigurationManager.GetSection("MaterialIssueTransferConfig") as SAPWebServiceEntity;

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

            if (runMethod == RunMethod.Auto)
            {
                InventoryFacade inventoryFacade      = new InventoryFacade(this.DataProvider);
                object[]        sapMaterialTransList = inventoryFacade.QuerySAPMaterialTransNotDealed(100);
                if (sapMaterialTransList == null)
                {
                    return(new ServiceResult(true, "", this.m_Argument.TransactionCode));
                }

                foreach (SAPMaterialTrans materialTrans in sapMaterialTransList)
                {
                    System.Threading.Thread.Sleep(10);
                    this.NewTransactionCode();

                    List <DT_MES_TRANSFERPOST_REQTRANSFERITEM> transferItemList = new List <DT_MES_TRANSFERPOST_REQTRANSFERITEM>();
                    DT_MES_TRANSFERPOST_REQTRANSFERITEM        transferItem     = new DT_MES_TRANSFERPOST_REQTRANSFERITEM();
                    transferItem.PSTNG_DATE = materialTrans.AccountDate.ToString();
                    transferItem.DOC_DATE   = materialTrans.VoucherDate.ToString();
                    transferItem.MATERIAL   = materialTrans.ItemCode;
                    transferItem.PLANT      = materialTrans.OrganizationID.ToString();
                    transferItem.STGE_LOC   = materialTrans.FRMStorageID;
                    transferItem.MOVE_STLOC = materialTrans.TOStorageID;
                    transferItem.ENTRY_QNT  = materialTrans.TransQTY.ToString();
                    transferItem.ENTRY_UOM  = materialTrans.Unit;
                    transferItem.HEADER_TXT = materialTrans.ReceiveMemo;
                    transferItem.VENDOR     = materialTrans.VendorCode;
                    transferItem.REF_DOC_NO = materialTrans.MoCode;

                    //transferItem.MOVE_TYPE = "411";
                    transferItem.MOVE_TYPE = materialTrans.SAPCode;

                    transferItemList.Add(transferItem);

                    DT_MES_TRANSFERPOST_REQ materialIssueParameter = new DT_MES_TRANSFERPOST_REQ();
                    materialIssueParameter.TRANSCODE    = this.m_Argument.TransactionCode;
                    materialIssueParameter.TRANSFERITEM = transferItemList.ToArray();

                    returnValue = RunOne(webServiceEntity, materialTrans, materialIssueParameter);
                    if (!returnValue.Result)
                    {
                        break;
                    }
                }
            }
            else if (runMethod == RunMethod.Manually)
            {
                DT_MES_TRANSFERPOST_REQ materialIssueParameter = new DT_MES_TRANSFERPOST_REQ();
                materialIssueParameter.TRANSCODE    = this.m_Argument.TransactionCode;
                materialIssueParameter.TRANSFERITEM = this.m_Argument.InventoryList.ToArray();

                returnValue = RunOne(webServiceEntity, null, materialIssueParameter);
            }

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

            return(returnValue);
        }
示例#4
0
 public void MI_MES_TRANSFERPOST_REQ([System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:sap2mes:transferpost_ii")] DT_MES_TRANSFERPOST_REQ MT_MES_TRANSFERPOST_REQ)
 {
     this.Invoke("MI_MES_TRANSFERPOST_REQ", new object[] {
         MT_MES_TRANSFERPOST_REQ
     });
 }