public override ValueObject Execute(TransactionContext trxContext, ValueObject vo) { Decimal AllowableToError = 0.5M; MoConfirmationMaterialVo inVo = (MoConfirmationMaterialVo)vo; MoConfirmationHeaderVo header = (MoConfirmationHeaderVo)inVo.MoConfirmationHeaderVo; //MoConfirmationMaterialVo materialsVo = (MoConfirmationMaterialVo)inVo.MoConfirmationMaterialListVo.FirstOrDefault(); List <MoConfirmationMaterialVo> materials = inVo.MoConfirmationMaterialListVo; if (header.CancellationFlag != "CAL") { MoConfirmationResultVo FrontResultVo = new MoConfirmationResultVo(); List <SapMessageVo> FrontMessageList = new List <SapMessageVo>(); bool DataIsOk = true; MoConfirmationMaterialVo materialProduct = materials.Find(s => s.MovementType == Properties.Resources.MOVEMENT_TYPE); if (materialProduct == null) { DataIsOk = false; SapMessageVo NullMessage = new SapMessageVo { OrderNumber = header.OrderNumber, MessageType = Properties.Resources.ErrorMessageCategory, MessageClassId = "000", MessageNumber = "000", LogNumber = Properties.Resources.scce00036, LogMessageNumber = "000", MessageVariable1 = "", MessageVariable2 = "", MessageVariable3 = "", MessageVariable4 = "" }; FrontResultVo.MessageList.Add(NullMessage); } else { if (materialProduct.SapBatchNumber != header.LotNoOfUsers) { DataIsOk = false; SapMessageVo BatchDifferentMessage = new SapMessageVo { OrderNumber = header.OrderNumber, MessageType = Properties.Resources.ErrorMessageCategory, MessageClassId = "000", MessageNumber = "000", LogNumber = Properties.Resources.scce00037, LogMessageNumber = "001", MessageVariable1 = "", MessageVariable2 = "", MessageVariable3 = "", MessageVariable4 = "" }; FrontResultVo.MessageList.Add(BatchDifferentMessage); } if (materialProduct.Quantity != header.ProductionOfUsers) { DataIsOk = false; SapMessageVo BatchDifferentMessage = new SapMessageVo { OrderNumber = header.OrderNumber, MessageType = Properties.Resources.ErrorMessageCategory, MessageClassId = "000", MessageNumber = "000", LogNumber = Properties.Resources.scce00038, LogMessageNumber = "002", MessageVariable1 = "", MessageVariable2 = "", MessageVariable3 = "", MessageVariable4 = "" }; FrontResultVo.MessageList.Add(BatchDifferentMessage); } } Decimal MaterQtyAll = materials.Where(r => r.MovementType != Properties.Resources.MOVEMENT_TYPE).Sum(t => t.Quantity); if (header.TotalOfUsers >= MaterQtyAll - AllowableToError && header.TotalOfUsers <= MaterQtyAll + AllowableToError) { } else { DataIsOk = false; SapMessageVo BatchDifferentMessage = new SapMessageVo { OrderNumber = header.OrderNumber, MessageType = Properties.Resources.ErrorMessageCategory, MessageClassId = "000", MessageNumber = "000", LogNumber = Properties.Resources.scce00039, LogMessageNumber = "003", MessageVariable1 = "", MessageVariable2 = "", MessageVariable3 = "", MessageVariable4 = "" }; FrontResultVo.MessageList.Add(BatchDifferentMessage); } if (!DataIsOk) { FrontResultVo.OutSapFlag = Properties.Resources.ErrorMessageCategory; return(FrontResultVo); } } SAPCommandAdapter sapCommandAdapter = base.GetSAPCommandAdaptor(trxContext, SAPRFCNameEnum.RFC_MANUFACTURING_ORDER_CONFIRMATION.GetValue()); //get the sapuser from cache memory SapUserVo sapUserVo = sapCommandAdapter.GetSapUser(trxContext); DateTime dbTime = trxContext.ProcessingDBDateTime; SAPParameterList sapParameter = sapCommandAdapter.CreateParameterList(); sapParameter.AddParameter("PLANT", ServerConfigurationDataTypeEnum.DEFAULT_SAP_PLANT_CODE.GetValue()); // ); sapParameter.AddParameter("ORDER_NUMBER", header.OrderNumber); sapParameter.AddParameter("IMUSER", sapUserVo.SapUser); //set sapuser using using sessionid sapParameter.AddParameter("IMDATE", dbTime.ToString("yyyyMMdd")); //submitting datetime "yyyyMMdd" sapParameter.AddParameter("IMTIME", dbTime.ToString("HHmmss")); //submitting datetime "HHmmss" if (string.IsNullOrEmpty(header.Supervisor)) { sapParameter.AddParameter("SUPERVISOR", trxContext.UserData.UserCode); //nidecmes login user } else { sapParameter.AddParameter("SUPERVISOR", header.Supervisor); // trxContext.UserData.UserCode); //nidecmes login user } sapParameter.AddParameter("ACT_STARTDATE", header.StartDateTime.ToString("yyyyMMdd")); sapParameter.AddParameter("ACT_STARTTIME", header.StartDateTime.ToString("HHmmss")); sapParameter.AddParameter("ACT_ENDDATE", header.EndDateTime.ToString("yyyyMMdd")); sapParameter.AddParameter("ACT_ENDTIME", header.EndDateTime.ToString("HHmmss")); sapParameter.AddParameter("MAN_HOUR", header.ManHour.ToString("0.000")); sapParameter.AddParameter("MACHINE_HOUR", header.MachineHour.ToString("0.000")); sapParameter.AddParameter("WORKUNIT", header.WorkTimeUnit); sapParameter.AddParameter("POSTDATE", header.PostingDate.ToString("yyyyMMdd")); sapParameter.AddParameter("CAL_FLAG", header.CancellationFlag); sapParameter.AddParameter("END_FLAG", header.EndFlag); sapParameter.AddParameter("CONF_NO", header.ConfirmationNumber.ToString()); sapParameter.AddParameter("CONF_CNT", header.ConfirmationCounter.ToString()); sapParameter.AddParameter("MULTI_FLAG", header.MultiFlag); sapParameter.AddParameter("IM_COUNT", header.MaterialCount); sapParameter.AddParameter("IM_TOTAL", header.MaterialQuantityTotal.ToString("0.000")); SAPParameterList sapParameterTable; SAPParameterList sapParameterTableLists = sapCommandAdapter.CreateParameterList(); foreach (MoConfirmationMaterialVo m in materials) { //rfcTable.Insert(); sapParameterTable = sapCommandAdapter.CreateParameterList(); sapParameterTable.AddParameter("ORDER_NUMBER", m.OrderNumber); sapParameterTable.AddParameter("IMDATE", dbTime.ToString("yyyyMMdd")); sapParameterTable.AddParameter("IMTIME", dbTime.ToString("HHmmss")); sapParameterTable.AddParameter("MATERIAL", m.MaterialNumber); sapParameterTable.AddParameter("BATCH", m.SapBatchNumber); sapParameterTable.AddParameter("V_BATCH", m.VendorBatchNumber); sapParameterTable.AddParameter("MOVETYPE", m.MovementType); sapParameterTable.AddParameter("ACT_QUANTITY", m.Quantity.ToString()); sapParameterTable.AddParameter("LGORT", m.StorageLocation); sapParameterTable.AddParameter("UNIT", m.Unit); sapParameterTableLists.AddParameterList(sapParameterTable); } sapParameter.AddParameter("TB_ORDER_MOVEMENT", sapParameterTableLists); SAPFunction sapFuntion = sapCommandAdapter.Execute(trxContext, sapParameter); MoConfirmationResultVo resultVo = new MoConfirmationResultVo { OutSapFlag = sapFuntion.GetSAPValue("OUT_SAPFLAG") }; List <SapMessageVo> messageList = new List <SapMessageVo>(); DataTable sapTable = sapFuntion.GetSAPTable("TB_RETURN"); foreach (DataRow dr in sapTable.Rows) { SapMessageVo message = new SapMessageVo { OrderNumber = ConvertNull <string>(dr, "AUFNR"), MessageType = ConvertNull <string>(dr, "TYPE"), MessageClassId = ConvertNull <string>(dr, "ID"), MessageNumber = ConvertNull <string>(dr, "NUMBER"), LogNumber = ConvertNull <string>(dr, "MESSAGE"), LogMessageNumber = ConvertNull <string>(dr, "LOG_NO"), MessageVariable1 = ConvertNull <string>(dr, "MESSAGE_V1"), MessageVariable2 = ConvertNull <string>(dr, "MESSAGE_V2"), MessageVariable3 = ConvertNull <string>(dr, "MESSAGE_V3"), MessageVariable4 = ConvertNull <string>(dr, "MESSAGE_V4") }; resultVo.MessageList.Add(message); } return(resultVo); }
public override ValueObject Execute(TransactionContext trxContext, ValueObject vo) { PurchaseOrderInVo inVo = (PurchaseOrderInVo)vo; //create command SAPCommandAdapter sapCommandAdapter = base.GetSAPCommandAdaptor(trxContext, "ZGTMMFG38_MES_SAP_INBOUND"); // SAPRFCNameEnum.RFC_DELIVERY_ORDER.GetValue()); SAPParameterList sapParameterTableInput = sapCommandAdapter.CreateParameterList(); SAPParameterList sapParameter; //create parameter for TABLES TB_LIFNR: STRUCTURE ZGTMMS62, if (inVo.LIFNRValueList != null && inVo.LIFNRValueList.Count > 0) { SAPParameterList sapParameterTableLIFNR = sapCommandAdapter.CreateParameterList(); foreach (String value in inVo.LIFNRValueList) { sapParameter = sapCommandAdapter.CreateParameterList(); sapParameter.AddParameter("LIFNR", value); sapParameterTableLIFNR.AddParameterList(sapParameter); } sapParameterTableInput.AddParameter("TB_LIFNR", sapParameterTableLIFNR); } //create parameter for TABLES TB_EBELN: STRUCTURE ZGTMMS63, if (inVo.EBELNValueList != null && inVo.EBELNValueList.Count > 0) { SAPParameterList sapParameterTableEBELN = sapCommandAdapter.CreateParameterList(); foreach (String value in inVo.EBELNValueList) { sapParameter = sapCommandAdapter.CreateParameterList(); sapParameter.AddParameter("EBELN", value); sapParameterTableEBELN.AddParameterList(sapParameter); } sapParameterTableInput.AddParameter("TB_EBELN", sapParameterTableEBELN); } //create parameter for TABLES TB_MATNR: STRUCTURE ZGTMMS64, if (inVo.MATNRValueList != null && inVo.MATNRValueList.Count > 0) { SAPParameterList sapParameterTableMATNR = sapCommandAdapter.CreateParameterList(); foreach (String value in inVo.MATNRValueList) { sapParameter = sapCommandAdapter.CreateParameterList(); sapParameter.AddParameter("MATNR", value); sapParameterTableMATNR.AddParameterList(sapParameter); } sapParameterTableInput.AddParameter("TB_MATNR", sapParameterTableMATNR); } //create parameter for TABLES TB_BEDAT_RANGE:STRUCTURE ZGTMMS65, if (!string.IsNullOrEmpty(inVo.BEFromDate) && !string.IsNullOrEmpty(inVo.BEToDate)) { SAPParameterList sapParameterTableBEDATRANGE = sapCommandAdapter.CreateParameterList(); sapParameterTableBEDATRANGE.AddParameter("SIGN", "I"); sapParameterTableBEDATRANGE.AddParameter("OPTION", "BT"); sapParameterTableBEDATRANGE.AddParameter("LOW", inVo.BEFromDate); sapParameterTableBEDATRANGE.AddParameter("HIGH", inVo.BEToDate); sapParameterTableInput.AddParameter("TB_BEDAT_RANGE", sapParameterTableBEDATRANGE); } //create parameter for TABLES TB_EINDT_RANGE: STRUCTURE ZGTMMS65, if (!string.IsNullOrEmpty(inVo.EINFromDate) && !string.IsNullOrEmpty(inVo.EINToDate)) { SAPParameterList sapParameterTableEINDTRANGE = sapCommandAdapter.CreateParameterList(); sapParameterTableEINDTRANGE.AddParameter("SIGN", "I"); sapParameterTableEINDTRANGE.AddParameter("OPTION", "BT"); sapParameterTableEINDTRANGE.AddParameter("LOW", inVo.EINFromDate); sapParameterTableEINDTRANGE.AddParameter("HIGH", inVo.EINToDate); sapParameterTableInput.AddParameter("TB_EINDT_RANGE", sapParameterTableEINDTRANGE); } sapParameterTableInput.AddParameter("IM_WERKS", ServerConfigurationDataTypeEnum.DEFAULT_SAP_PLANT_CODE.GetValue()); sapParameterTableInput.AddParameter("IM_STATUS", inVo.Status); SAPFunction sapFuntion = sapCommandAdapter.Execute(trxContext, sapParameterTableInput); //PO Count Value string POCount = sapFuntion.GetSAPValue("EX_COUNT"); //PO INFO table data DataTable headerTable = sapFuntion.GetSAPTable("TB_OUTDATA"); // result message table data DataTable resultMessageTable = sapFuntion.GetSAPTable("TB_RETURN"); PurchaseOrderDataVo outVo = new PurchaseOrderDataVo(); // get the Header data foreach (DataRow dr in headerTable.Rows) { PurchaseOrderDataVo curroutVo = new PurchaseOrderDataVo(); curroutVo.AFNAM = ConvertNull <string>(dr, "AFNAM"); curroutVo.AMTLC = decimal.Parse(string.IsNullOrEmpty((ConvertNull <string>(dr, "AMTLC")).ToString().Trim()) ? "0" : (ConvertNull <string>(dr, "AMTLC")).ToString().Replace(",", "")); try { curroutVo.BEDAT = DateTime.Parse(ConvertNull <string>(dr, "BEDAT")); } catch { curroutVo.BEDAT = DateTime.MinValue; } curroutVo.BISMT = ConvertNull <string>(dr, "BISMT"); try { curroutVo.BUDAT = DateTime.Parse(ConvertNull <string>(dr, "BUDAT")); } catch { curroutVo.BUDAT = DateTime.MinValue; } curroutVo.EBELN = ConvertNull <string>(dr, "EBELN"); curroutVo.EBELP = ConvertNull <string>(dr, "EBELP"); try { curroutVo.EINDT = DateTime.Parse(ConvertNull <string>(dr, "EINDT")); } catch { curroutVo.EINDT = DateTime.MinValue; } curroutVo.EKNAM = ConvertNull <string>(dr, "EKNAM"); curroutVo.ESTKZ_DESC = ConvertNull <string>(dr, "ESTKZ_DESC"); curroutVo.LGPBE = ConvertNull <string>(dr, "LGPBE"); curroutVo.LIFNR = ConvertNull <string>(dr, "LIFNR"); curroutVo.MAKTX = ConvertNull <string>(dr, "MAKTX"); curroutVo.MATNR = ConvertNull <string>(dr, "MATNR"); curroutVo.MEINS = ConvertNull <string>(dr, "MEINS"); curroutVo.MENGE = decimal.Parse(string.IsNullOrEmpty((ConvertNull <string>(dr, "MENGE")).ToString().Trim()) ? "0" : (ConvertNull <string>(dr, "MENGE")).ToString().Replace(",", "")); curroutVo.NAME1 = ConvertNull <string>(dr, "NAME1"); curroutVo.NETWR = decimal.Parse(string.IsNullOrEmpty((ConvertNull <string>(dr, "NETWR")).ToString().Trim()) ? "0" : (ConvertNull <string>(dr, "NETWR")).ToString().Replace(",", "")); curroutVo.OPENQ = decimal.Parse(string.IsNullOrEmpty((ConvertNull <string>(dr, "OPENQ")).ToString().Trim()) ? "0" : (ConvertNull <string>(dr, "OPENQ")).ToString().Replace(",", "")); curroutVo.OPNAMTLC = decimal.Parse(string.IsNullOrEmpty((ConvertNull <string>(dr, "OPNAMTLC")).ToString().Trim()) ? "0" : (ConvertNull <string>(dr, "OPNAMTLC")).ToString().Replace(",", "")); curroutVo.PEINH = decimal.Parse(string.IsNullOrEmpty((ConvertNull <string>(dr, "PEINH")).ToString().Trim()) ? "0" : (ConvertNull <string>(dr, "PEINH")).ToString().Replace(",", "")); curroutVo.STATUS = ConvertNull <string>(dr, "STATUS"); curroutVo.UNITP = decimal.Parse(string.IsNullOrEmpty((ConvertNull <string>(dr, "UNITP")).ToString().Trim()) ? "0" : (ConvertNull <string>(dr, "UNITP")).ToString().Replace(",", "")); curroutVo.VERSG = ConvertNull <string>(dr, "VERSG"); curroutVo.WAERS = ConvertNull <string>(dr, "WAERS"); curroutVo.WAERS_L = ConvertNull <string>(dr, "WAERS_L"); curroutVo.WEMNG = decimal.Parse(string.IsNullOrEmpty((ConvertNull <string>(dr, "WEMNG")).ToString().Trim()) ? "0" : (ConvertNull <string>(dr, "WEMNG")).ToString().Replace(",", "")); curroutVo.WRBTR = decimal.Parse(string.IsNullOrEmpty((ConvertNull <string>(dr, "WRBTR")).ToString().Trim()) ? "0" : (ConvertNull <string>(dr, "WRBTR")).ToString().Replace(",", "")); curroutVo.XBLNR = ConvertNull <string>(dr, "XBLNR"); curroutVo.ZAD_NAME = ConvertNull <string>(dr, "ZAD_NAME"); if (outVo.PurchaseOrderDataList == null) { outVo.PurchaseOrderDataList = new List <PurchaseOrderDataVo>(); } outVo.PurchaseOrderDataList.Add(curroutVo); } //get the Return Message data outVo.PurchaseOrderResultMessageList = new List <SapMessageVo>(); foreach (DataRow dr in resultMessageTable.Rows) { SapMessageVo message = new SapMessageVo(); message.MessageType = ConvertNull <string>(dr, "TYPE"); message.MessageClassId = ConvertNull <string>(dr, "ID"); message.MessageNumber = ConvertNull <string>(dr, "NUMBER"); message.Message = ConvertNull <string>(dr, "MESSAGE"); message.LogNumber = ConvertNull <string>(dr, "LOG_NO"); message.LogMessageNumber = ConvertNull <string>(dr, "LOG_MSG_NO"); message.MessageVariable1 = ConvertNull <string>(dr, "MESSAGE_V1"); message.MessageVariable2 = ConvertNull <string>(dr, "MESSAGE_V2"); message.MessageVariable3 = ConvertNull <string>(dr, "MESSAGE_V3"); message.MessageVariable4 = ConvertNull <string>(dr, "MESSAGE_V4"); message.Parameter = ConvertNull <string>(dr, "PARAMETER"); message.Row = ConvertNull <string>(dr, "ROW"); message.Field = ConvertNull <string>(dr, "FIELD"); message.System = ConvertNull <string>(dr, "SYSTEM"); outVo.PurchaseOrderResultMessageList.Add(message); } return(outVo); }
public override ValueObject Execute(TransactionContext trxContext, ValueObject vo) { MoConfirmationMaterialVo inVo = (MoConfirmationMaterialVo)vo; MoConfirmationHeaderVo header = (MoConfirmationHeaderVo)inVo.MoConfirmationHeaderVo; //MoConfirmationMaterialVo materialsVo = (MoConfirmationMaterialVo)inVo.MoConfirmationMaterialListVo.FirstOrDefault(); List <MoConfirmationMaterialVo> materials = inVo.MoConfirmationMaterialListVo; SAPCommandAdapter sapCommandAdapter = base.GetSAPCommandAdaptor(trxContext, SAPRFCNameEnum.RFC_MANUFACTURING_ORDER_CONFIRMATION.GetValue()); //get the sapuser from cache memory SapUserVo sapUserVo = sapCommandAdapter.GetSapUser(trxContext); DateTime dbTime = trxContext.ProcessingDBDateTime; SAPParameterList sapParameter = sapCommandAdapter.CreateParameterList(); sapParameter.AddParameter("PLANT", ServerConfigurationDataTypeEnum.DEFAULT_SAP_PLANT_CODE.GetValue()); // ); sapParameter.AddParameter("ORDER_NUMBER", header.OrderNumber); sapParameter.AddParameter("IMUSER", sapUserVo.SapUser); //set sapuser using using sessionid sapParameter.AddParameter("IMDATE", dbTime.ToString("yyyyMMdd")); //submitting datetime "yyyyMMdd" sapParameter.AddParameter("IMTIME", dbTime.ToString("HHmmss")); //submitting datetime "HHmmss" sapParameter.AddParameter("SUPERVISOR", trxContext.UserData.UserCode); //nidecmes login user sapParameter.AddParameter("ACT_STARTDATE", header.StartDateTime.ToString("yyyyMMdd")); sapParameter.AddParameter("ACT_STARTTIME", header.StartDateTime.ToString("HHmmss")); sapParameter.AddParameter("ACT_ENDDATE", header.EndDateTime.ToString("yyyyMMdd")); sapParameter.AddParameter("ACT_ENDTIME", header.EndDateTime.ToString("HHmmss")); sapParameter.AddParameter("MAN_HOUR", header.ManHour.ToString("0.000")); sapParameter.AddParameter("MACHINE_HOUR", header.MachineHour.ToString("0.000")); sapParameter.AddParameter("WORKUNIT", header.WorkTimeUnit); sapParameter.AddParameter("POSTDATE", header.PostingDate.ToString("yyyyMMdd")); sapParameter.AddParameter("CAL_FLAG", header.CancellationFlag); sapParameter.AddParameter("END_FLAG", header.EndFlag); sapParameter.AddParameter("CONF_NO", header.ConfirmationNumber.ToString()); sapParameter.AddParameter("CONF_CNT", header.ConfirmationCounter.ToString()); sapParameter.AddParameter("MULTI_FLAG", header.MultiFlag); sapParameter.AddParameter("IM_COUNT", header.MaterialCount); sapParameter.AddParameter("IM_TOTAL", header.MaterialQuantityTotal.ToString("0.000")); SAPParameterList sapParameterTable; SAPParameterList sapParameterTableLists = sapCommandAdapter.CreateParameterList(); foreach (MoConfirmationMaterialVo m in materials) { //rfcTable.Insert(); sapParameterTable = sapCommandAdapter.CreateParameterList(); sapParameterTable.AddParameter("ORDER_NUMBER", m.OrderNumber); sapParameterTable.AddParameter("IMDATE", dbTime.ToString("yyyyMMdd")); sapParameterTable.AddParameter("IMTIME", dbTime.ToString("HHmmss")); sapParameterTable.AddParameter("MATERIAL", m.MaterialNumber); sapParameterTable.AddParameter("BATCH", m.SapBatchNumber); sapParameterTable.AddParameter("V_BATCH", m.VendorBatchNumber); sapParameterTable.AddParameter("MOVETYPE", m.MovementType); sapParameterTable.AddParameter("ACT_QUANTITY", m.Quantity.ToString()); sapParameterTable.AddParameter("LGORT", m.StorageLocation); sapParameterTable.AddParameter("UNIT", m.Unit); sapParameterTableLists.AddParameterList(sapParameterTable); } sapParameter.AddParameter("TB_ORDER_MOVEMENT", sapParameterTableLists); SAPFunction sapFuntion = sapCommandAdapter.Execute(trxContext, sapParameter); MoConfirmationResultVo resultVo = new MoConfirmationResultVo { OutSapFlag = sapFuntion.GetSAPValue("OUT_SAPFLAG") }; List <SapMessageVo> messageList = new List <SapMessageVo>(); DataTable sapTable = sapFuntion.GetSAPTable("TB_RETURN"); foreach (DataRow dr in sapTable.Rows) { SapMessageVo message = new SapMessageVo { OrderNumber = ConvertNull <string>(dr, "AUFNR"), MessageType = ConvertNull <string>(dr, "TYPE"), MessageClassId = ConvertNull <string>(dr, "ID"), MessageNumber = ConvertNull <string>(dr, "NUMBER"), LogNumber = ConvertNull <string>(dr, "MESSAGE"), LogMessageNumber = ConvertNull <string>(dr, "LOG_NO"), MessageVariable1 = ConvertNull <string>(dr, "MESSAGE_V1"), MessageVariable2 = ConvertNull <string>(dr, "MESSAGE_V2"), MessageVariable3 = ConvertNull <string>(dr, "MESSAGE_V3"), MessageVariable4 = ConvertNull <string>(dr, "MESSAGE_V4") }; resultVo.MessageList.Add(message); } return(resultVo); }
public override ValueObject Execute(TransactionContext trxContext, ValueObject vo) { PurchaseOrderInVo inVo = (PurchaseOrderInVo)vo; //create command SAPCommandAdapter sapCommandAdapter = base.GetSAPCommandAdaptor(trxContext, "ZGTMMFG38_MES_SAP_INBOUND"); // SAPRFCNameEnum.RFC_DELIVERY_ORDER.GetValue()); SAPParameterList sapParameterTableInput = sapCommandAdapter.CreateParameterList(); SAPParameterList sapParameter; //create parameter for TABLES TB_LIFNR: STRUCTURE ZGTMMS62, if (inVo.LIFNRValueList != null && inVo.LIFNRValueList.Count > 0) { SAPParameterList sapParameterTableLIFNR = sapCommandAdapter.CreateParameterList(); foreach (String value in inVo.LIFNRValueList) { sapParameter = sapCommandAdapter.CreateParameterList(); sapParameter.AddParameter("LIFNR", value); sapParameterTableLIFNR.AddParameterList(sapParameter); } sapParameterTableInput.AddParameter("TB_LIFNR", sapParameterTableLIFNR); } //create parameter for TABLES TB_EBELN: STRUCTURE ZGTMMS63, if (inVo.EBELNValueList != null && inVo.EBELNValueList.Count > 0) { SAPParameterList sapParameterTableEBELN = sapCommandAdapter.CreateParameterList(); foreach (String value in inVo.EBELNValueList) { sapParameter = sapCommandAdapter.CreateParameterList(); sapParameter.AddParameter("EBELN", value); sapParameterTableEBELN.AddParameterList(sapParameter); } sapParameterTableInput.AddParameter("TB_EBELN", sapParameterTableEBELN); } //create parameter for TABLES TB_MATNR: STRUCTURE ZGTMMS64, if (inVo.MATNRValueList != null && inVo.MATNRValueList.Count > 0) { SAPParameterList sapParameterTableMATNR = sapCommandAdapter.CreateParameterList(); foreach (String value in inVo.MATNRValueList) { sapParameter = sapCommandAdapter.CreateParameterList(); sapParameter.AddParameter("MATNR", value); sapParameterTableMATNR.AddParameterList(sapParameter); } sapParameterTableInput.AddParameter("TB_MATNR", sapParameterTableMATNR); } //create parameter for TABLES TB_BEDAT_RANGE:STRUCTURE ZGTMMS65, if (!string.IsNullOrEmpty(inVo.BEFromDate) && !string.IsNullOrEmpty(inVo.BEToDate)) { SAPParameterList sapParameterTableBEDATRANGE = sapCommandAdapter.CreateParameterList(); sapParameterTableBEDATRANGE.AddParameter("SIGN", "I"); sapParameterTableBEDATRANGE.AddParameter("OPTION", "BT"); sapParameterTableBEDATRANGE.AddParameter("LOW", inVo.BEFromDate); sapParameterTableBEDATRANGE.AddParameter("HIGH", inVo.BEToDate); sapParameterTableInput.AddParameter("TB_BEDAT_RANGE", sapParameterTableBEDATRANGE); } //create parameter for TABLES TB_EINDT_RANGE: STRUCTURE ZGTMMS65, if (!string.IsNullOrEmpty(inVo.EINFromDate) && !string.IsNullOrEmpty(inVo.EINToDate)) { SAPParameterList sapParameterTableEINDTRANGE = sapCommandAdapter.CreateParameterList(); sapParameterTableEINDTRANGE.AddParameter("SIGN", "I"); sapParameterTableEINDTRANGE.AddParameter("OPTION", "BT"); sapParameterTableEINDTRANGE.AddParameter("LOW", inVo.EINFromDate); sapParameterTableEINDTRANGE.AddParameter("HIGH", inVo.EINToDate); sapParameterTableInput.AddParameter("TB_EINDT_RANGE", sapParameterTableEINDTRANGE); } sapParameterTableInput.AddParameter("IM_WERKS", ServerConfigurationDataTypeEnum.DEFAULT_SAP_PLANT_CODE.GetValue()); sapParameterTableInput.AddParameter("IM_STATUS", inVo.Status); SAPFunction sapFuntion = sapCommandAdapter.Execute(trxContext, sapParameterTableInput); //PO Count Value string POCount = sapFuntion.GetSAPValue("EX_COUNT"); //PO INFO table data DataTable headerTable = sapFuntion.GetSAPTable("TB_OUTDATA"); // result message table data DataTable resultMessageTable = sapFuntion.GetSAPTable("TB_RETURN"); PurchaseOrderOutVo outVo = new PurchaseOrderOutVo(); // get the Header data foreach (DataRow dr in headerTable.Rows) { PurchaseOrderOutVo curroutVo = new PurchaseOrderOutVo(); curroutVo.Material = ConvertNull <string>(dr, "MATNR"); curroutVo.MaterialName = ConvertNull <string>(dr, "MAKTX"); curroutVo.Supplier = ConvertNull <string>(dr, "LIFNR"); curroutVo.SupplierName = ConvertNull <string>(dr, "NAME1"); curroutVo.PurchaseOrderNumber = ConvertNull <string>(dr, "EBELN"); curroutVo.POLineNumber = ConvertNull <string>(dr, "EBELP"); curroutVo.OrderQuantity = decimal.Parse(string.IsNullOrEmpty((ConvertNull <string>(dr, "MENGE")).ToString().Trim()) ? "0" : (ConvertNull <string>(dr, "MENGE")).ToString().Replace(",", "")); curroutVo.OpenQuantity = decimal.Parse(string.IsNullOrEmpty((ConvertNull <string>(dr, "OPENQ")).ToString().Trim()) ? "0" : (ConvertNull <string>(dr, "OPENQ")).ToString().Replace(",", "")); // decimal.Parse(ConvertNull<string>(dr, "OPENQ")); curroutVo.ReceivedQuantity = decimal.Parse(string.IsNullOrEmpty((ConvertNull <string>(dr, "WEMNG")).ToString().Trim()) ? "0" : (ConvertNull <string>(dr, "WEMNG")).ToString().Replace(",", "")); //decimal.Parse(ConvertNull<string>(dr, "WEMNG")); curroutVo.Unit = ConvertNull <string>(dr, "MEINS"); if (outVo.PurchaseOrderList == null) { outVo.PurchaseOrderList = new List <PurchaseOrderOutVo>(); } if (!string.IsNullOrWhiteSpace(POCount)) { outVo.POCount = Convert.ToInt32(POCount); } outVo.PurchaseOrderList.Add(curroutVo); } //get the Return Message data outVo.PurchaseOrderResultMessageList = new List <SapMessageVo>(); foreach (DataRow dr in resultMessageTable.Rows) { SapMessageVo message = new SapMessageVo(); message.MessageType = ConvertNull <string>(dr, "TYPE"); message.MessageClassId = ConvertNull <string>(dr, "ID"); message.MessageNumber = ConvertNull <string>(dr, "NUMBER"); message.Message = ConvertNull <string>(dr, "MESSAGE"); message.LogNumber = ConvertNull <string>(dr, "LOG_NO"); message.LogMessageNumber = ConvertNull <string>(dr, "LOG_MSG_NO"); message.MessageVariable1 = ConvertNull <string>(dr, "MESSAGE_V1"); message.MessageVariable2 = ConvertNull <string>(dr, "MESSAGE_V2"); message.MessageVariable3 = ConvertNull <string>(dr, "MESSAGE_V3"); message.MessageVariable4 = ConvertNull <string>(dr, "MESSAGE_V4"); message.Parameter = ConvertNull <string>(dr, "PARAMETER"); message.Row = ConvertNull <string>(dr, "ROW"); message.Field = ConvertNull <string>(dr, "FIELD"); message.System = ConvertNull <string>(dr, "SYSTEM"); outVo.PurchaseOrderResultMessageList.Add(message); } return(outVo); }