public override void init() { try { //從Ini檔中獲取BU/Plant/DB/Cust/Count/ConvertWo/DownloadWO BU = ConfigGet("BU"); Plant = ConfigGet("PLANT"); DB = ConfigGet("DB");//與App.config中配置的匹配 CUST = ConfigGet("CUST"); COUNT = ConfigGet("COUNT"); //可以依工單前綴來確定哪種類型的工單需要自動轉,哪種需手動轉 arrayConvertWO = ConfigGet("CONVERTWO").Split(','); _downloadWO = ConfigGet("DOWNLOADWO"); List <System.Net.IPAddress> temp = HWDNNSFCBase.HostInfo.IP.Where(ipv4 => ipv4.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).ToList(); ip = temp[0].ToString(); //創建DownloadWO_UI,并附值給輸入對象Output.UI Output.UI = new DownLoadWO_UI(this); //依據Ini檔配置的DB從ConnectionManager中獲取數據庫連接 SFCDB = new OleExec(DB, false); //程序運行狀態表 synLock = new T_R_SYNC_LOCK(SFCDB, DB_TYPE_ENUM.Oracle); //工單欄位對照表 C_TAB_COLUMN_MAP = new T_C_TAB_COLUMN_MAP(SFCDB, DB_TYPE_ENUM.Oracle); //從SAP Download下來后分別存儲在以下三張表 R_WO_HEADER = new T_R_WO_HEADER(SFCDB, DB_TYPE_ENUM.Oracle); R_WO_ITEM = new T_R_WO_ITEM(SFCDB, DB_TYPE_ENUM.Oracle); R_WO_TEXT = new T_R_WO_TEXT(SFCDB, DB_TYPE_ENUM.Oracle); //獲取料號/Route C_SKU = new T_C_SKU(SFCDB, DB_TYPE_ENUM.Oracle); RouteDetail = new T_C_ROUTE_DETAIL(SFCDB, DB_TYPE_ENUM.Oracle); C_ROUTE = new T_C_ROUTE(SFCDB, DB_TYPE_ENUM.Oracle); T_Series = new T_C_SERIES(SFCDB, DB_TYPE_ENUM.Oracle); //工單類型及前綴信息 WOType = new T_R_WO_TYPE(SFCDB, DB_TYPE_ENUM.Oracle); Keypart = new T_C_KEYPART(SFCDB, DB_TYPE_ENUM.Oracle); R_WO_BASE = new T_R_WO_BASE(SFCDB, DB_TYPE_ENUM.Oracle); t_c_kp_list = new T_C_KP_LIST(SFCDB, DB_TYPE_ENUM.Oracle); //創建RFC類:建立SAP連接,建立RFC輸入輸出參數 ZRFC_SFC_NSG_0001B = new ZRFC_SFC_NSG_0001B(BU); } catch (Exception e) { throw new Exception("Init DownLoadWO Fail" + e.Message); } //取得RFC的輸出參數Table對象,并附值給Output.Tables Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("ITAB")); Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("WO_HEADER")); Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("WO_ITEM")); Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("WO_TEXT")); }
public override void init() { try { BU = ConfigGet("BU"); Plant = ConfigGet("PLANT"); DB = ConfigGet("DB"); SFCDB = new OleExec(DB, false); List <System.Net.IPAddress> temp = HWDNNSFCBase.HostInfo.IP.Where(ipv4 => ipv4.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).ToList(); ip = temp[0].ToString(); R_MRB_GT = new T_R_MRB_GT(SFCDB, DB_TYPE_ENUM.Oracle); H_MRB_GT = new T_H_MRB_GT(SFCDB, DB_TYPE_ENUM.Oracle); synLock = new T_R_SYNC_LOCK(SFCDB, DB_TYPE_ENUM.Oracle); zcpp_nsg_0091 = new ZCPP_NSBG_0091(BU); Output.UI = new AssyReturnBackFlush_UI(this); } catch (Exception ex) { throw new Exception("Init AssyReturnBackFlush fail," + ex.Message); } }
public override void init() { try { BU = ConfigGet("BU"); Plant = ConfigGet("PLANT"); DB = ConfigGet("DB"); CUST = ConfigGet("CUST"); COUNT = ConfigGet("COUNT"); arrayConvertWO = ConfigGet("CONVERTWO").Split(','); _downloadWO = ConfigGet("DOWNLOADWO"); List <System.Net.IPAddress> temp = HWDNNSFCBase.HostInfo.IP.Where(ipv4 => ipv4.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).ToList(); ip = temp[0].ToString(); Output.UI = new DownLoadWO_UI(this); SFCDB = new OleExec(DB, false); synLock = new T_R_SYNC_LOCK(SFCDB, DB_TYPE_ENUM.Oracle); C_TAB_COLUMN_MAP = new T_C_TAB_COLUMN_MAP(SFCDB, DB_TYPE_ENUM.Oracle); C_SKU = new T_C_SKU(SFCDB, DB_TYPE_ENUM.Oracle); R_WO_HEADER = new T_R_WO_HEADER(SFCDB, DB_TYPE_ENUM.Oracle); R_WO_ITEM = new T_R_WO_ITEM(SFCDB, DB_TYPE_ENUM.Oracle); R_WO_TEXT = new T_R_WO_TEXT(SFCDB, DB_TYPE_ENUM.Oracle); RouteDetail = new T_C_ROUTE_DETAIL(SFCDB, DB_TYPE_ENUM.Oracle); WOType = new T_R_WO_TYPE(SFCDB, DB_TYPE_ENUM.Oracle); Keypart = new T_C_KEYPART(SFCDB, DB_TYPE_ENUM.Oracle); C_ROUTE = new T_C_ROUTE(SFCDB, DB_TYPE_ENUM.Oracle); R_WO_BASE = new T_R_WO_BASE(SFCDB, DB_TYPE_ENUM.Oracle); T_Series = new T_C_SERIES(SFCDB, DB_TYPE_ENUM.Oracle); t_c_kp_list = new T_C_KP_LIST(SFCDB, DB_TYPE_ENUM.Oracle); ZRFC_SFC_NSG_0001B = new ZRFC_SFC_NSG_0001B(BU); } catch (Exception e) { throw new Exception("Init DownLoadWO Fail" + e.Message); } Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("ITAB")); Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("WO_HEADER")); Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("WO_ITEM")); Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("WO_TEXT")); }
public override void init() { try { BU = ConfigGet("BU"); Plant = ConfigGet("PLANT"); DB = ConfigGet("DB"); List <System.Net.IPAddress> temp = HWDNNSFCBase.HostInfo.IP.Where(ipv4 => ipv4.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).ToList(); ip = temp[0].ToString(); SFCDB = new OleExec(DB, false); zcmm_nsbg_0051 = new ZCMM_NSBG_0051(BU); synLock = new T_R_SYNC_LOCK(SFCDB, DB_TYPE_ENUM.Oracle); t_r_sap_temp = new T_R_SAP_TEMP(SFCDB, DB_TYPE_ENUM.Oracle); t_r_saplog = new T_R_SAPLOG(SFCDB, DB_TYPE_ENUM.Oracle); t_c_control = new T_C_CONTROL(SFCDB, DB_TYPE_ENUM.Oracle); t_r_sn_station_detail = new T_R_SN_STATION_DETAIL(SFCDB, DB_TYPE_ENUM.Oracle); Output.UI = new StockInBackFlush_UI(this); } catch (Exception ex) { throw ex; } }
/// <summary> /// 檢查Interface Item 是否被使用 /// </summary> /// <param name="ProgramName"></param> /// <param name="ItemName"></param> /// <param name="Sfcdb"></param> /// <returns></returns> public bool CheckInterfaceRun(string ProgramName, string ItemName, OleExec Sfcdb) { bool InUse = false; bool Flag = true; string EMP_NO = LoginUser.EMP_NO; //OleExec Sfcdb = this.DBPools["SFCDB"].Borrow(); C_Interface = new T_C_INTERFACE(Sfcdb, DB_TYPE_ENUM.Oracle); C_Program_Server = new T_C_PROGRAM_SERVER(Sfcdb, DB_TYPE_ENUM.Oracle); IP = Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault <IPAddress>(a => a.AddressFamily.ToString().Equals("InterNetwork")).ToString(); //C_INTERFACE C_interface = (C_INTERFACE)C_Interface.CHECK_IP(BU, IP, "INTERFACE", ItemName, LoginUser.EMP_NO, Sfcdb, DB_TYPE_ENUM.Oracle); C_PROGRAM_SERVER C_program_server = (C_PROGRAM_SERVER)C_Program_Server.CHECK_IP(BU, IP, "INTERFACE", ItemName, EMP_NO, Sfcdb, DB_TYPE_ENUM.Oracle); T_R_SYNC_LOCK R_Syn_Lock = new T_R_SYNC_LOCK(Sfcdb, DB_TYPE_ENUM.Oracle); InUse = R_Syn_Lock.Check_SYNC_Lock(BU, IP, ProgramName, ItemName, EMP_NO, Sfcdb, DB_TYPE_ENUM.Oracle); if (C_program_server == null || InUse) { Flag = false; } return(Flag); }
public void DoBackFlushGT(string clientip) { try { R_MRB_GT = new T_R_MRB_GT(SFCDB, DB_TYPE_ENUM.Oracle); H_MRB_GT = new T_H_MRB_GT(SFCDB, DB_TYPE_ENUM.Oracle); synLock = new T_R_SYNC_LOCK(SFCDB, DB_TYPE_ENUM.Oracle); zrfc_sfc_nsg_0020 = new ZRFC_SFC_NSG_0020(); zcpp_nsg_0091 = new ZCPP_NSBG_0091(); IsRuning = synLock.IsLock("HWD_MrbBackFlush", SFCDB, DB_TYPE_ENUM.Oracle, out lockIp); if (IsRuning) { throw new Exception("HWD MrbBackFlush interface is running on " + lockIp + ",Please try again later"); } synLock.SYNC_Lock(BU, clientip, "HWD_MrbBackFlush", "HWD_MrbBackFlush", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle); DoMrbBackFlush(); synLock.SYNC_UnLock(BU, clientip, "HWD_MrbBackFlush", "HWD_MrbBackFlush", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle); } catch (Exception ex) { synLock.SYNC_UnLock(BU, clientip, "HWD_MrbBackFlush", "HWD_MrbBackFlush", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle); throw new Exception("Start MrbBackFlush Fail" + ex.Message); } }
/// <summary> /// MRB 組裝退料拋賬 /// </summary> /// <param name="requestValue"></param> /// <param name="Data"></param> /// <param name="StationReturn"></param> public void DoAssyToMrbBackFlush(JObject requestValue, JObject Data, MESStationReturn StationReturn) { try { SFCDB = DBPools["SFCDB"].Borrow(); R_MRB_GT = new T_R_MRB_GT(SFCDB, DB_TYPE_ENUM.Oracle); H_MRB_GT = new T_H_MRB_GT(SFCDB, DB_TYPE_ENUM.Oracle); synLock = new T_R_SYNC_LOCK(SFCDB, DB_TYPE_ENUM.Oracle); zcpp_nsg_0091 = new ZCPP_NSBG_0091(); MRBGTList = new List <R_MRB_GT>(); MRBTable = new DataTable(); if (Interface.IsMonthly(SFCDB, DB_TYPE_ENUM.Oracle)) { //月結不給拋賬 throw new Exception("This time is monthly,can't BackFlush"); } IsRuning = synLock.IsLock("HWD_AssyToMrbBackFlush", SFCDB, DB_TYPE_ENUM.Oracle, out lockIp); if (IsRuning) { throw new Exception("HWD AssyToMrbBackFlush interface is running on " + lockIp + ",Please try again later"); } synLock.SYNC_Lock(BU, this.IP, "HWD_AssyToMrbBackFlush", "HWD_AssyToMrbBackFlush", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle); sql = $@" select * from r_mrb_gt where sap_flag = 0 and zcpp_flag = 1 and sap_station_code is not null "; MRBTable = SFCDB.RunSelect(sql).Tables[0]; if (MRBTable != null && MRBTable.Rows.Count > 0) { foreach (DataRow row in MRBTable.Rows) { rowR_MRBGT = (Row_R_MRB_GT)R_MRB_GT.NewRow(); rowR_MRBGT.loadData(row); MRBGTList.Add(rowR_MRBGT.GetDataObject()); } } postDate = Interface.GetPostDate(SFCDB); if (MRBGTList != null && MRBGTList.Count > 0) { foreach (R_MRB_GT r_mrb_gt in MRBGTList) { rowR_MRBGT = null; rowH_MRBGT = null; logMessage = ""; zcpp_nsg_0091.SetValue("I_WERKS", "WDN1"); zcpp_nsg_0091.SetValue("I_MATNR", r_mrb_gt.SKUNO); zcpp_nsg_0091.SetValue("I_LMNGA", r_mrb_gt.TOTAL_QTY.ToString()); zcpp_nsg_0091.SetValue("I_LGORT", r_mrb_gt.TO_STORAGE); zcpp_nsg_0091.SetValue("I_AUFNR", r_mrb_gt.FROM_STORAGE); zcpp_nsg_0091.SetValue("I_BUDAT", postDate); rowR_MRBGT = (Row_R_MRB_GT)R_MRB_GT.GetObjByID(r_mrb_gt.ID, SFCDB); try { zcpp_nsg_0091.CallRFC(); if (zcpp_nsg_0091.GetValue("O_MESSAGE").IndexOf("Material not exsit,pls check!") >= 0) { rowR_MRBGT.SAP_FLAG = "2"; } else { rowR_MRBGT.SAP_FLAG = "1"; } } catch (Exception ex) { Interface.WriteIntoMESLog(SFCDB, BU, "MESStation", "MESStation.Interface.MrbBackFlush", "AssyToMrbBackFlush", r_mrb_gt.WORKORDERNO + ";" + this.IP + ";" + ex.ToString(), "", this.LoginUser.EMP_NO); rowR_MRBGT.SAP_FLAG = "1"; } SFCDB.ExecSQL(rowR_MRBGT.GetUpdateString(DB_TYPE_ENUM.Oracle)); logMessage = "M:" + zcpp_nsg_0091.GetValue("O_MESSAGE"); rowH_MRBGT = (Row_H_MRB_GT)H_MRB_GT.NewRow(); rowH_MRBGT.ID = H_MRB_GT.GetNewID(BU, SFCDB); rowH_MRBGT.WORKORDERNO = r_mrb_gt.WORKORDERNO; rowH_MRBGT.SAP_STATION_CODE = r_mrb_gt.SAP_STATION_CODE; rowH_MRBGT.FROM_STORAGE = r_mrb_gt.FROM_STORAGE; rowH_MRBGT.TO_STORAGE = r_mrb_gt.TO_STORAGE; rowH_MRBGT.TOTAL_QTY = r_mrb_gt.TOTAL_QTY; rowH_MRBGT.CONFIRMED_FLAG = r_mrb_gt.CONFIRMED_FLAG; rowH_MRBGT.ZCPP_FLAG = r_mrb_gt.ZCPP_FLAG; rowH_MRBGT.SAP_FLAG = r_mrb_gt.SAP_FLAG; rowH_MRBGT.SKUNO = r_mrb_gt.SKUNO; rowH_MRBGT.SAP_MESSAGE = logMessage; rowH_MRBGT.EDIT_EMP = this.LoginUser.EMP_NO; rowH_MRBGT.EDIT_TIME = Interface.GetDBDateTime(SFCDB, DB_TYPE_ENUM.Oracle); SFCDB.ExecSQL(rowH_MRBGT.GetInsertString(DB_TYPE_ENUM.Oracle)); } } synLock.SYNC_UnLock(BU, this.IP, "HWD_AssyToMrbBackFlush", "HWD_AssyToMrbBackFlush", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle); if (SFCDB != null) { DBPools["SFCDB"].Return(SFCDB); } StationReturn.Status = StationReturnStatusValue.Pass; } catch (Exception exception) { StationReturn.Status = StationReturnStatusValue.Fail; throw exception; } }
public void DoJobStockGT(JObject requestValue, JObject Data, MESStationReturn StationReturn) { OleExec SFCDB = DBPools["SFCDB"].Borrow(); try { ZRFC_SFC_NSG_0020 zrfc_sfc_nsg_0020 = new ZRFC_SFC_NSG_0020(this.BU); string lockIp = ""; string postDate; string o_flag = ""; string o_flag1 = ""; string o_flag2 = ""; string o_message = ""; string o_message1 = ""; string o_message2 = ""; bool IsRuning = false; Row_R_STOCK_GT rowStockGT; DataTable table = new DataTable(); SFCDB.ThrowSqlExeception = true; T_R_SYNC_LOCK t_r_sync_lock = new T_R_SYNC_LOCK(SFCDB, DB_TYPE_ENUM.Oracle); T_R_STOCK_GT t_r_stock_gt = new T_R_STOCK_GT(SFCDB, DB_TYPE_ENUM.Oracle); T_R_STOCK t_r_stock = new T_R_STOCK(SFCDB, DB_TYPE_ENUM.Oracle); if (Interface.IsMonthly(SFCDB, DB_TYPE_ENUM.Oracle)) { //月結不給拋賬 //throw new Exception("This time is monthly,can't BackFlush"); throw new Exception(MESReturnMessage.GetMESReturnMessage("MSGCODE20180803152122", new string[] { })); } IsRuning = t_r_sync_lock.IsLock("JOBSTOCKGT", SFCDB, DB_TYPE_ENUM.Oracle, out lockIp); if (IsRuning) { //throw new Exception("JOBSTOCKGT interface is running on " + lockIp + ",Please try again later"); throw new Exception(MESReturnMessage.GetMESReturnMessage("MSGCODE20180803152222", new string[] { lockIp })); } t_r_sync_lock.SYNC_Lock(BU, this.IP, "JOBSTOCKGT", "JOBSTOCKGT", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle); List <R_STOCK_GT> GTList = t_r_stock_gt.GetNotGTListByConfirmedFlag("0", SFCDB); postDate = Interface.GetPostDate(SFCDB); if (GTList != null && GTList.Count > 0) { foreach (R_STOCK_GT r_stock_gt in GTList) { rowStockGT = null; zrfc_sfc_nsg_0020.SetValue("I_AUFNR", r_stock_gt.WORKORDERNO); zrfc_sfc_nsg_0020.SetValue("I_BUDAT", postDate); zrfc_sfc_nsg_0020.SetValue("I_FLAG", r_stock_gt.CONFIRMED_FLAG); zrfc_sfc_nsg_0020.SetValue("I_LGORT_TO", r_stock_gt.TO_STORAGE); zrfc_sfc_nsg_0020.SetValue("I_LMNGA", r_stock_gt.TOTAL_QTY.ToString()); zrfc_sfc_nsg_0020.SetValue("I_STATION", r_stock_gt.SAP_STATION_CODE); try { // zrfc_sfc_nsg_0020 中包含三個動作101,521,轉倉,flag,flag1,flag2 一次對應這三個動作 // flag,flag1,flag2 這幾個flag 0表示OK,1表示false zrfc_sfc_nsg_0020.CallRFC(); o_flag = zrfc_sfc_nsg_0020.GetValue("O_FLAG"); o_flag1 = zrfc_sfc_nsg_0020.GetValue("O_FLAG1"); o_flag2 = zrfc_sfc_nsg_0020.GetValue("O_FLAG2"); o_message = zrfc_sfc_nsg_0020.GetValue("O_MESSAGE"); o_message1 = zrfc_sfc_nsg_0020.GetValue("O_MESSAGE1"); o_message2 = zrfc_sfc_nsg_0020.GetValue("O_MESSAGE2"); rowStockGT = (Row_R_STOCK_GT)t_r_stock_gt.GetObjByID(r_stock_gt.ID, SFCDB); rowStockGT.SAP_MESSAGE = "101:" + o_message + ";521:" + o_message1 + ";311" + o_message2; rowStockGT.BACKFLUSH_TIME = GetDBDateTime(); if (zrfc_sfc_nsg_0020.GetValue("O_FLAG") == "0") { rowStockGT.SAP_FLAG = "1"; t_r_stock.UpdateSapFlagByGTID(rowStockGT.ID, rowStockGT.SAP_FLAG, SFCDB); } else { rowStockGT.SAP_FLAG = "2"; } SFCDB.ExecSQL(rowStockGT.GetUpdateString(DB_TYPE_ENUM.Oracle)); } catch (Exception ex) { Interface.WriteIntoMESLog(SFCDB, BU, "MESStation", "MESStation.Interface.JobStockGT", "DoJobStockGT", r_stock_gt.WORKORDERNO + ";" + this.IP + ";" + ex.ToString(), "", this.LoginUser.EMP_NO); r_stock_gt.SAP_FLAG = "2"; } } } t_r_sync_lock.SYNC_UnLock(BU, this.IP, "JOBSTOCKGT", "JOBSTOCKGT", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle); if (SFCDB != null) { DBPools["SFCDB"].Return(SFCDB); } StationReturn.Status = StationReturnStatusValue.Pass; } catch (Exception exception) { if (SFCDB != null) { DBPools["SFCDB"].Return(SFCDB); } StationReturn.Status = StationReturnStatusValue.Fail; throw exception; } }
public void CallRfcBackFlush() { if (!isRun) { sfcdb = new OleExec(DBName, false); //判斷是否有其他執行 TR_SYNC_LOCK = new T_R_SYNC_LOCK(sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle); string lockIP = ""; string sapMessage = ""; bool isLock = TR_SYNC_LOCK.IsLock("BACKFLUSH", sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle, out lockIP); if (isLock) { throw new Exception("BackFlush Is Running,Please Wait!"); } else { TR_SYNC_LOCK.SYNC_Lock(BU, IP, "HWD", "BACKFLUSH", "Interface", sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle); isRun = true; } if (InterfacePublicValues.IsMonthly(sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle)) { //月結不給拋賬 throw new Exception("This time is monthly,can't BackFlush"); } if (setCtrlEnableDelegate != null) { setCtrlEnableDelegate("btnCallRFC", false); setCtrlEnableDelegate("btnStart", false); } try { ZRFC_SFC_NSG_0009 RFC = new ZRFC_SFC_NSG_0009(_BU); ZRFC_SFC_NSG_0022 RW_RFC = new ZRFC_SFC_NSG_0022(_BU); string[] ReWorks = REWORK.Split(new char[] { ',' }); int curCount = 0; T_R_BACKFLUSH_HISTORY TR_BACKFLUSH_HISTORY = new T_R_BACKFLUSH_HISTORY(sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle); string ConfigPostDate = InterfacePublicValues.GetPostDate(sfcdb); foreach (R_BACKFLUSH_CHECK item in bkList) { try { curCount++; if (processRateDelegate != null) { processRateDelegate("BackFlushProgressBar", "labBackFlushProgress", bkList.Count, curCount); } if (item.DIFF_QTY > 0) { bool isRework = false; for (int i = 0; i < ReWorks.Length; i++) { if (item.WORKORDERNO.IndexOf(ReWorks[i]) == 0) { isRework = true; break; } } if (isRework) { RW_RFC.SetValue(item.WORKORDERNO, ConfigPostDate, item.DIFF_QTY.ToString(), item.SAP_STATION); RW_RFC.CallRFC(); MESDataObject.Module.R_BACKFLUSH_HISTORY his = new MESDataObject.Module.R_BACKFLUSH_HISTORY(); his.WORKORDERNO = item.WORKORDERNO; his.WORKORDER_QTY = (double?)item.WORKORDER_QTY; his.SFC_QTY = (double?)item.SFC_QTY; his.SFC_STATION = item.SFC_STATION; his.SKUNO = item.SKUNO; his.SAP_STATION = item.SAP_STATION; his.LAST_SFC_QTY = (double?)item.LAST_SFC_QTY; his.DIFF_QTY = (double?)item.DIFF_QTY; his.DIFF_QTY1 = (double?)item.DIFF_QTY1; his.BACK_DATE = GetDBTime(sfcdb); his.TIMES = 0; his.DIFF_QTY2 = (double?)item.DIFF_QTY2; his.MRB_QTY = (double?)item.MRB_QTY; string resu = RW_RFC.GetValue("O_FLAG"); if (resu == "0") { his.RESULT = "Y"; resu = RW_RFC.GetValue("O_FLAG1"); if (resu == "1") { WriteLog.WriteIntoMESLog(sfcdb, _BU, "Interface", "MESInterface.HWD.BackFlush.BackFlushHelp", "CallRfcBackFlush", his.WORKORDERNO + "," + his.SAP_STATION + ",521 fail:" + RW_RFC.GetValue("O_MESSAGE1"), "", "System"); } } else { his.RESULT = "N"; } TR_BACKFLUSH_HISTORY.Add(his, sfcdb); } else { RFC.SetValue(item.WORKORDERNO, item.SAP_STATION, item.DIFF_QTY.ToString(), ConfigPostDate); RFC.CallRFC(); MESDataObject.Module.R_BACKFLUSH_HISTORY his = new MESDataObject.Module.R_BACKFLUSH_HISTORY(); his.WORKORDERNO = item.WORKORDERNO; his.WORKORDER_QTY = (double?)item.WORKORDER_QTY; his.SFC_QTY = (double?)item.SFC_QTY; his.SFC_STATION = item.SFC_STATION; his.SKUNO = item.SKUNO; his.SAP_STATION = item.SAP_STATION; his.LAST_SFC_QTY = (double?)item.LAST_SFC_QTY; his.DIFF_QTY = (double?)item.DIFF_QTY; his.DIFF_QTY1 = (double?)item.DIFF_QTY1; his.BACK_DATE = GetDBTime(sfcdb); his.TIMES = 0; his.DIFF_QTY2 = (double?)item.DIFF_QTY2; his.MRB_QTY = (double?)item.MRB_QTY; string resu = RFC.GetValue("O_FLAG"); if (resu == "0") { his.RESULT = "Y"; } else { his.RESULT = "N"; sapMessage = RFC.GetValue("O_MESSAGE"); WriteLog.WriteIntoMESLog(sfcdb, _BU, "Interface", "MESInterface.HWD.BackFlush.BackFlushHelp", "CallRfcBackFlush", item.WORKORDERNO + "," + item.SAP_STATION + ":" + sapMessage, "", "System"); } TR_BACKFLUSH_HISTORY.Add(his, sfcdb); } } } catch (Exception ex) { WriteLog.WriteIntoMESLog(sfcdb, _BU, "Interface", "MESInterface.HWD.BackFlush.BackFlushHelp", "CallRfcBackFlush", item.WORKORDERNO + "," + item.SAP_STATION + ":" + ex.Message, "", "System"); continue; } } isRun = false; TR_SYNC_LOCK.SYNC_UnLock(BU, IP, "HWD", "BACKFLUSH", "Interface", sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle); if (setCtrlEnableDelegate != null) { setCtrlEnableDelegate("btnStart", true); } } catch (Exception ex) { WriteLog.WriteIntoMESLog(sfcdb, _BU, "Interface", "MESInterface.HWD.BackFlush.BackFlushHelp", "CallRfcBackFlush", ex.Message, "", "System"); isRun = false; TR_SYNC_LOCK.SYNC_UnLock(BU, IP, "HWD", "BACKFLUSH", "Interface", sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle); if (setCtrlEnableDelegate != null) { setCtrlEnableDelegate("btnStart", true); } } } }