Added critical flag to PostProcedure service. Refactored other work order quantity calls to use PostProcedure.

This commit is contained in:
Infineon\StieberD 2025-04-01 13:18:08 -07:00 committed by Stieber Daniel (CSC FI SPS MESLEO)
parent 5c69abbbde
commit e5bfa43b09
5 changed files with 2439 additions and 2525 deletions

View File

@ -1,4 +1,4 @@
COMPILE FUNCTION obj_WM_Out(Method,Parms)
Compile Function obj_WM_Out(Method,Parms)
/*
Methods for WM_OUT table
@ -17,27 +17,28 @@ COMPILE FUNCTION obj_WM_Out(Method,Parms)
*/
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, NextKey, obj_WO_Verify, obj_Prod_Spec, Send_Dyn, obj_RDS_Makeup
DECLARE FUNCTION obj_RDS2, obj_WM_Out, Delete, Signature_Services, Environment_Services, Logging_Services
DECLARE FUNCTION Database_Services
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, obj_WO_Step, obj_RDS_Layer, obj_RDS_Test, Btree.Extract
DECLARE SUBROUTINE Extract_SI_Keys, obj_WM_Out, obj_WO_Mat, obj_Post_Log, obj_WO_Mat_Log, ErrMsg, obj_WO_Wfr
DECLARE SUBROUTINE Logging_Services, Material_Services, Database_Services, Update_Index, Work_Order_Services
Declare Function Get_Status, Msg, Utility, obj_Tables, NextKey, obj_WO_Verify, obj_Prod_Spec, Send_Dyn, obj_RDS_Makeup
Declare Function obj_RDS2, obj_WM_Out, Delete, Signature_Services, Environment_Services, Logging_Services
Declare Function Database_Services
Declare Subroutine Set_Status, Msg, obj_Tables, Send_Dyn, obj_WO_Step, obj_RDS_Layer, obj_RDS_Test, Btree.Extract
Declare Subroutine Extract_SI_Keys, obj_WM_Out, obj_WO_Mat, obj_Post_Log, obj_WO_Mat_Log, ErrMsg, obj_WO_Wfr
Declare Subroutine Logging_Services, Material_Services, Database_Services, Update_Index, Work_Order_Services
Declare Subroutine Service_Services
$INSERT MSG_EQUATES
$INSERT APP_INSERTS
$INSERT WO_LOG_EQU
$INSERT WO_STEP_EQU
$INSERT WO_MAT_EQUATES
$INSERT EPI_SUSCEPTOR_EQUATES
$INSERT RDS_EQUATES
$INSERT WM_OUT_EQUATES
$INSERT PROD_SPEC_EQUATES
$INSERT QUOTE_SPEC_EQU
$INSERT SURFACE_SCAN_EQUATES
$INSERT CLEAN_INSP_EQUATES
$INSERT WMO_WFRS_EQUATES
$INSERT REACT_RUN_EQUATES
$Insert MSG_EQUATES
$Insert APP_INSERTS
$Insert WO_LOG_EQU
$Insert WO_STEP_EQU
$Insert WO_MAT_EQUATES
$Insert EPI_SUSCEPTOR_EQUATES
$Insert RDS_EQUATES
$Insert WM_OUT_EQUATES
$Insert PROD_SPEC_EQUATES
$Insert QUOTE_SPEC_EQU
$Insert SURFACE_SCAN_EQUATES
$Insert CLEAN_INSP_EQUATES
$Insert WMO_WFRS_EQUATES
$Insert REACT_RUN_EQUATES
ErrTitle = 'Error in Stored Procedure "obj_WM_Out"'
ErrorMsg = ''
@ -131,8 +132,6 @@ Create:
SubPostClean = SubstrateSpec<1,QSSubPostClean$> ;***************************************************************************************
*PSType = SubstrateSpec<1,QSSubSpecType$> ;* Deprecated 8/22/2012 JCH
PSType = XLATE('PROD_SPEC',PSNo,'SPEC_TYPE','X') ;* Added 8/22/2012 JCH
IF CassLoadQty = '' THEN
@ -157,7 +156,6 @@ Create:
END
END
WORec = XLATE('WO_LOG',WONo,'','X')
InboundWaferQty = 0
@ -385,8 +383,6 @@ CurrStatus:
NEXT I
IF NCRCount = SlotCount AND FillCount = 0 AND WMOutRec<WM_OUT_MAKEUP_BOX$> NE 1 THEN
*Result = 'REJ'
*RETURN
RejectFlag = 1
END ELSE
RejectFlag = 0
@ -399,10 +395,6 @@ CurrStatus:
Signatures = SigArray<2>
SigDtms = SigArray<3>
* SigProfile = WOMatRec<WO_MAT_SIG_PROFILE$>
* Signatures = WOMatRec<WO_MAT_SIGNATURE$>
* SigDtms = WOMatRec<WO_MAT_SIG_DTM$>
ProfCnt = COUNT(SigProfile,@VM) + (SigProfile NE '')
* Section new on 12/8/2011 JCH
@ -513,21 +505,6 @@ CurrStatus:
RETURN
END
* StaticCurrStatus = WMOutRec<WM_OUT_CURR_STATUS_STATIC$>
*
* If Result NE StaticCurrStatus then
* // Log the discrepancy
* LogData = ''
* LogData<1> = LoggingDTM
* LogData<2> = @User4
* LogData<3> = WMOutKey
* LogData<4> = Result
* LogData<5> = StaticCurrStatus
* Logging_Services('AppendLog', objCurrStatusLog, LogData, @RM, @FM)
* Material_Services('PostWMOutUpdateRequest', WMOutKey)
* end
RETURN
@ -652,7 +629,6 @@ NextOpenSlots:
RETURN
* * * * * * *
SlotStatus:
* * * * * * *
@ -744,7 +720,6 @@ AddWafer:
MUCassIDs = Parms[COL2()+1,@RM]
MUSlots = Parms[COL2()+1,@RM]
IF WONo = '' THEN ErrorMsg = 'Null Parameter "WONo" passed to routine. (':Method:')'
IF WOStep = '' THEN ErrorMsg = 'Null Parameter "WOStep" passed to routine. (':Method:')'
IF CassNo = '' THEN ErrorMsg = 'Null Parameter "CassNo" passed to routine. (':Method:')'
@ -758,7 +733,6 @@ AddWafer:
IF ErrorMsg NE '' THEN RETURN
otParms = 'WM_OUT':@RM:WONo:'*':WOStep:'*':CassNo
* WMOutRec = obj_Tables('ReadRec',otParms)
WMOutRec = Database_Services('ReadDataRow', 'WM_OUT', WONo:'*':WOStep:'*':CassNo)
IF Get_Status(errCode) THEN RETURN
@ -780,17 +754,14 @@ AddWafer:
obj_Post_Log('Create','WO_MAT':@RM:WONo:'*':CassNo:@RM:WO_MAT_WMO_LOAD_DTM$:@RM:ICONV(CurrDTM,'DT'))
END
LastSlotNo = WMOutRec<WM_OUT_SLOT_NO$>[-1,'B':@VM]
LastSlot = 0
LastRDSNo = ''
LastReactNo = ''
WfrIDs = ''
NewSlotIDs = ''
FOR I = 1 TO SlotCnt
SlotNo = SlotNos<1,I>
@ -835,42 +806,13 @@ AddWafer:
Parms := '':@RM ;* CurrInvLoc
Parms := 'O' ;* Wfr Side
obj_WO_Wfr('AddEvent',Parms)
END
NEXT I
/*
IF NewSlotIDs NE '' THEN
* * * * Added 9/7/2016 JCH - wafer history * * * *
Parms = WfrIDs:@RM ;* WfrID
Parms := CurrDTM:@RM ;* EventDtm
Parms := @USER4:@RM ;* EventBy
Parms := 'UNLOAD':@RM ;* Event
Parms := NewSlotIDs:@RM ;* NewSlotID
Parms := '':@RM ;* RunLoc
Parms := '':@RM ;* NCRNo
Parms := '':@RM ;* TWUse
Parms := '':@RM ;* CurrSlotID
Parms := '':@RM ;* NewToolID (Load Tool)
Parms := 'R':ReactNo:@RM ;* CurrToolID (Unload Tool)
Parms := '':@RM ;* NewInvLoc
Parms := '':@RM ;* CurrInvLoc
Parms := 'O' ;* Wfr Side
obj_WO_Wfr('AddEvent',Parms)
END
*/
otParms = FieldStore(otParms,@RM,4,0,WMOutRec) ;* Put record in 4th field of OtParms
* obj_Tables('WriteRec',otParms)
Database_Services('WriteDataRow', 'WM_OUT', WONo:'*':WOStep:'*':CassNo, WMOutRec, True$, False$, True$)
If Error_Services('NoError') then
@ -929,8 +871,6 @@ RemoveWafer:
WMOKey = WONo:'*':WOStep:'*':CassNo
* otParms = 'WM_OUT':@RM:WONo:'*':WOStep:'*':CassNo
* WMOutRec = obj_Tables('ReadRec',otParms)
WMOutRec = Database_Services('ReadDataRow', 'WM_OUT', WMOKey)
IF Get_Status(errCode) THEN RETURN ;* Added 2/24/2009 JCH
@ -946,8 +886,6 @@ RemoveWafer:
END
NEXT I
* otParms = FieldStore(otParms,@RM,4,0,WMOutRec) ;* Put record in 4th field of OtParms
* obj_Tables('WriteRec',otParms)
Database_Services('WriteDataRow', 'WM_OUT', WMOkey, WMOutRec, True$, False$, True$)
RETURN
@ -995,7 +933,7 @@ AddShip:
// Update work order SHIP_QTY_STATIC
WONo = Field(WMOutKey, '*', 1)
Work_Order_Services('UpdateShippedQty', WONo)
Service_Services('PostProcedure', 'WORK_ORDER_SERVICES', 'UpdateShippedQty':@VM:WONo, False$)
RETURN
@ -1230,6 +1168,7 @@ AddMakeupWafers:
RETURN
* * * * * * *
SubMakeupWafers:
* * * * * * *
@ -1325,6 +1264,7 @@ SubMakeupWafers:
RETURN
* * * * * * *
RemMakeupWafers:
* * * * * * *
@ -1585,6 +1525,7 @@ CassRDSWfrCnts:
RETURN
* * * * * * *
GetPartNoQtys:
* * * * * * *
@ -1914,6 +1855,7 @@ EpiReactNo:
RETURN Result
* * * * * * *
ConvertCleanInsp:
* * * * * * *
@ -2010,6 +1952,3 @@ ConvertCleanInsp:
RETURN

File diff suppressed because it is too large Load Diff

View File

@ -39,7 +39,7 @@ Common /ServiceServices/ Unused1@, Unused2@, Unused3@, Unused4@, Unused5@, Unuse
Declare function Service_Services, Memory_Services, SRP_List, SRP_FastArray, SRP_Array, Database_Services, Datetime
Declare Function GetTickCount, SRP_Decode, RTI_CREATEGUID
Declare subroutine Service_Services, Memory_Services, SRP_List, SRP_FastArray, RList, Set_Status, Database_Services
Declare Subroutine Yield, WinYield, Sleepery
Declare Subroutine Yield, WinYield, Sleepery, Btree.Extract
GoToService else
Error_Services('Add', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
@ -212,16 +212,41 @@ Service ProcessProcedureQueue()
end service
Service PostProcedure(ProcedureName, Params)
Service PostProcedure(ProcedureName, Params, Critical=BOOLEAN)
Response = ''
If Critical EQ '' then Critical = True$
PostToQueue = True$
If (ProcedureName NE '') then
If (Params NE '') then
If Not(Critical) then
// Check if there is already a matching request in the queue before posting another one.
Query = 'PROC_NAME':@VM:ProcedureName:@FM
Query := 'PARAMS':@VM:Params:@FM
Open 'DICT.PROC_QUEUE' to hDict then
Keys = ''
Option = 'E'
Flag = ''
Btree.Extract(Query, 'PROC_QUEUE', hDict, Keys, Option, Flag)
If Flag EQ 0 then
If Keys NE '' then PostToQueue = False$
end else
Error_Services('Add', 'Error in ':Service:' service. Error calling Btree.Extract.')
end
end else
Error_Services('Add', 'Error in ':Service:' service. Error opening DICT.PROC_QUEUE.')
end
end
If PostToQueue then
RequestKeyID = RTI_CreateGUID()
RequestRow = ''
RequestRow<PROC_QUEUE.PROC_NAME$> = ProcedureName
RequestRow<PROC_QUEUE.PARAMS$> = Params
RequestRow<PROC_QUEUE.ENTRY_DTM$> = Datetime()
Database_Services('WriteDataRow', 'PROC_QUEUE', RequestKeyID, RequestRow, True$, False$, False$)
end
end else
Error_Services('Add', 'Error in ':Service:' service. Null Params passed in.')
end
end else
Error_Services('Add', 'Error in ':Service:' service. Null ProcedureName passed in.')
end
@ -233,4 +258,3 @@ return
/// Internal GoSubs
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -703,7 +703,7 @@ Service ReleaseCassettes(WONo)
end
end
Service_Services('PostProcedure', 'WORK_ORDER_SERVICES', 'UpdateReleasedQty':@VM:WONo)
Service_Services('PostProcedure', 'WORK_ORDER_SERVICES', 'UpdateReleasedQty':@VM:WONo, False$)
If ErrorMsg NE '' then Error_Services('Add', ErrorMsg)
Response = DCount(UnReleasedCassNos, @VM)
@ -1461,3 +1461,4 @@ ClearCursors:
return

View File

@ -817,8 +817,8 @@ WRITE_RECORD:
end
If OrigRecord<WO_MAT_WAFER_QTY$> NE Record<WO_MAT_WAFER_QTY$> then
Service_Services('PostProcedure', 'WORK_ORDER_SERVICES', 'UpdateReceivedQty':@VM:WONo)
Service_Services('PostProcedure', 'WORK_ORDER_SERVICES', 'UpdateReleasedQty':@VM:WONo)
Service_Services('PostProcedure', 'WORK_ORDER_SERVICES', 'UpdateReceivedQty':@VM:WONo, False$)
Service_Services('PostProcedure', 'WORK_ORDER_SERVICES', 'UpdateReleasedQty':@VM:WONo, False$)
end
CurrWaferCount = obj_WO_Mat('CurrWaferCnt', WOMatKeyID)
@ -841,6 +841,7 @@ return
// ----- Internal Methods ----------------------------------------------------------------------------------------------
Initialize_System_Variables:
// Save these for restoration later
SaveDict = @DICT
SaveID = @ID
@ -874,13 +875,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