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:
@ -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 ----------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user