Added critical flag to PostProcedure service. Refactored other work order quantity calls to use PostProcedure.
This commit is contained in:
parent
5c69abbbde
commit
e5bfa43b09
@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
COMPILE FUNCTION obj_WO_Mat(Method,Parms)
|
||||
Compile Function obj_WO_Mat(Method,Parms)
|
||||
/*
|
||||
Methods for the Work Order Material (WO_MAT) table
|
||||
|
||||
@ -25,49 +25,48 @@ COMPILE FUNCTION obj_WO_Mat(Method,Parms)
|
||||
*/
|
||||
#pragma precomp SRP_PreCompiler
|
||||
|
||||
Declare Function Get_Status, Msg, Utility, obj_Tables, Dialog_Box,NextKey, Popup, Get_Property, obj_RDS, RetStack
|
||||
Declare Function Database_Services, GaN_Services, Logging_Services, Environment_Services, Signature_Services
|
||||
Declare Function obj_WO_Mat, obj_WM_In, obj_WM_Out, obj_Prod_Spec, obj_Clean_Insp, obj_Calendar, obj_Popup
|
||||
Declare Function Error_Services, Memberof, Datetime
|
||||
Declare Subroutine Set_Status, Msg, obj_Tables, Send_Dyn, Btree.Extract, ErrMsg, Send_Dyn, RList, obj_WO_Log, Send_Event
|
||||
Declare Subroutine obj_RDS, Extract_SI_Keys, obj_Pend_Ship_Labels, obj_WO_Mat_QA, Work_Order_Services, Service_Services
|
||||
Declare Subroutine obj_notes, obj_Clean_Insp, obj_Post_Log, Send_Info, obj_WO_Mat_Log, obj_SAP, obj_WO_Mat, obj_WO_Wfr
|
||||
Declare Subroutine Logging_Services, Set_Property, Delete, Database_Services, SRP_Stopwatch, Material_Services
|
||||
|
||||
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Dialog_Box,NextKey, Popup, Get_Property, obj_RDS, RetStack
|
||||
DECLARE FUNCTION Database_Services, GaN_Services, Logging_Services, Environment_Services, Signature_Services
|
||||
DECLARE FUNCTION obj_WO_Mat, obj_WM_In, obj_WM_Out, obj_Prod_Spec, obj_Clean_Insp, obj_Calendar, obj_Popup
|
||||
DECLARE FUNCTION Error_Services, Memberof, Datetime
|
||||
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, Btree.Extract, ErrMsg, Send_Dyn, RList, obj_WO_Log, Send_Event, obj_RDS, Extract_SI_Keys
|
||||
DECLARE SUBROUTINE obj_notes, obj_Clean_Insp, obj_Post_Log, Send_Info, obj_WO_Mat_Log, obj_SAP, obj_WO_Mat, obj_Pend_Ship_Labels, obj_WO_Mat_QA
|
||||
DECLARE SUBROUTINE obj_WO_Wfr, Logging_Services, Set_Property, Delete, Database_Services, SRP_Stopwatch
|
||||
DECLARE SUBROUTINE Material_Services, Work_Order_Services
|
||||
$Insert MSG_EQUATES
|
||||
$Insert WO_MAT_EQUATES
|
||||
$Insert WM_OUT_EQUATES
|
||||
$Insert WM_IN_EQUATES
|
||||
$Insert WO_STEP_EQU
|
||||
$Insert WO_LOG_EQUATES
|
||||
$Insert NOTIFICATION_EQU
|
||||
$Insert RDS_MAKEUP_EQU
|
||||
$Insert DICT_EQUATES
|
||||
$Insert REACT_RUN_EQUATES
|
||||
$Insert ORDER_EQU
|
||||
$Insert ORDER_DET_EQU
|
||||
$Insert RDS_EQU
|
||||
$Insert PROD_SPEC_EQUATES
|
||||
$Insert PRS_STAGE_EQUATES
|
||||
$Insert QUOTE_SPEC_EQU
|
||||
$Insert SAP_LOG_EQUATES
|
||||
$Insert CUST_EPI_PART_EQUATES
|
||||
$Insert EPI_PART_EQUATES
|
||||
$Insert PROD_VER_EQUATES
|
||||
$Insert COMPANY_EQUATES
|
||||
$Insert SEMI_VEND_CODE_EQUATES
|
||||
$Insert WO_MAT_QA_EQUATES
|
||||
$Insert QA_MET_EQUATES ;* Used for GetQAMet return data structure
|
||||
$Insert LOGICAL
|
||||
$Insert WO_MAT_WFR_EQUATES
|
||||
$Insert RUN_STAGE_EQUATES
|
||||
|
||||
$INSERT MSG_EQUATES
|
||||
$INSERT WO_MAT_EQUATES
|
||||
$INSERT WM_OUT_EQUATES
|
||||
$INSERT WM_IN_EQUATES
|
||||
$INSERT WO_STEP_EQU
|
||||
$INSERT WO_LOG_EQUATES
|
||||
$INSERT NOTIFICATION_EQU
|
||||
$INSERT RDS_MAKEUP_EQU
|
||||
$INSERT DICT_EQUATES
|
||||
$INSERT REACT_RUN_EQUATES
|
||||
$INSERT ORDER_EQU
|
||||
$INSERT ORDER_DET_EQU
|
||||
$INSERT RDS_EQU
|
||||
$INSERT PROD_SPEC_EQUATES
|
||||
$INSERT PRS_STAGE_EQUATES
|
||||
$INSERT QUOTE_SPEC_EQU
|
||||
$INSERT SAP_LOG_EQUATES
|
||||
$INSERT CUST_EPI_PART_EQUATES
|
||||
$INSERT EPI_PART_EQUATES
|
||||
$INSERT PROD_VER_EQUATES
|
||||
$INSERT COMPANY_EQUATES
|
||||
$INSERT SEMI_VEND_CODE_EQUATES
|
||||
$INSERT WO_MAT_QA_EQUATES
|
||||
$INSERT QA_MET_EQUATES ;* Used for GetQAMet return data structure
|
||||
$INSERT LOGICAL
|
||||
$INSERT WO_MAT_WFR_EQUATES
|
||||
$INSERT RUN_STAGE_EQUATES
|
||||
Equ TARGET_ACTIVELIST$ TO 5
|
||||
|
||||
EQU TARGET_ACTIVELIST$ TO 5
|
||||
|
||||
EQU CRLF$ TO \0D0A\
|
||||
EQU TAB$ TO \09\
|
||||
EQU Comma$ TO ','
|
||||
Equ CRLF$ TO \0D0A\
|
||||
Equ TAB$ TO \09\
|
||||
Equ Comma$ TO ','
|
||||
|
||||
errCode = ''
|
||||
|
||||
@ -129,19 +128,6 @@ IF ErrorMsg NE '' THEN
|
||||
RETURN ''
|
||||
END
|
||||
|
||||
/*
|
||||
TraceOn = XLATE('PROGRAM_TRACE',@STATION:'*FLAG','','X')
|
||||
IF TraceOn THEN
|
||||
OPEN 'PROGRAM_TRACE' TO PTFile THEN
|
||||
READ TraceLog FROM PTFile,@STATION:'*LOG' ELSE TraceLog = ''
|
||||
LogParms = Parms
|
||||
CONVERT @RM TO '/' IN LogParms
|
||||
TraceLog := @FM:"obj_WO_Mat('":Method:"',":LogParms
|
||||
WRITE TraceLog ON PTFile,@STATION:'*LOG' THEN NULL
|
||||
END
|
||||
END
|
||||
*/
|
||||
|
||||
Result = ''
|
||||
|
||||
BEGIN CASE
|
||||
@ -226,6 +212,7 @@ END
|
||||
|
||||
RETURN Result
|
||||
|
||||
|
||||
* * * * * * *
|
||||
GetWfrKeys:
|
||||
* * * * * * *
|
||||
@ -248,6 +235,7 @@ Result = CurrLocs
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
Create:
|
||||
* * * * * * *
|
||||
@ -419,13 +407,9 @@ CreateWMO:
|
||||
WONo = Parms[1,@RM]
|
||||
CassNo = Parms[COL2()+1,@RM]
|
||||
|
||||
|
||||
|
||||
|
||||
IF WONo = '' THEN ErrorMsg = 'Null parameter "WONo" passed to routine. (':Method:')'
|
||||
IF CassNo = '' THEN ErrorMsg = 'Null parameter "CassNo" passed to routine. (':Method:')'
|
||||
|
||||
|
||||
IF ErrorMsg NE '' THEN RETURN
|
||||
|
||||
WORec = XLATE('WO_LOG',WONo,'','X')
|
||||
@ -490,6 +474,7 @@ obj_Tables('WriteRec',OtParms)
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
Delete:
|
||||
* * * * * * *
|
||||
@ -583,6 +568,7 @@ END
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
LockSet:
|
||||
* * * * * * *
|
||||
@ -643,11 +629,11 @@ NEXT I
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
CurrStatus:
|
||||
* * * * * * *
|
||||
* If @User4 EQ 'DANIEL_ST' then SRP_Stopwatch('Reset')
|
||||
* If @User4 EQ 'DANIEL_ST' then SRP_Stopwatch('Start', 'Begin CurrStatus')
|
||||
|
||||
IF NOT(ASSIGNED(WOMatKey)) THEN WOMatKey = Parms[1,@RM]
|
||||
IF NOT(ASSIGNED(WOMatRec)) THEN WOMatRec = Parms[COL2()+1,@RM]
|
||||
|
||||
@ -655,8 +641,6 @@ IF WOMatKey = '' THEN RETURN ;* This is used in the dictionary -> don't throw
|
||||
|
||||
WONo = WOMatKey[1,'*']
|
||||
|
||||
|
||||
|
||||
IF WOMatRec = '' THEN WOMatRec = XLATE('WO_MAT',WOMatKey,'','X')
|
||||
|
||||
IF WOMatRec<WO_MAT_VOID$> THEN
|
||||
@ -711,7 +695,6 @@ END ELSE
|
||||
WMIStatus = ''
|
||||
END
|
||||
|
||||
|
||||
IF WMOKey NE '' THEN
|
||||
WMOStatus = WOMatRec<WO_MAT_WMO_CURR_STATUS$>
|
||||
IF WMOStatus = 'COMP' AND NOT(InCleanRoom) THEN
|
||||
@ -913,6 +896,7 @@ IF Result = 'RTS' AND WOMatRec<WO_MAT_SHIP_HOLD$> = 1 THEN Result = 'SHOLD'
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
OutofPTO:
|
||||
* * * * * * *
|
||||
@ -1172,58 +1156,9 @@ BEGIN CASE
|
||||
If LastEntryAction EQ InvAction AND LastEntryLocCd = LocCd then
|
||||
Done = True$
|
||||
end
|
||||
|
||||
* Begin Case
|
||||
* Case InvAction EQ '1QA'
|
||||
*
|
||||
* WOMatRecVerify = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey)
|
||||
* LastEntryIndex = DCount(WOMatRecVerify<WO_MAT_INV_WH$>, @VM)
|
||||
* LastEntryAction = WOMatRecVerify<WO_MAT_INV_ACTION$, LastEntryIndex>
|
||||
* If LastEntryAction EQ '1QA' then Done = True$
|
||||
* LogData = ''
|
||||
* LogData<1> = WOMatRecVerify<WO_MAT_INV_DTM$, LastEntryIndex>
|
||||
* LogData<2> = WONo
|
||||
* LogData<3> = CassNo
|
||||
* LogData<4> = WOMatRecVerify<WO_MAT_INV_USER$, LastEntryIndex>
|
||||
* LogData<5> = LastEntryIndex
|
||||
* LogData<6> = WOMatRecVerify<WO_MAT_INV_TAG$, LastEntryIndex>
|
||||
* LogData<7> = WOMatRecVerify<WO_MAT_INV_WH$, LastEntryIndex>
|
||||
* LogData<8> = WOMatRecVerify<WO_MAT_INV_LOCATION$, LastEntryIndex>
|
||||
* LogData<9> = LastEntryAction
|
||||
* LogData<10> = WOMatRecVerify<WO_MAT_INV_TOOL_ID$, LastEntryIndex>
|
||||
* LogData<11> = WOMatRecVerify<WO_MAT_INV_SCAN_ENTRY$, LastEntryIndex>
|
||||
* LogData<12> = NumAttempts
|
||||
* Logging_Services('AppendLog', WOMatObjLog3, LogData, @RM, @FM)
|
||||
*
|
||||
* Case InvAction EQ 'PLACE' and LocCd EQ 'PTI'
|
||||
*
|
||||
* WOMatRecVerify = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey)
|
||||
* LastEntryIndex = DCount(WOMatRecVerify<WO_MAT_INV_WH$>, @VM)
|
||||
* LastEntryAction = WOMatRecVerify<WO_MAT_INV_ACTION$, LastEntryIndex>
|
||||
* LastEntryLocCd = WOMatRecVerify<WO_MAT_INV_LOCATION$, LastEntryIndex>
|
||||
* If ( (LastEntryAction EQ 'PLACE') and (LastEntryLocCd EQ 'PTI') ) then Done = True$
|
||||
* LogData = ''
|
||||
* LogData<1> = WOMatRecVerify<WO_MAT_INV_DTM$, LastEntryIndex>
|
||||
* LogData<2> = WONo
|
||||
* LogData<3> = CassNo
|
||||
* LogData<4> = WOMatRecVerify<WO_MAT_INV_USER$, LastEntryIndex>
|
||||
* LogData<5> = LastEntryIndex
|
||||
* LogData<6> = WOMatRecVerify<WO_MAT_INV_TAG$, LastEntryIndex>
|
||||
* LogData<7> = WOMatRecVerify<WO_MAT_INV_WH$, LastEntryIndex>
|
||||
* LogData<8> = WOMatRecVerify<WO_MAT_INV_LOCATION$, LastEntryIndex>
|
||||
* LogData<9> = LastEntryAction
|
||||
* LogData<10> = WOMatRecVerify<WO_MAT_INV_TOOL_ID$, LastEntryIndex>
|
||||
* LogData<11> = WOMatRecVerify<WO_MAT_INV_SCAN_ENTRY$, LastEntryIndex>
|
||||
* LogData<12> = NumAttempts
|
||||
* Logging_Services('AppendLog', WOMatObjLog4, LogData, @RM, @FM)
|
||||
*
|
||||
* Case Otherwise$
|
||||
* Done = True$
|
||||
*
|
||||
* End Case
|
||||
|
||||
Until ( (Done EQ True$) or (NumAttempts EQ 10) )
|
||||
Repeat
|
||||
|
||||
LogData = ''
|
||||
LogData<1> = WOMatRecVerify<WO_MAT_INV_DTM$, LastEntryIndex>
|
||||
LogData<2> = WONo
|
||||
@ -1271,6 +1206,7 @@ END CASE
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
InvDelta:
|
||||
* * * * * * *
|
||||
@ -1879,7 +1815,6 @@ ChangeFlag:
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
WOMatRec<FieldNo> = Value ;* Set Flag field here
|
||||
|
||||
WMTableParms = FieldStore(WMTableParms,@RM,4,0,WOMatRec) ;* Put record in 4th field of OtParms
|
||||
@ -1942,12 +1877,14 @@ ChangeFlag:
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
AddNCR:
|
||||
* * * * * * *
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
RemNCR:
|
||||
* * * * * * *
|
||||
@ -2104,6 +2041,7 @@ SignNCR:
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
AddMakeupWafers:
|
||||
* * * * * * *
|
||||
@ -2251,7 +2189,6 @@ SubMakeupWafers:
|
||||
WOMatRec<WO_MAT_SLOT_REP_BY$,MadeupSlot> = '' ;* Added 10/06/2010 JCH *
|
||||
WOMatRec<WO_MAT_MU_WAFER_THK_RESULT$,MadeupSlot> = '' ;* Added 03/14/2017 FDR *
|
||||
|
||||
|
||||
NEXT I
|
||||
|
||||
otParms = FIELDSTORE(otParms,@RM,4,0,WOMatRec)
|
||||
@ -2414,6 +2351,7 @@ RemMakeupWafers:
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
RepMakeupWafers:
|
||||
* * * * * * *
|
||||
@ -2602,6 +2540,7 @@ SlotWaferIDs:
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
TestSlotWaferIDs:
|
||||
* * * * * * *
|
||||
@ -2932,11 +2871,11 @@ GetGRProps:
|
||||
END
|
||||
|
||||
Result = GRWfrQty:@FM:ScrapQty:@FM:ProdTWQty:@FM:AvailMUWfrQty:@FM:MUCassIDs:@FM:MUCassQtys
|
||||
// GAN uses GaN_Serices('GetGaNGRProps')
|
||||
If ReactorType EQ 'GAN' then Result = ''
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
ConvertMakeup:
|
||||
* * * * * * *
|
||||
@ -3417,6 +3356,7 @@ CassRDSWfrCnts:
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
*********
|
||||
GetFQADtm:
|
||||
*********
|
||||
@ -3424,6 +3364,7 @@ GetFQADtm:
|
||||
rec = Signature_Services('GetSigInfo', WOMatKey, 'QA')
|
||||
|
||||
Result = rec<2>
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
@ -3471,6 +3412,7 @@ GetSigProfile:
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
CassSigProfile:
|
||||
* * * * * * *
|
||||
@ -3680,6 +3622,7 @@ SetSignature:
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
ClearSignature:
|
||||
* * * * * * *
|
||||
@ -3769,6 +3712,7 @@ RETURN
|
||||
* * * * * * *
|
||||
TestStatus:
|
||||
* * * * * * *
|
||||
|
||||
IF NOT(ASSIGNED(WOMatKey)) THEN WOMatKey = Parms[1,@RM]
|
||||
IF NOT(ASSIGNED(WOMatRec)) THEN WOMatRec = Parms[COL2()+1,@RM]
|
||||
|
||||
@ -4018,10 +3962,11 @@ AddShip:
|
||||
|
||||
// Update work order SHIP_QTY_STATIC
|
||||
WONo = Field(WOMatKey, '*', 1)
|
||||
Work_Order_Services('UpdateShippedQty', WONo)
|
||||
Service_Services('PostProcedure', 'WORK_ORDER_SERVICES', 'UpdateShippedQty':@VM:WONo, False$)
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
RemShip:
|
||||
* * * * * * *
|
||||
@ -4057,6 +4002,7 @@ RemShip:
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
AddReship:
|
||||
* * * * * * *
|
||||
@ -4102,6 +4048,7 @@ AddReship:
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * *
|
||||
SetPartNo:
|
||||
* * * * * *
|
||||
@ -4260,6 +4207,7 @@ RefreshSigProfile:
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
SetWfrQty:
|
||||
* * * * * * *
|
||||
@ -5182,6 +5130,7 @@ GetEventLog:
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
GetADERead:
|
||||
* * * * * * *
|
||||
@ -5616,6 +5565,3 @@ ExpCOA:
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user