moved costly calls to the backend procedure queue to speedup sap transaction processing and releasing material

This commit is contained in:
Infineon\StieberD 2025-03-31 13:44:03 -07:00
parent 58c800b504
commit 59c07b1a8b
5 changed files with 33 additions and 1703 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
LSL2/STPROC/TEST_DANIEL*.txt
LSL2/STPROC/TEST_DAKOTA.txt
LSL2/STPROC/JONATHAN_SERVICES.txt

File diff suppressed because it is too large Load Diff

View File

@ -65,8 +65,7 @@ Equ COMMA$ to ','
Declare function Error_Services, Database_Services, obj_RDS_Test, Logging_Services, Environment_Services
Declare function Tool_Parms_Services, Signature_Services, obj_WO_Mat_QA, Datetime, Override_Services
Declare function Rds_Services, SRP_DateTime, SRP_Math, obj_WO_Mat, Lot_Services, SRP_Array
Declare subroutine Error_Services, Database_Services, Logging_Services, Set_Status, Schedule_Services
Declare subroutine Work_Order_Services, Material_Services, Set_FSError
Declare subroutine Error_Services, Database_Services, Logging_Services, Service_Services
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\RDS'
LogDate = Oconv(Date(), 'D4/')
@ -577,6 +576,7 @@ READ_RECORD:
return
READONLY_RECORD_PRE:
// In order to stop a record from being read in this action these lines of code must be used:
//
@ -586,6 +586,7 @@ READONLY_RECORD_PRE:
// ActionFlow = ACTION_STOP$
return
READONLY_RECORD:
// In order to stop a record from being read in this action these lines of code must be used:
//
@ -848,6 +849,7 @@ WRITE_RECORD_PRE:
return
WRITE_RECORD:
WONo = Record<RDS_WO$>
@ -953,16 +955,17 @@ WRITE_RECORD:
WMIKeys = {WM_IN_KEY}
For each WMIKey in WMIKeys using @VM setting vPos
CassNo = Field(WMIKey, '*', 3)
Schedule_Services('MarkCassProcessed', WONo, CassNo, DatetimeOut)
Service_Services('PostProcedure', 'SCHEDULE_SERVICES':@VM:'MarkCassProcessed':@VM:WONo:@VM:CassNo:@VM:DatetimeOut)
Next WMIKey
end else
CassNo = Record<RDS_CASS_NO$>
Schedule_Services('MarkCassProcessed', WONo, CassNo, DatetimeOut)
Service_Services('PostProcedure', 'SCHEDULE_SERVICES':@VM:'MarkCassProcessed':@VM:WONo:@VM:CassNo:@VM:DatetimeOut)
end
end
return
DELETE_RECORD_PRE:
Notes = RetStack()
@ -976,11 +979,11 @@ DELETE_RECORD_PRE:
return
DELETE_RECORD:
return
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Internal GoSubs
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -1040,4 +1043,3 @@ Restore_System_Variables:
return

View File

@ -59,7 +59,7 @@ Equ Comma$ to ','
Declare function Database_Services, obj_NCR, obj_SAP, Environment_Services, Logging_Services, Datetime
Declare subroutine Error_Services, Database_Services, obj_NCR, obj_SAP, Material_Services, Work_Order_Services
Declare subroutine Logging_Services, obj_Notes, Schedule_Services
Declare subroutine Logging_Services, obj_Notes, Service_Services
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\WM_IN'
LogDate = Oconv(Date(), 'D4/')
@ -123,17 +123,17 @@ READ_RECORD_PRE:
// ActionFlow = ACTION_STOP$
return
READ_RECORD:
// In order to stop a record from being read in this action these lines of code must be used:
//
// OrigFileError = 100 : @FM : KeyID
// Status = 0
// Record = ''
* LockOwner = Record<WM_IN_LOCKED_BY$>
* If LockOwner EQ '' then Record<WM_IN_LOCKED_BY$> = @User4
return
READONLY_RECORD_PRE:
// In order to stop a record from being read in this action these lines of code must be used:
//
@ -143,6 +143,7 @@ READONLY_RECORD_PRE:
// ActionFlow = ACTION_STOP$
return
READONLY_RECORD:
// In order to stop a record from being read in this action these lines of code must be used:
//
@ -151,9 +152,11 @@ READONLY_RECORD:
// Record = ''
return
WRITE_RECORD_PRE:
return
WRITE_RECORD:
// Look for schedule events that may need to be updated.
@ -161,7 +164,7 @@ WRITE_RECORD:
CassNo = Field(Name, '*', 3)
ProcessedDTM = Datetime()
// This service will determine if the cassette needs to be marked as complete.
Schedule_Services('MarkCassProcessed', WONo, CassNo, ProcessedDtm)
Service_Services('PostProcedure', 'SCHEDULE_SERVICES', 'MarkCassProcessed':@VM:WONo:@VM:CassNo:@VM:ProcessedDtm)
WfrCount = DCount(Record<WM_IN_SLOT_NO$>, @VM)
If WfrCount LT 25 then
@ -179,34 +182,12 @@ WRITE_RECORD:
return
DELETE_RECORD_PRE:
// Log which user and computer station attempted to delete the record
* LogData = ''
* LogData<1> = LoggingDTM
* LogData<2> = Name
* LogData<3> = @User4
* Logging_Services('AppendLog', objDeleteLog, LogData, @RM, @FM)
*
* // Send an LSL message to FI admins to alert them
* Recipients = Xlate('SEC_GROUPS', 'OI_ADMIN', 'USER', 'X')
* SentFrom = 'SYSTEM'
* Subject = 'WM_IN Delete Attempt'
* Message = 'An attempt to delete WM_IN record ':Name:' was made by ':@User4:'.'
* AttachWindow = ''
* AttachKey = ''
* SendToGroup = ''
*
* Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup
* obj_Notes('Create',Parms)
// Stop the system from deleting the record
* ActionFlow = ACTION_STOP$
return
DELETE_RECORD:
DELETE_RECORD:
return
@ -218,6 +199,7 @@ ClearCursors:
Next counter
return
Initialize_System_Variables:
// Save these for restoration later
SaveDict = @DICT
@ -252,12 +234,16 @@ Initialize_System_Variables:
end
end
@RECORD = Record
return
Restore_System_Variables:
Transfer SaveDict to @DICT
Transfer SaveID to @ID
Transfer SaveRecord to @RECORD
@FILE.ERROR = OrigFileError
return

View File

@ -58,7 +58,7 @@ Equ Comma$ to ','
Declare function Error_Services, Database_Services, Environment_Services, Logging_Services, obj_WO_Mat, Max
Declare function GaN_Services, Signature_Services, obj_WO_LOG, SRP_Array, MemberOf, Datetime
Declare subroutine Error_Services, Database_Services, Environment_Services, Logging_Services, Obj_SAP, obj_Notes
Declare subroutine SAP_Services, Work_Order_Services, Material_Services, RList, Schedule_Services
Declare subroutine SAP_Services, Material_Services, RList, Service_Services
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\WO_Mat'
LogDate = Oconv(Date(), 'D4/')
@ -244,6 +244,7 @@ READ_RECORD:
// Record = ''
return
READONLY_RECORD_PRE:
// In order to stop a record from being read in this action these lines of code must be used:
//
@ -253,6 +254,7 @@ READONLY_RECORD_PRE:
// ActionFlow = ACTION_STOP$
return
READONLY_RECORD:
// In order to stop a record from being read in this action these lines of code must be used:
//
@ -261,6 +263,7 @@ READONLY_RECORD:
// Record = ''
return
WRITE_RECORD_PRE:
WOMatKeyID = Name
@ -814,21 +817,23 @@ WRITE_RECORD:
end
If OrigRecord<WO_MAT_WAFER_QTY$> NE Record<WO_MAT_WAFER_QTY$> then
Work_Order_Services('UpdateReceivedQty', WONo)
Work_Order_Services('UpdateReleasedQty', WONo)
Service_Services('PostProcedure', 'WORK_ORDER_SERVICES', 'UpdateReceivedQty':@VM:WONo)
Service_Services('PostProcedure', 'WORK_ORDER_SERVICES', 'UpdateReleasedQty':@VM:WONo)
end
CurrWaferCount = obj_WO_Mat('CurrWaferCnt', WOMatKeyID)
If CurrWaferCount EQ 0 then
// This should catch cases where the entire cassette is "peeled off", NCR'ed, or used for destructive testing.
Schedule_Services('MarkCassProcessed', WONo, CassNo, Datetime())
Service_Services('PostProcedure', 'SCHEDULE_SERVICES', 'MarkCassProcessed':@VM:WONo:@VM:CassNo:@VM:Datetime())
end
return
DELETE_RECORD_PRE:
return
DELETE_RECORD:
return
@ -878,3 +883,4 @@ Restore_System_Variables:
@FILE.ERROR = OrigFileError
return