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 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 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 obj_RDS2, obj_WM_Out, Delete, Signature_Services, Environment_Services, Logging_Services
DECLARE FUNCTION Database_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 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 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 Logging_Services, Material_Services, Database_Services, Update_Index, Work_Order_Services
Declare Subroutine Service_Services
$INSERT MSG_EQUATES $Insert MSG_EQUATES
$INSERT APP_INSERTS $Insert APP_INSERTS
$INSERT WO_LOG_EQU $Insert WO_LOG_EQU
$INSERT WO_STEP_EQU $Insert WO_STEP_EQU
$INSERT WO_MAT_EQUATES $Insert WO_MAT_EQUATES
$INSERT EPI_SUSCEPTOR_EQUATES $Insert EPI_SUSCEPTOR_EQUATES
$INSERT RDS_EQUATES $Insert RDS_EQUATES
$INSERT WM_OUT_EQUATES $Insert WM_OUT_EQUATES
$INSERT PROD_SPEC_EQUATES $Insert PROD_SPEC_EQUATES
$INSERT QUOTE_SPEC_EQU $Insert QUOTE_SPEC_EQU
$INSERT SURFACE_SCAN_EQUATES $Insert SURFACE_SCAN_EQUATES
$INSERT CLEAN_INSP_EQUATES $Insert CLEAN_INSP_EQUATES
$INSERT WMO_WFRS_EQUATES $Insert WMO_WFRS_EQUATES
$INSERT REACT_RUN_EQUATES $Insert REACT_RUN_EQUATES
ErrTitle = 'Error in Stored Procedure "obj_WM_Out"' ErrTitle = 'Error in Stored Procedure "obj_WM_Out"'
ErrorMsg = '' ErrorMsg = ''
@ -131,8 +132,6 @@ Create:
SubPostClean = SubstrateSpec<1,QSSubPostClean$> ;*************************************************************************************** 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 PSType = XLATE('PROD_SPEC',PSNo,'SPEC_TYPE','X') ;* Added 8/22/2012 JCH
IF CassLoadQty = '' THEN IF CassLoadQty = '' THEN
@ -157,7 +156,6 @@ Create:
END END
END END
WORec = XLATE('WO_LOG',WONo,'','X') WORec = XLATE('WO_LOG',WONo,'','X')
InboundWaferQty = 0 InboundWaferQty = 0
@ -385,8 +383,6 @@ CurrStatus:
NEXT I NEXT I
IF NCRCount = SlotCount AND FillCount = 0 AND WMOutRec<WM_OUT_MAKEUP_BOX$> NE 1 THEN IF NCRCount = SlotCount AND FillCount = 0 AND WMOutRec<WM_OUT_MAKEUP_BOX$> NE 1 THEN
*Result = 'REJ'
*RETURN
RejectFlag = 1 RejectFlag = 1
END ELSE END ELSE
RejectFlag = 0 RejectFlag = 0
@ -399,10 +395,6 @@ CurrStatus:
Signatures = SigArray<2> Signatures = SigArray<2>
SigDtms = SigArray<3> 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 '') ProfCnt = COUNT(SigProfile,@VM) + (SigProfile NE '')
* Section new on 12/8/2011 JCH * Section new on 12/8/2011 JCH
@ -513,21 +505,6 @@ CurrStatus:
RETURN RETURN
END 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 RETURN
@ -652,7 +629,6 @@ NextOpenSlots:
RETURN RETURN
* * * * * * * * * * * * * *
SlotStatus: SlotStatus:
* * * * * * * * * * * * * *
@ -744,7 +720,6 @@ AddWafer:
MUCassIDs = Parms[COL2()+1,@RM] MUCassIDs = Parms[COL2()+1,@RM]
MUSlots = Parms[COL2()+1,@RM] MUSlots = Parms[COL2()+1,@RM]
IF WONo = '' THEN ErrorMsg = 'Null Parameter "WONo" passed to routine. (':Method:')' IF WONo = '' THEN ErrorMsg = 'Null Parameter "WONo" passed to routine. (':Method:')'
IF WOStep = '' THEN ErrorMsg = 'Null Parameter "WOStep" 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:')' IF CassNo = '' THEN ErrorMsg = 'Null Parameter "CassNo" passed to routine. (':Method:')'
@ -758,7 +733,6 @@ AddWafer:
IF ErrorMsg NE '' THEN RETURN IF ErrorMsg NE '' THEN RETURN
otParms = 'WM_OUT':@RM:WONo:'*':WOStep:'*':CassNo otParms = 'WM_OUT':@RM:WONo:'*':WOStep:'*':CassNo
* WMOutRec = obj_Tables('ReadRec',otParms)
WMOutRec = Database_Services('ReadDataRow', 'WM_OUT', WONo:'*':WOStep:'*':CassNo) WMOutRec = Database_Services('ReadDataRow', 'WM_OUT', WONo:'*':WOStep:'*':CassNo)
IF Get_Status(errCode) THEN RETURN 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')) obj_Post_Log('Create','WO_MAT':@RM:WONo:'*':CassNo:@RM:WO_MAT_WMO_LOAD_DTM$:@RM:ICONV(CurrDTM,'DT'))
END END
LastSlotNo = WMOutRec<WM_OUT_SLOT_NO$>[-1,'B':@VM] LastSlotNo = WMOutRec<WM_OUT_SLOT_NO$>[-1,'B':@VM]
LastSlot = 0 LastSlot = 0
LastRDSNo = '' LastRDSNo = ''
LastReactNo = '' LastReactNo = ''
WfrIDs = '' WfrIDs = ''
NewSlotIDs = '' NewSlotIDs = ''
FOR I = 1 TO SlotCnt FOR I = 1 TO SlotCnt
SlotNo = SlotNos<1,I> SlotNo = SlotNos<1,I>
@ -835,42 +806,13 @@ AddWafer:
Parms := '':@RM ;* CurrInvLoc Parms := '':@RM ;* CurrInvLoc
Parms := 'O' ;* Wfr Side Parms := 'O' ;* Wfr Side
obj_WO_Wfr('AddEvent',Parms) obj_WO_Wfr('AddEvent',Parms)
END END
NEXT I 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 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$) Database_Services('WriteDataRow', 'WM_OUT', WONo:'*':WOStep:'*':CassNo, WMOutRec, True$, False$, True$)
If Error_Services('NoError') then If Error_Services('NoError') then
@ -929,8 +871,6 @@ RemoveWafer:
WMOKey = WONo:'*':WOStep:'*':CassNo WMOKey = WONo:'*':WOStep:'*':CassNo
* otParms = 'WM_OUT':@RM:WONo:'*':WOStep:'*':CassNo
* WMOutRec = obj_Tables('ReadRec',otParms)
WMOutRec = Database_Services('ReadDataRow', 'WM_OUT', WMOKey) WMOutRec = Database_Services('ReadDataRow', 'WM_OUT', WMOKey)
IF Get_Status(errCode) THEN RETURN ;* Added 2/24/2009 JCH IF Get_Status(errCode) THEN RETURN ;* Added 2/24/2009 JCH
@ -946,8 +886,6 @@ RemoveWafer:
END END
NEXT I 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$) Database_Services('WriteDataRow', 'WM_OUT', WMOkey, WMOutRec, True$, False$, True$)
RETURN RETURN
@ -995,7 +933,7 @@ AddShip:
// Update work order SHIP_QTY_STATIC // Update work order SHIP_QTY_STATIC
WONo = Field(WMOutKey, '*', 1) WONo = Field(WMOutKey, '*', 1)
Work_Order_Services('UpdateShippedQty', WONo) Service_Services('PostProcedure', 'WORK_ORDER_SERVICES', 'UpdateShippedQty':@VM:WONo, False$)
RETURN RETURN
@ -1230,6 +1168,7 @@ AddMakeupWafers:
RETURN RETURN
* * * * * * * * * * * * * *
SubMakeupWafers: SubMakeupWafers:
* * * * * * * * * * * * * *
@ -1325,6 +1264,7 @@ SubMakeupWafers:
RETURN RETURN
* * * * * * * * * * * * * *
RemMakeupWafers: RemMakeupWafers:
* * * * * * * * * * * * * *
@ -1585,6 +1525,7 @@ CassRDSWfrCnts:
RETURN RETURN
* * * * * * * * * * * * * *
GetPartNoQtys: GetPartNoQtys:
* * * * * * * * * * * * * *
@ -1914,6 +1855,7 @@ EpiReactNo:
RETURN Result RETURN Result
* * * * * * * * * * * * * *
ConvertCleanInsp: ConvertCleanInsp:
* * * * * * * * * * * * * *
@ -2010,6 +1952,3 @@ ConvertCleanInsp:
RETURN 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 Service_Services, Memory_Services, SRP_List, SRP_FastArray, SRP_Array, Database_Services, Datetime
Declare Function GetTickCount, SRP_Decode, RTI_CREATEGUID Declare Function GetTickCount, SRP_Decode, RTI_CREATEGUID
Declare subroutine Service_Services, Memory_Services, SRP_List, SRP_FastArray, RList, Set_Status, Database_Services 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 GoToService else
Error_Services('Add', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.') Error_Services('Add', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
@ -212,16 +212,41 @@ Service ProcessProcedureQueue()
end service 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 (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() RequestKeyID = RTI_CreateGUID()
RequestRow = '' RequestRow = ''
RequestRow<PROC_QUEUE.PROC_NAME$> = ProcedureName RequestRow<PROC_QUEUE.PROC_NAME$> = ProcedureName
RequestRow<PROC_QUEUE.PARAMS$> = Params RequestRow<PROC_QUEUE.PARAMS$> = Params
RequestRow<PROC_QUEUE.ENTRY_DTM$> = Datetime() RequestRow<PROC_QUEUE.ENTRY_DTM$> = Datetime()
Database_Services('WriteDataRow', 'PROC_QUEUE', RequestKeyID, RequestRow, True$, False$, False$) 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 end else
Error_Services('Add', 'Error in ':Service:' service. Null ProcedureName passed in.') Error_Services('Add', 'Error in ':Service:' service. Null ProcedureName passed in.')
end end
@ -233,4 +258,3 @@ return
/// Internal GoSubs /// Internal GoSubs
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -703,7 +703,7 @@ Service ReleaseCassettes(WONo)
end end
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) If ErrorMsg NE '' then Error_Services('Add', ErrorMsg)
Response = DCount(UnReleasedCassNos, @VM) Response = DCount(UnReleasedCassNos, @VM)
@ -1461,3 +1461,4 @@ ClearCursors:
return return

View File

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