public ReplyUploadSAPSN UploadSapCustSN(IList<UploadSAPSN> uploadSAPSNList) { string connectionDB = "SD_DBServer"; string methodName = System.Reflection.MethodBase.GetCurrentMethod().Name; logger.DebugFormat("BEGIN: {0}()", methodName); try { var deliveryList=uploadSAPSNList.GroupBy(y=> new {DeliveryNo=y.DN+y.DLV_ITM}).Select(p=> new {Delivery=p.First(), Qty =p.Count()}).ToList(); string txnId =uploadSAPSNList[0].SERIALNUMBER; logger.InfoFormat("[Upload CustSN - Input] TxnId:{0}", txnId); foreach(var p in deliveryList) { string deliveryNo = p.Delivery.DN + p.Delivery.DLV_ITM; logger.InfoFormat("[Upload CustSN - Input] DeliveryNo:{0} Qty:{1}", deliveryNo, p.Qty.ToString()); SQL.InsertTxnDataLog_DB(connectionDB, 0, IMES.Service.Common.EnumMsgCategory.Send, "SendUpdateCustSN", deliveryNo, p.Qty.ToString(), txnId.Trim(), "", "", IMES.Service.Common.EnumMsgState.Success, ""); } ReplyUploadSAPSN ret = new ReplyUploadSAPSN() { HeaderList = new List<ReplyUploadSAPSNHeader>(), ItemList = new List<ReplyUploadSAPSNItem>() }; //to do for send SAP Webservice: #region 1.prepare web service structure SAPUploadSN.ZWS_CO_SN_UPLOADClient SAPClient = new SAPUploadSN.ZWS_CO_SN_UPLOADClient("SAPUploadSN"); SAPClient.ClientCredentials.UserName.UserName = ConfigurationManager.AppSettings["ECCUserName"].ToString(); SAPClient.ClientCredentials.UserName.Password = ConfigurationManager.AppSettings["ECCUserPwd"].ToString(); //Request format SAPUploadSN.ZWS_SN_UPLOAD request = new IMES.SAP.Implementation.SAPUploadSN.ZWS_SN_UPLOAD(); IList<SAPUploadSN.ZWS_ZSDSN_IN_LINE> input = new List<SAPUploadSN.ZWS_ZSDSN_IN_LINE>(); foreach(UploadSAPSN sn in uploadSAPSNList) { input.Add(copyUploadSAPSN(sn)); logger.DebugFormat("\r\n[Upload CustSN - Input]==== \r\n{0}", ObjectTool.ObjectTostring(sn)); } request.IN = input.ToArray(); #endregion #region 2.Send Data and get reply data to iMES SAPUploadSN.ZWS_SN_UPLOADResponse resp= SAPClient.ZWS_SN_UPLOAD(request); ReplyUploadSAPSN reply =new ReplyUploadSAPSN(); foreach(var p in resp.OUT_HEADER) { logger.InfoFormat("[Upload CustSN - Output] TxnId:{0} DeliveryNo:{1} Result:{2} Message:{3} ", p.SERIALNUMBER, p.DLV_NO+p.DLV_ITM, p.RESULT, p.MESSAGE); SQL.InsertTxnDataLog_DB(connectionDB, 0, IMES.Service.Common.EnumMsgCategory.Receive, "ReceiveUploadCustSN", p.DLV_NO + p.DLV_ITM, "", p.SERIALNUMBER, p.RESULT, p.MESSAGE, IMES.Service.Common.EnumMsgState.Fail, ""); } foreach(var x in resp.OUT_ITEM) { logger.InfoFormat("[Upload CustSN - Output] TxnId:{0} DeliveryNo:{1} SN:{2} Result:{3} Message:{4} ", x.SERIALNUMBER, x.DLV_NO + x.DLV_ITM, x.SERNO, x.RESULT, x.MESSAGE); } return copyUploadSNReply(resp); #endregion } catch (Exception e) { logger.Error(e.Message, e); throw; } finally { logger.DebugFormat("END: {0}()", methodName); } }
ReplyUploadSAPSN copyUploadSNReply(SAPUploadSN.ZWS_SN_UPLOADResponse resp) { ReplyUploadSAPSN ret = new ReplyUploadSAPSN(); ret.HeaderList = new List<ReplyUploadSAPSNHeader>(); ret.ItemList = new List<ReplyUploadSAPSNItem>(); foreach (SAPUploadSN.ZWS_ZSDSN_OUT_LINE line in resp.OUT_HEADER) { ret.HeaderList.Add(new ReplyUploadSAPSNHeader() { DLV_ITM=line.DLV_ITM, DLV_NO =line.DLV_NO, MESSAGE = line.MESSAGE, RESULT = line.RESULT, SERIALNUMBER = line.SERIALNUMBER }); } foreach(SAPUploadSN.ZWS_ZSDSN_OUT_ITEM_LINE item in resp.OUT_ITEM) { ret.ItemList.Add(new ReplyUploadSAPSNItem() { DLV_ITM = item.DLV_ITM, DLV_NO =item.DLV_NO, MESSAGE = item.MESSAGE, RESULT = item.RESULT, SERIALNUMBER= item.SERIALNUMBER, SERNO=item.SERNO }); } return ret; }