public string CancelBindDNbyItem(string Plant, string DN, string dnItem, string dnType, out string errorText) { BaseLog.LoggingInfo(logger, "Plant: \r{0}", Plant); BaseLog.LoggingInfo(logger, "DN: \r{0}", DN); string errorCode = "0"; errorText = ""; string connectionDB = "SD_DBServer"; string connectionDB_BK = "SD_DBServer_BK"; string methodName = MethodBase.GetCurrentMethod().Name; string iItem = (dnItem == null) ? "" : dnItem; string iType = (dnType == null) ? "" : dnType; BaseLog.LoggingBegin(logger, methodName); try { SAPCancelBindDNWS.ZWS_CANCEL_SERIALClient SAPDNClient = new SAPCancelBindDNWS.ZWS_CANCEL_SERIALClient("SAPCancelBindDN"); SAPDNClient.ClientCredentials.UserName.UserName = ConfigurationManager.AppSettings["SAPUserName"].ToString(); SAPDNClient.ClientCredentials.UserName.Password = ConfigurationManager.AppSettings["SAPUserPwd"].ToString(); List<SAPCancelBindDNWS.ZwsCancelSnInLine> SnInlist = new List<SAPCancelBindDNWS.ZwsCancelSnInLine>(); string TxnId = string.Format("{0:yyyyMMddHHmmssfff}", DateTime.Now); SQL.InsertCancelBindDNLog(connectionDB_BK, 0, TxnId, Plant, DN, iItem, iType, "Receive", "Success", "", "FIS"); SAPCancelBindDNWS.ZwsCancelSnInLine item1 = new SAPCancelBindDNWS.ZwsCancelSnInLine(); item1.Serialnumber = TxnId; item1.Plant = Plant; item1.Id = DN; item1.Remark1 = iItem; item1.Remark2 = iType; //機型12碼,區分SKU or Docking SnInlist.Add(item1); SQL.InsertSendData_DB(connectionDB, 0, "SendCancelBindDN", item1.Id.Trim(), item1.Plant.Trim(), item1.Serialnumber.Trim(), item1.Remark1 + "," + item1.Remark2, IMES.Service.Common.EnumMsgState.Sending, DateTime.Now); SAPCancelBindDNWS.ZwsCancelSnOutLine[] SnOutLine = SAPDNClient.ZwsCancelSerial(SnInlist.ToArray()); //bool rt; //rt = true; foreach (SAPCancelBindDNWS.ZwsCancelSnOutLine item in SnOutLine) { if (item.Result == "0") { SQL.InsertTxnDataLog_DB(connectionDB, 0, IMES.Service.Common.EnumMsgCategory.Receive, "ReceiveCancelBindDN", item.Id, item.Plant.Trim(), item.Serialnumber.Trim(), item.Result, item.Errortext, IMES.Service.Common.EnumMsgState.Success, ""); SQL.InsertCancelBindDNLog(connectionDB_BK, 0, item.Serialnumber.Trim(), item.Plant.Trim(), item.Id, "", "", "Response", "Success", "", "SAP"); errorCode = item.Result; } else { SQL.InsertTxnDataLog_DB(connectionDB, 0, IMES.Service.Common.EnumMsgCategory.Receive, "ReceiveCancelBindDN", item.Id, item.Plant.Trim(), item.Serialnumber.Trim(), item.Result, item.Errortext, IMES.Service.Common.EnumMsgState.Fail, ""); SQL.InsertCancelBindDNLog(connectionDB_BK, 0, item.Serialnumber.Trim(), item.Plant.Trim(), item.Id, "", "", "Response", "Fail", item.Errortext, "SAP"); errorCode = item.Result; } BaseLog.LoggingInfo(logger, "Serialnumber: \r{0}", item.Serialnumber); BaseLog.LoggingInfo(logger, "DN: \r{0}", DN); BaseLog.LoggingInfo(logger, "Plant: \r{0}", Plant); BaseLog.LoggingInfo(logger, "Result: \r{0}", item.Result); BaseLog.LoggingInfo(logger, "Errortext: \r{0}", item.Errortext); errorText = item.Errortext; } return errorCode; } catch (Exception e) { BaseLog.LoggingError(logger, MethodBase.GetCurrentMethod(), e); errorCode = "9"; errorText = e.Message; return errorCode; } finally { BaseLog.LoggingEnd(logger, methodName); } }
//3.執行DB insert //4.Build Response message structure public static List<CancelBindDNResponse> BuildResponseMsg(CancelBindDN[] results, bool isOK, string errMsg) { string connectionDB = "SD_DBServer"; string connectionDB_BK = "SD_DBServer_BK"; int dbIndex = 0; string methodName = MethodBase.GetCurrentMethod().Name; BaseLog.LoggingBegin(logger, methodName); List<CancelBindDNResponse> ResponseList = new List<CancelBindDNResponse>(); try { if (isOK) { //request SAP web service SAPCancelBindDNWS.ZWS_CANCEL_SERIALClient SAPDNClient = new SAPCancelBindDNWS.ZWS_CANCEL_SERIALClient("SAPCancelBindDN"); SAPDNClient.ClientCredentials.UserName.UserName = WebConfigurationManager.AppSettings["SAPUserName"].ToString(); SAPDNClient.ClientCredentials.UserName.Password = WebConfigurationManager.AppSettings["SAPUserPwd"].ToString(); List<SAPCancelBindDNWS.ZwsCancelSnInLine> SnInlist = new List<SAPCancelBindDNWS.ZwsCancelSnInLine>(); foreach (CancelBindDN item in results) { BaseLog.LoggingInfo(logger, "SerialNumber: \r\n{0}", item.SerialNumber); SAPCancelBindDNWS.ZwsCancelSnInLine item1 = new SAPCancelBindDNWS.ZwsCancelSnInLine(); item1.Serialnumber = item.SerialNumber; item1.Plant = item.Plant; item1.Id = item.DN; item1.Remark1 = item.Remark1; item1.Remark2 = item.Remark2; SnInlist.Add(item1); IMES.WS.Common.SQL.InsertSendData_DB(connectionDB, dbIndex, "SendCancelBindDN", item.DN, item.Plant, item1.Serialnumber.Trim(), item1.Remark1+","+item1.Remark2, EnumMsgState.Sending, DateTime.Now); } SAPCancelBindDNWS.ZwsCancelSnOutLine[] SnOutLine = SAPDNClient.ZwsCancelSerial(SnInlist.ToArray()); foreach (SAPCancelBindDNWS.ZwsCancelSnOutLine item in SnOutLine) { if (item.Result == "0") { IMES.WS.Common.SQL.InsertTxnDataLog_DB(connectionDB, dbIndex, EnumMsgCategory.Receive, "ReceiveCancelBindDN", item.Id, item.Plant.Trim(), item.Serialnumber.Trim(), item.Result, item.Errortext, EnumMsgState.Success, ""); SQL.InsertCancelBindDNLog(connectionDB_BK, dbIndex, item.Serialnumber, item.Plant, item.Id, "", "", EnumMsgCategory.Response, EnumMsgState.Success, "", "SAP"); } else { IMES.WS.Common.SQL.InsertTxnDataLog_DB(connectionDB, dbIndex, EnumMsgCategory.Receive, "ReceiveCancelBindDN", item.Id, item.Plant.Trim(), item.Serialnumber.Trim(), item.Result, item.Errortext, EnumMsgState.Fail, ""); SQL.InsertCancelBindDNLog(connectionDB_BK, dbIndex, item.Serialnumber, item.Plant, item.Id, "", "", EnumMsgCategory.Response, EnumMsgState.Fail, item.Errortext, "SAP"); } CancelBindDNResponse response = new CancelBindDNResponse(); response.SerialNumber = item.Serialnumber; response.DN = item.Id; response.Plant = item.Plant; response.Result = item.Result; response.ErrorText = item.Errortext; ResponseList.Add(response); BaseLog.LoggingInfo(logger, "ResponseMsg: \r\n{0}", ObjectTool.ObjectTostring(response)); } } else { foreach (CancelBindDN item in results) { BaseLog.LoggingInfo(logger, "SerialNumber: \r\n{0}", item.SerialNumber); CancelBindDNResponse responseFail = new CancelBindDNResponse(); string SerialNumber = item.SerialNumber; responseFail.SerialNumber = item.SerialNumber; responseFail.Result = "F"; responseFail.ErrorText = SQL.GetCancelDNState(connectionDB_BK, dbIndex, item.SerialNumber); ResponseList.Add(responseFail); /* SQL.InsertCancelBindDNLog(connectionDB, dbIndex, item.SerialNumber, item.Plant, item.DN, item.Remark1, item.Remark2, EnumMsgCategory.Response, EnumMsgState.Fail, responseFail.ErrorText, "IMES"); */ } } return ResponseList; } catch (Exception e) { BaseLog.LoggingError(logger, MethodBase.GetCurrentMethod(), e); throw e; } finally { BaseLog.LoggingEnd(logger, methodName); } }