From d15cd38daf32414fdb6195c67672e27f07ee2977 Mon Sep 17 00:00:00 2001 From: "Infineon\\StieberD" Date: Wed, 2 Jul 2025 12:50:00 -0700 Subject: [PATCH] added UpdateOpenWorkOrderStatuses and UpdateWorkOrderStatus services --- LSL2/STPROC/COPY_WO_LOG_RECORD_TO_SQL.txt | 76 ++++----- LSL2/STPROC/WORK_ORDER_SERVICES.txt | 188 +++++++++++++++++++++- LSL2/STPROCINS/WO_LOG_EQUATES.txt | 4 + 3 files changed, 229 insertions(+), 39 deletions(-) diff --git a/LSL2/STPROC/COPY_WO_LOG_RECORD_TO_SQL.txt b/LSL2/STPROC/COPY_WO_LOG_RECORD_TO_SQL.txt index 9910623..11ffdff 100644 --- a/LSL2/STPROC/COPY_WO_LOG_RECORD_TO_SQL.txt +++ b/LSL2/STPROC/COPY_WO_LOG_RECORD_TO_SQL.txt @@ -14,49 +14,50 @@ Declare function SQL_Write, SQL_Write_MV, SQL_Format Ans = "" // Parse record into a dimensioned array for speed -Dim Rec(82) +Dim Rec(85) MatParse Record into Rec // List of key names and their values Keys = "WO":@VM:SQL_Format(Key, "INT") // List of data fields and their values -DataFields = "ENTRY_ID" :@VM:SQL_Format(Rec(WO_LOG_ENTRY_ID$), "STR"):@FM -DataFields := "ENTRY_DATE" :@VM:SQL_Format(Rec(WO_LOG_ENTRY_DATE$), "DATE"):@FM -DataFields := "CUST_NO" :@VM:SQL_Format(Rec(WO_LOG_CUST_NO$), "INT"):@FM -DataFields := "QTY" :@VM:SQL_Format(Rec(WO_LOG_QTY$), "INT"):@FM -DataFields := "PROD_SPEC_ID" :@VM:SQL_Format(Rec(WO_LOG_PROD_SPEC_ID$), "INT"):@FM -DataFields := "NOTES" :@VM:SQL_Format(Rec(WO_LOG_NOTES$), "STR", 1):@FM -DataFields := "CUST_SHIP_DATE" :@VM:SQL_Format(Rec(WO_LOG_CUST_SHIP_DATE$), "DATE"):@FM -DataFields := "STATUS" :@VM:SQL_Format(Rec(WO_LOG_STATUS$), "STR"):@FM -DataFields := "ORG_SCHEDULED" :@VM:SQL_Format(Rec(WO_LOG_ORG_SCHEDULED$), "BIT"):@FM -DataFields := "RECEIVED_DATE" :@VM:SQL_Format(Rec(WO_LOG_RECEIVED_DATE$), "DATE"):@FM -DataFields := "CLOSE_DATE" :@VM:SQL_Format(Rec(WO_LOG_CLOSE_DATE$), "DATE"):@FM -DataFields := "RECEIVED_TIME" :@VM:SQL_Format(Rec(WO_LOG_RECEIVED_TIME$), "TIME"):@FM -DataFields := "COMMIT_DATE" :@VM:SQL_Format(Rec(WO_LOG_COMMIT_DATE$), "DATE"):@FM -DataFields := "CYCLE_TIME" :@VM:SQL_Format(Rec(WO_LOG_CYCLE_TIME$), "STR"):@FM -DataFields := "UNIT_PRICE" :@VM:SQL_Format(Rec(WO_LOG_UNIT_PRICE$), "STR"):@FM -DataFields := "ORDER_NO" :@VM:SQL_Format(Rec(WO_LOG_ORDER_NO$), "STR"):@FM -DataFields := "RX_DTM" :@VM:SQL_Format(Rec(WO_LOG_RX_DTM$), "DATETIME"):@FM -DataFields := "OUT_CASS_LOAD_QTY":@VM:SQL_Format(Rec(WO_LOG_OUT_CASS_LOAD_QTY$), "INT"):@FM -DataFields := "PART_NO" :@VM:SQL_Format(Rec(WO_LOG_PART_NO$), "STR"):@FM -DataFields := "PROD_ORD_NO" :@VM:SQL_Format(Rec(WO_LOG_PROD_ORD_NO$), "STR"):@FM -DataFields := "WO_START_DTM" :@VM:SQL_Format(Rec(WO_LOG_WO_START_DTM$), "DATETIME"):@FM -DataFields := "WO_STOP_DTM" :@VM:SQL_Format(Rec(WO_LOG_WO_STOP_DTM$), "DATETIME"):@FM -DataFields := "WO_HOLD" :@VM:SQL_Format(Rec(WO_LOG_WO_HOLD$), "BIT"):@FM -DataFields := "EPI_PART_NO" :@VM:SQL_Format(Rec(WO_LOG_EPI_PART_NO$), "STR"):@FM -DataFields := "ORD_SUB_PART_NO" :@VM:SQL_Format(Rec(WO_LOG_ORD_SUB_PART_NO$), "STR"):@FM -DataFields := "ORD_SUB_PART_REV" :@VM:SQL_Format(Rec(WO_LOG_ORD_SUB_PART_REV$), "STR"):@FM -DataFields := "CUST_PO_NO" :@VM:SQL_Format(Rec(WO_LOG_CUST_PO_NO$), "STR"):@FM -DataFields := "SAP_ORD_QTY" :@VM:SQL_Format(Rec(WO_LOG_SAP_ORD_QTY$), "INT"):@FM -DataFields := "CUST_PART_NO" :@VM:SQL_Format(Rec(WO_LOG_CUST_PART_NO$), "STR"):@FM -DataFields := "CUST_PART_INBOUND":@VM:SQL_Format(Rec(WO_LOG_CUST_PART_INBOUND$), "STR"):@FM -DataFields := "CUST_SUB_PART_NO" :@VM:SQL_Format(Rec(WO_LOG_CUST_SUB_PART_NO$), "STR"):@FM -DataFields := "CUST_SUB_MFR" :@VM:SQL_Format(Rec(WO_LOG_CUST_SUB_MFR$), "STR"):@FM -DataFields := "PROD_ORD_NO_TMP" :@VM:SQL_Format(Rec(WO_LOG_PROD_ORD_NO_TMP$), "STR"):@FM -DataFields := "ORIGIN" :@VM:SQL_Format(Rec(WO_LOG_ORIGIN$), "STR"):@FM -DataFields := "INCO_CODE" :@VM:SQL_Format(Rec(WO_LOG_INCO_CODE$), "STR"):@FM -DataFields := "HOT_FLAG" :@VM:SQL_Format(Rec(WO_LOG_HOT_FLAG$), "BIT"):@FM +DataFields = "ENTRY_ID" :@VM:SQL_Format(Rec(WO_LOG_ENTRY_ID$), "STR"):@FM +DataFields := "ENTRY_DATE" :@VM:SQL_Format(Rec(WO_LOG_ENTRY_DATE$), "DATE"):@FM +DataFields := "CUST_NO" :@VM:SQL_Format(Rec(WO_LOG_CUST_NO$), "INT"):@FM +DataFields := "QTY" :@VM:SQL_Format(Rec(WO_LOG_QTY$), "INT"):@FM +DataFields := "PROD_SPEC_ID" :@VM:SQL_Format(Rec(WO_LOG_PROD_SPEC_ID$), "INT"):@FM +DataFields := "NOTES" :@VM:SQL_Format(Rec(WO_LOG_NOTES$), "STR", 1):@FM +DataFields := "CUST_SHIP_DATE" :@VM:SQL_Format(Rec(WO_LOG_CUST_SHIP_DATE$), "DATE"):@FM +DataFields := "STATUS" :@VM:SQL_Format(Rec(WO_LOG_STATUS$), "STR"):@FM +DataFields := "ORG_SCHEDULED" :@VM:SQL_Format(Rec(WO_LOG_ORG_SCHEDULED$), "BIT"):@FM +DataFields := "RECEIVED_DATE" :@VM:SQL_Format(Rec(WO_LOG_RECEIVED_DATE$), "DATE"):@FM +DataFields := "CLOSE_DATE" :@VM:SQL_Format(Rec(WO_LOG_CLOSE_DATE$), "DATE"):@FM +DataFields := "RECEIVED_TIME" :@VM:SQL_Format(Rec(WO_LOG_RECEIVED_TIME$), "TIME"):@FM +DataFields := "COMMIT_DATE" :@VM:SQL_Format(Rec(WO_LOG_COMMIT_DATE$), "DATE"):@FM +DataFields := "CYCLE_TIME" :@VM:SQL_Format(Rec(WO_LOG_CYCLE_TIME$), "STR"):@FM +DataFields := "UNIT_PRICE" :@VM:SQL_Format(Rec(WO_LOG_UNIT_PRICE$), "STR"):@FM +DataFields := "ORDER_NO" :@VM:SQL_Format(Rec(WO_LOG_ORDER_NO$), "STR"):@FM +DataFields := "RX_DTM" :@VM:SQL_Format(Rec(WO_LOG_RX_DTM$), "DATETIME"):@FM +DataFields := "OUT_CASS_LOAD_QTY" :@VM:SQL_Format(Rec(WO_LOG_OUT_CASS_LOAD_QTY$), "INT"):@FM +DataFields := "PART_NO" :@VM:SQL_Format(Rec(WO_LOG_PART_NO$), "STR"):@FM +DataFields := "PROD_ORD_NO" :@VM:SQL_Format(Rec(WO_LOG_PROD_ORD_NO$), "STR"):@FM +DataFields := "WO_START_DTM" :@VM:SQL_Format(Rec(WO_LOG_WO_START_DTM$), "DATETIME"):@FM +DataFields := "WO_STOP_DTM" :@VM:SQL_Format(Rec(WO_LOG_WO_STOP_DTM$), "DATETIME"):@FM +DataFields := "WO_HOLD" :@VM:SQL_Format(Rec(WO_LOG_WO_HOLD$), "BIT"):@FM +DataFields := "EPI_PART_NO" :@VM:SQL_Format(Rec(WO_LOG_EPI_PART_NO$), "STR"):@FM +DataFields := "ORD_SUB_PART_NO" :@VM:SQL_Format(Rec(WO_LOG_ORD_SUB_PART_NO$), "STR"):@FM +DataFields := "ORD_SUB_PART_REV" :@VM:SQL_Format(Rec(WO_LOG_ORD_SUB_PART_REV$), "STR"):@FM +DataFields := "CUST_PO_NO" :@VM:SQL_Format(Rec(WO_LOG_CUST_PO_NO$), "STR"):@FM +DataFields := "SAP_ORD_QTY" :@VM:SQL_Format(Rec(WO_LOG_SAP_ORD_QTY$), "INT"):@FM +DataFields := "CUST_PART_NO" :@VM:SQL_Format(Rec(WO_LOG_CUST_PART_NO$), "STR"):@FM +DataFields := "CUST_PART_INBOUND" :@VM:SQL_Format(Rec(WO_LOG_CUST_PART_INBOUND$), "STR"):@FM +DataFields := "CUST_SUB_PART_NO" :@VM:SQL_Format(Rec(WO_LOG_CUST_SUB_PART_NO$), "STR"):@FM +DataFields := "CUST_SUB_MFR" :@VM:SQL_Format(Rec(WO_LOG_CUST_SUB_MFR$), "STR"):@FM +DataFields := "PROD_ORD_NO_TMP" :@VM:SQL_Format(Rec(WO_LOG_PROD_ORD_NO_TMP$), "STR"):@FM +DataFields := "ORIGIN" :@VM:SQL_Format(Rec(WO_LOG_ORIGIN$), "STR"):@FM +DataFields := "INCO_CODE" :@VM:SQL_Format(Rec(WO_LOG_INCO_CODE$), "STR"):@FM +DataFields := "HOT_FLAG" :@VM:SQL_Format(Rec(WO_LOG_HOT_FLAG$), "BIT"):@FM +DataFields := "CURR_STATUS_STATIC" :@VM:SQL_Format(Rec(WO_LOG_CURR_STATUS_STATIC$), "STR"):@FM // Symbolics DataFields := "START_DT" :@VM:SQL_Format({START_DT}, "DATE"):@FM @@ -349,3 +350,4 @@ If Ans EQ "" AND CassIdSap NE "" then end Return Ans + diff --git a/LSL2/STPROC/WORK_ORDER_SERVICES.txt b/LSL2/STPROC/WORK_ORDER_SERVICES.txt index f986b2e..5477557 100644 --- a/LSL2/STPROC/WORK_ORDER_SERVICES.txt +++ b/LSL2/STPROC/WORK_ORDER_SERVICES.txt @@ -23,7 +23,6 @@ Function Work_Order_Services(@Service, @Params) 11/23/20 djs Added CreateOutbound service. ***********************************************************************************************************************/ - #pragma precomp SRP_PreCompiler $insert APP_INSERTS @@ -51,7 +50,8 @@ $Insert WM_OUT_EQUATES Declare subroutine Error_Services, Work_Order_Services, Memory_Services, RList, Database_Services, SRP_JSON Declare subroutine Btree.Extract, Set_Status, obj_WO_Log, obj_Notes, Print_Wo_Mat_In_Labels, Print_Wo_Mat_Out_Labels Declare subroutine Print_Wmi_Labels, Print_Wmo_Labels, ErrMsg, Print_Cass_Labels, Logging_Services, Service_Services -Declare subroutine obj_WO_Mat_Log, WO_Mat_Services, Work_Order_Services +Declare subroutine obj_WO_Mat_Log, WO_Mat_Services, Work_Order_Services, Transaction_Services, Extract_Si_Keys +Declare subroutine Mona_Services Declare function SRP_Array, Work_Order_Services, Memory_Services, Database_Services, SRP_Sort_Array, SRP_JSON Declare function Company_Services, obj_Prod_Spec, Schedule_Services, Datetime, obj_WO_Log, obj_WO_Step, Memberof Declare function Environment_Services, Logging_Services, Hold_Services, Signature_Services @@ -1552,6 +1552,190 @@ Service GetEligiblePeelOffLotsByWOAndEntityType(WONo, EntityType) end Response = EligibleCassIds + +end service + + +Service UpdateOpenWorkOrderStatuses() + + hSysLists = Database_Services('GetTableHandle', 'SYSLISTS') + Lock hSysLists, ServiceKeyID then + + StatusName = Service + IsProd = Environment_Services('IsProd') + If IsProd then + MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_SERVICE_MANAGER' + end else + MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_SERVICE_MANAGER' + end + + Server = Environment_Services('GetServer') + LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\WO_LOG' + LogDate = Oconv(Date(), 'D4/') + LogTime = Oconv(Time(), 'MTS') + LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Update Work Order Status Log.csv' + Headers = 'Logging DTM' : @FM : 'Work Order No' : @FM : 'Log' + objStatusLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$,',', Headers, '', False$, False$) + + LogData = '' + LogData<1> = OConv(Datetime(), 'DT/^S') + LogData<2> = Server + LogData<3> = 'Begin ':Service + Logging_Services('AppendLog', objStatusLog, LogData, @RM, @FM) + + ErrorMsg = '' + OpenWoLogKeys = '' + ErrCode = '' + Extract_Si_Keys('WO_LOG', 'CLOSE_DATE', '', OpenWoLogKeys) + If Not(Get_Status(ErrCode)) then + If OpenWoLogKeys NE '' then + For each OpenWoLogKey in OpenWoLogKeys using @VM + Service_Services('PostProcedure', 'WORK_ORDER_SERVICES', 'UpdateWorkOrderStatus':@VM:OpenWoLogKey) + If Error_Services('NoError') then + LogData<1> = OConv(Datetime(), 'DT/^S') + LogData<2> = Server + LogData<3> = 'Successfully posted UpdateWorkOrderStatus procedure to PROC_QUEUE for WO_LOG ':OpenWOLogKey:'.' + Logging_Services('AppendLog', objStatusLog, LogData, @RM, @FM) + end else + ErrorMsg = 'Error posting UpdateWorkOrderStatus procedure to PROC_QUEUE for WO_LOG ':OpenWOLogKey:'.' + LogData<1> = OConv(Datetime(), 'DT/^S') + LogData<2> = Server + LogData<3> = ErrorMsg + Logging_Services('AppendLog', objStatusLog, LogData, @RM, @FM) + end + Next OpenWoLogKey + end else + LogData<1> = OConv(Datetime(), 'DT/^S') + LogData<2> = Server + LogData<3> = 'No open work orders to update.' + Logging_Services('AppendLog', objStatusLog, LogData, @RM, @FM) + end + end else + ErrorMsg = 'Error calling Extract_Si_Keys. Error code: ':ErrCode:'.' + LogData<1> = OConv(Datetime(), 'DT/^S') + LogData<2> = Server + LogData<3> = ErrorMsg + Logging_Services('AppendLog', objStatusLog, LogData, @RM, @FM) + end + + LogData = '' + LogData<1> = OConv(Datetime(), 'DT/^S') + LogData<2> = Server + LogData<3> = 'End ':Service + Logging_Services('AppendLog', objStatusLog, LogData, @RM, @FM) + + If ErrorMsg EQ '' then + MonaStatus = 'ok' + end else + MonaStatus = 'critical' + end + + Mona_Services('PostStatus', MonaResource, StatusName, MonaStatus) + + Unlock hSysLists, ServiceKeyID else Null + end + +end service + + +Service UpdateWorkOrderStatus(WOLogId) + + StatusName = Service + IsProd = Environment_Services('IsProd') + If IsProd then + MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_SERVICE_MANAGER' + end else + MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_SERVICE_MANAGER' + end + + Server = Environment_Services('GetServer') + LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\WO_LOG' + LogDate = Oconv(Date(), 'D4/') + LogTime = Oconv(Time(), 'MTS') + LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Update Work Order Status Log.csv' + Headers = 'Logging DTM' : @FM : 'Work Order No' : @FM : 'Log' + objStatusLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$,',', Headers, '', False$, False$) + + LogData = '' + LogData<1> = OConv(Datetime(), 'DT/^S') + LogData<2> = Server + LogData<3> = 'Begin ':Service + Logging_Services('AppendLog', objStatusLog, LogData, @RM, @FM) + + ErrorMsg = '' + If WOLogID NE '' then + If RowExists('WO_LOG', WOLogId) then + WoLogRec = Database_Services('ReadDataRow', 'WO_LOG', WOLogId) + If Error_Services('NoError') then + CurrStatus = WoLogRec + NewStatus = obj_WO_Log('CurrStatus', WOLogId:@RM:WoLogRec) + If CurrStatus NE NewStatus then + LogData<1> = OConv(Datetime(), 'DT/^S') + LogData<2> = Server + LogData<3> = 'Status change from ':CurrStatus:' to ':NewStatus:' for WO_LOG ':WOLogId:'.' + Logging_Services('AppendLog', objStatusLog, LogData, @RM, @FM) + Transaction_Services('PostWriteFieldTransaction', 'WO_LOG', WOLogId, WO_LOG_CURR_STATUS_STATIC$, NewStatus) + If Error_Services('NoError') then + LogData<1> = OConv(Datetime(), 'DT/^S') + LogData<2> = Server + LogData<3> = 'Successfully posted status change for WO_LOG ':WOLogId:' to the TRANSACTION_QUEUE.' + Logging_Services('AppendLog', objStatusLog, LogData, @RM, @FM) + end else + ErrorMsg = 'Error posting status change for WO_LOG ':WOLogId:' to the TRANSACTION_QUEUE.' + LogData<1> = OConv(Datetime(), 'DT/^S') + LogData<2> = Server + LogData<3> = ErrorMsg + Logging_Services('AppendLog', objStatusLog, LogData, @RM, @FM) + end + end else + LogData<1> = OConv(Datetime(), 'DT/^S') + LogData<2> = Server + LogData<3> = 'No status change for WO_LOG ':WOLogId:'.' + Logging_Services('AppendLog', objStatusLog, LogData, @RM, @FM) + end + end else + ErrorMsg = 'Error in ':Service:' service. Error reading WO_LOG ':WOLogId:' record. Error message: ':Error_Services('GetMessage') + LogData<1> = OConv(Datetime(), 'DT/^S') + LogData<2> = Server + LogData<3> = ErrorMsg + Logging_Services('AppendLog', objStatusLog, LogData, @RM, @FM) + end + end else + ErrorMsg = 'Error in ':Service:' service. WO_LOG ':WOLogId:' does not exist.' + LogData<1> = OConv(Datetime(), 'DT/^S') + LogData<2> = Server + LogData<3> = ErrorMsg + Logging_Services('AppendLog', objStatusLog, LogData, @RM, @FM) + end + end else + ErrorMsg = 'Error in ':Service:' service. Null WOLogId passed into service.' + LogData<1> = OConv(Datetime(), 'DT/^S') + LogData<2> = Server + LogData<3> = ErrorMsg + Logging_Services('AppendLog', objStatusLog, LogData, @RM, @FM) + end + + LogData = '' + LogData<1> = OConv(Datetime(), 'DT/^S') + LogData<2> = Server + LogData<3> = 'End ':Service + Logging_Services('AppendLog', objStatusLog, LogData, @RM, @FM) + + If ErrorMsg EQ '' then + MonaStatus = 'ok' + end else + MonaStatus = 'critical' + end + + Mona_Services('PostStatus', MonaResource, StatusName, MonaStatus) + + If ErrorMsg EQ '' then + Response = True$ + end else + Response = False$ + Error_Services('Add', ErrorMsg) + end + end service //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/LSL2/STPROCINS/WO_LOG_EQUATES.txt b/LSL2/STPROCINS/WO_LOG_EQUATES.txt index aae034d..17d0f4a 100644 --- a/LSL2/STPROCINS/WO_LOG_EQUATES.txt +++ b/LSL2/STPROCINS/WO_LOG_EQUATES.txt @@ -92,3 +92,7 @@ Equ WO_LOG_RX_QTY_STATIC$ To 79 Equ WO_LOG_REL_QTY_STATIC$ To 80 Equ WO_LOG_UNREL_QTY_STATIC$ To 81 Equ WO_LOG_SHIP_QTY_STATIC$ To 82 +Equ WO_LOG_RX_STAMPS$ To 83 +Equ WO_LOG_REL_STAMPS$ To 84 +Equ WO_LOG_CURR_STATUS_STATIC$ To 85 +