public DBMoHeader(MoHeader header):base(header){ }
public MoReleaseResponse MoRelease(MoHeader moheader, MoItemDetail[] moitems) { string connectionDB = "PP_DBServer"; int dbIndex = 0; string methodName = MethodBase.GetCurrentMethod().Name; BaseLog.LoggingBegin(logger, methodName); string msgName = "MORelease"; string responseMsg = "MOReleaseResponse"; if (string.IsNullOrEmpty(moheader.TCode) || moheader.TCode == "CO02" || moheader.TCode == "BADI") { msgName = "MOChange"; responseMsg = "MOChangeResponse"; } DBMoHeader dbheader = new DBMoHeader(moheader); try { string BuildOutMtl = ""; string MaterialGroup = ""; string TotalQty = ""; string Status = ""; BuildOutMtl = string.IsNullOrEmpty(moheader.BuildOutMtl) ? "" : moheader.BuildOutMtl; MaterialGroup = string.IsNullOrEmpty(moheader.MaterialGroup) ? "" : moheader.MaterialGroup; TotalQty = string.IsNullOrEmpty(moheader.TotalQty) ? "" : moheader.TotalQty; Status = string.IsNullOrEmpty(moheader.Status) ? "" : moheader.Status; WS.Common.SQL.InsertTxnDataLog_DB(connectionDB, dbIndex, EnumMsgCategory.Receive, msgName, string.IsNullOrEmpty(moheader.MoNumber) ? "" : moheader.MoNumber, string.IsNullOrEmpty(moheader.Status) ? "" : moheader.Status, string.IsNullOrEmpty(moheader.SerialNumber) ? "" : moheader.SerialNumber, "", "", EnumMsgState.Received, BuildOutMtl + ";" + MaterialGroup + ";" + TotalQty + ";" + Status); List<DBMoItemDetail> lstdbItemdetail = new List<DBMoItemDetail>(); foreach (MoItemDetail item in moitems) { lstdbItemdetail.Add(new DBMoItemDetail(item)); } //1.檢查必要的input parameter DBMoItemDetail[] dbitemsArr = lstdbItemdetail.ToArray(); Execute.ValidateParameter(dbheader, lstdbItemdetail.ToArray()); //2.檢查資料內容 Execute.CheckData(dbheader, dbitemsArr); //3.執行DB insert Execute.Process(dbheader, dbitemsArr, connectionDB); //4.Build Response Message MoReleaseResponse mrealease = Execute.BuildResponseMsg(moheader, true, ""); WS.Common.SQL.InsertTxnDataLog_DB(connectionDB, dbIndex, EnumMsgCategory.Send, responseMsg, string.IsNullOrEmpty(moheader.MoNumber) ? "" : moheader.MoNumber, string.IsNullOrEmpty(moheader.Status) ? "" : moheader.Status, string.IsNullOrEmpty(moheader.SerialNumber) ? "" : moheader.SerialNumber, "", "", EnumMsgState.Success, ""); return mrealease; } catch (Exception e) { BaseLog.LoggingError(logger, MethodBase.GetCurrentMethod(), e); MoReleaseResponse mrealease = Execute.BuildResponseMsg(moheader, false, e.Message); WS.Common.SQL.InsertTxnDataLog_DB(connectionDB, dbIndex, EnumMsgCategory.Receive, responseMsg, string.IsNullOrEmpty(moheader.MoNumber) ? "" : moheader.MoNumber, string.IsNullOrEmpty(moheader.Status) ? "" : moheader.Status, string.IsNullOrEmpty(moheader.SerialNumber) ? "" : moheader.SerialNumber, "", e.Message, EnumMsgState.Fail, ""); return mrealease; } finally { BaseLog.LoggingEnd(logger, methodName); } }
public MoHeader(MoHeader header) { ObjectTool.CopyObject(header, this); }
//4.Build Response message structure public static MoReleaseResponse BuildResponseMsg(MoHeader moheader, bool isOK, string errMsg) { string methodName = MethodBase.GetCurrentMethod().Name; BaseLog.LoggingBegin(logger, methodName); try { MoReleaseResponse response = new MoReleaseResponse(); if (isOK) { response.FailDescr = ""; response.MoNumber = moheader.MoNumber; response.Result = "T"; } else { response.FailDescr = errMsg; response.MoNumber = moheader.MoNumber; response.Result = "F"; } BaseLog.LoggingInfo(logger,"ResponseMsg: \r\n{0}", ObjectTool.ObjectTostring(response)); //SQL.InsertTxnDataLog("Send", "MoReleaseResponse", moheader.MoNumber, moheader.BuildOutMtl, moheader.TxnId, "", errMsg, "Sending",""); return response; } catch (Exception e) { BaseLog.LoggingError(logger, MethodBase.GetCurrentMethod(), e); //SQL.InsertTxnDataLog("Send", "MoReleaseResponse", moheader.MoNumber, moheader.BuildOutMtl, moheader.TxnId, "",e.Message, "Fail",""); throw e; } finally { BaseLog.LoggingEnd(logger, methodName); } }