Added calls to verify indexes and update indexes right after receiving and releasing material. Refactored codebase to adjust work order quantities instead of recalculate quantities.

Removing reliance on transaction queue for receive and releaase

Added unlock call in case write fails
This commit is contained in:
Infineon\StieberD
2025-09-30 13:45:55 -07:00
parent a2f61d11c9
commit beaac0d38a
17 changed files with 1272 additions and 778 deletions

View File

@ -273,7 +273,8 @@ WRITE_RECORD:
Next RDSNo
If (OrgQty NE NewQty) then
Service_Services('PostProcedure', 'WORK_ORDER_SERVICES', 'UpdateScrappedQty':SD$:WorkOrderNo)
ScrapAdj = NewQty - OrgQty
Work_Order_Services('AdjustScrappedQty', WorkOrderNo, ScrapAdj)
end
// On the write of the record, read then write associated WM_IN and WM_OUT records to trigger the WM_MFS.
@ -294,44 +295,41 @@ WRITE_RECORD:
Database_Services('WriteDataRow', 'WM_OUT', WMOKey, WMORec, True$, True$, False$)
end
SAPTestFlag = Xlate('APP_INFO', 'SAP_TEST_FLAG', 1, 'X')
If SAPTestFlag then
// If NCR created after cassette has received a batch number, then inform SAP of new quantities
SAPBatchNo = Xlate('WO_MAT', WOMatKey, 'SAP_BATCH_NO', 'X')
IF SAPBatchNo NE '' THEN
IF (ReactorType = 'EPP') OR (ReactorType = 'EpiPro') THEN
WMOutKey = Xlate('WO_MAT', WOMatKey, 'WMO_KEY', 'X')
CassStatus = Xlate('WM_OUT', WMOutKey, 'CURR_STATUS', 'X')
END ELSE
// Non-EpiPro
RDSNo = Xlate('WO_MAT', WoMatKey, 'RDS_NO', 'X')
CassStatus = Xlate('RDS', RDSNo, 'CURR_STATUS', 'X')
END
// Add SAP transaction
IF OrigRecord = '' THEN
TransQty = NewQty
END ELSE
TransQty = NewQty - OrgQty
END
IF TransQty NE 0 THEN
obj_SAP('AddTransaction','SCRAP_IN':@RM:WorkOrderNo:@RM:CassNo:@RM:TransQty)
If TransQty LT 0 then
// Log negative SAP scrap transaction to capture metrics to submit for SAP change request
LogData = ''
LogData<1> = LoggingDTM
LogData<2> = @User4
LogData<3> = Name
LogData<4> = SAPBatchNo
LogData<5> = TransQty
Logging_Services('AppendLog', objSAPLog, LogData, @RM, @FM)
end
end
end
end
// If NCR created after cassette has received a batch number, then inform SAP of new quantities
SAPBatchNo = Xlate('WO_MAT', WOMatKey, 'SAP_BATCH_NO', 'X')
IF SAPBatchNo NE '' THEN
IF (ReactorType = 'EPP') OR (ReactorType = 'EpiPro') THEN
WMOutKey = Xlate('WO_MAT', WOMatKey, 'WMO_KEY', 'X')
CassStatus = Xlate('WM_OUT', WMOutKey, 'CURR_STATUS', 'X')
END ELSE
// Non-EpiPro
RDSNo = Xlate('WO_MAT', WoMatKey, 'RDS_NO', 'X')
CassStatus = Xlate('RDS', RDSNo, 'CURR_STATUS', 'X')
END
// Add SAP transaction
IF OrigRecord = '' THEN
TransQty = NewQty
END ELSE
TransQty = NewQty - OrgQty
END
IF TransQty NE 0 THEN
obj_SAP('AddTransaction','SCRAP_IN':@RM:WorkOrderNo:@RM:CassNo:@RM:TransQty)
If TransQty LT 0 then
// Log negative SAP scrap transaction to capture metrics to submit for SAP change request
LogData = ''
LogData<1> = LoggingDTM
LogData<2> = @User4
LogData<3> = Name
LogData<4> = SAPBatchNo
LogData<5> = TransQty
Logging_Services('AppendLog', objSAPLog, LogData, @RM, @FM)
end
end
end
OrigStatus = OrigRecord<NCR_STATUS$>
NewStatus = Record<NCR_STATUS$>
@ -666,6 +664,7 @@ WRITE_RECORD:
end
end
end
return
DELETE_RECORD_PRE:
@ -746,11 +745,13 @@ DELETE_RECORD:
Pass_To_SQL('WRITE', 'RDS', RDSNo)
Next RDSNo
Service_Services('PostProcedure', 'WORK_ORDER_SERVICES', 'UpdateScrappedQty':SD$:WorkOrderNo)
OrgQty = Sum(obj_NCR('RejQty',NCRNo:@RM:OrigRecord))
NewQty = 0
AdjustQty = NewQty - OrgQty
Work_Order_Services('AdjustScrappedQty', WorkOrderNo, AdjustQty)
return
// ----- Internal Methods ----------------------------------------------------------------------------------------------