Added additional steps if WO_MAT_QA rec is blank.

This commit is contained in:
Infineon\Ouellette 2024-12-02 13:53:17 -07:00
parent 56d992b961
commit 47a4257d95
2 changed files with 633 additions and 624 deletions

View File

@ -15,7 +15,7 @@ COMPILE FUNCTION obj_WO_Mat_QA(Method,Parms)
#pragma precomp SRP_PreCompiler #pragma precomp SRP_PreCompiler
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, ErrMsg, Btree.Extract, Database_Services, Logging_Services DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, ErrMsg, Btree.Extract, Database_Services, Logging_Services, PSN_Services
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Dialog_Box, obj_WO_Log, NextKey, obj_WO_Mat_QA, Environment_Services DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Dialog_Box, obj_WO_Log, NextKey, obj_WO_Mat_QA, Environment_Services
DECLARE FUNCTION obj_Prod_Spec, obj_RDS_Test, SRP_Math, Database_Services, Error_Services, Logging_Services DECLARE FUNCTION obj_Prod_Spec, obj_RDS_Test, SRP_Math, Database_Services, Error_Services, Logging_Services
@ -83,18 +83,18 @@ RETURN Result
GetQAMet: GetQAMet:
* * * * * * * * * * * * * *
CassID = Parms[1,@RM] CassID = Parms[1,@RM]
WOMatQARec = Parms[COL2()+1,@RM] WOMatQARec = Parms[COL2()+1,@RM]
WOStep = Parms[COL2()+1,@RM] WOStep = Parms[COL2()+1,@RM]
Stage = Parms[COL2()+1,@RM] Stage = Parms[COL2()+1,@RM]
MetFields = Parms[COL2()+1,@RM] MetFields = Parms[COL2()+1,@RM]
IF CassID = '' THEN RETURN IF CassID = '' THEN RETURN
IF WOStep = '' THEN RETURN IF WOStep = '' THEN RETURN
IF Stage = '' THEN RETURN IF Stage = '' THEN RETURN
IF MetFields = '' THEN IF MetFields = '' THEN
MetFields = WO_MAT_QA_PROFILE$:@VM MetFields = WO_MAT_QA_PROFILE$:@VM
MetFields := WO_MAT_QA_STAGE$:@VM MetFields := WO_MAT_QA_STAGE$:@VM
MetFields := WO_MAT_QA_MIN$:@VM MetFields := WO_MAT_QA_MIN$:@VM
@ -113,22 +113,22 @@ IF MetFields = '' THEN
MetFields := WO_MAT_QA_WFR_QTY$:@VM MetFields := WO_MAT_QA_WFR_QTY$:@VM
MetFields := WO_MAT_QA_WFR_TYPE$:@VM MetFields := WO_MAT_QA_WFR_TYPE$:@VM
MetFields := WO_MAT_QA_SHIP_DOC$ MetFields := WO_MAT_QA_SHIP_DOC$
END END
IF WOMatQARec = '' THEN IF WOMatQARec = '' THEN
WOMatQARec = XLATE('WO_MAT_QA',CassID,'','X') WOMatQARec = XLATE('WO_MAT_QA',CassID,'','X')
IF WOMatQARec = '' THEN RETURN IF WOMatQARec = '' THEN RETURN
END END
MetTests = WOMatQARec<WO_MAT_QA_PROFILE$> MetTests = WOMatQARec<WO_MAT_QA_PROFILE$>
MetStages = WOMatQARec<WO_MAT_QA_STAGE$> MetStages = WOMatQARec<WO_MAT_QA_STAGE$>
FieldCnt = COUNT(MetFields,@VM) + (MetFields NE '') FieldCnt = COUNT(MetFields,@VM) + (MetFields NE '')
MetCnt = COUNT(MetTests,@VM) + (MetTests NE '') MetCnt = COUNT(MetTests,@VM) + (MetTests NE '')
LineCnt = 1 LineCnt = 1
Ans = '' Ans = ''
FOR I = 1 TO MetCnt FOR I = 1 TO MetCnt
MetWOStep = MetTests<1,I>[1,1] MetWOStep = MetTests<1,I>[1,1]
IF MetWOStep = WOStep AND WOMatQARec<WO_MAT_QA_STAGE$,I> = Stage THEN IF MetWOStep = WOStep AND WOMatQARec<WO_MAT_QA_STAGE$,I> = Stage THEN
@ -146,17 +146,17 @@ FOR I = 1 TO MetCnt
Case Otherwise$ Case Otherwise$
Ans<N,LineCnt> = WOMatQARec<MetField,I> Ans<N,LineCnt> = WOMatQARec<MetField,I>
End Case End Case
* IF MetField = WO_MAT_QA_PROFILE$ THEN * IF MetField = WO_MAT_QA_PROFILE$ THEN
* Ans<N,LineCnt> = WOMatQARec<MetField,I>[2,99] ;* Profile (test) field has stage embedded in the 1st character * Ans<N,LineCnt> = WOMatQARec<MetField,I>[2,99] ;* Profile (test) field has stage embedded in the 1st character
* END ELSE * END ELSE
* Ans<N,LineCnt> = WOMatQARec<MetField,I> * Ans<N,LineCnt> = WOMatQARec<MetField,I>
* END * END
NEXT N NEXT N
LineCnt += 1 LineCnt += 1
END END
NEXT I NEXT I
Result = Ans Result = Ans
RETURN RETURN
@ -165,22 +165,22 @@ RETURN
GetShipDoc: GetShipDoc:
* * * * * * * * * * * * * *
* Returns data for inclusion in documents sent to the customer * Returns data for inclusion in documents sent to the customer
WONo = Parms[1,@RM] WONo = Parms[1,@RM]
CassNo = Parms[COL2()+1,@RM] CassNo = 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 CassNo = '' THEN ErrorMsg = 'Null parameter "CassNo" passed to routine. (':Method:')' IF CassNo = '' THEN ErrorMsg = 'Null parameter "CassNo" passed to routine. (':Method:')'
IF ErrorMsg NE '' THEN RETURN IF ErrorMsg NE '' THEN RETURN
QAMetRec = XLATE('WO_MAT_QA',WONo:'*':CassNo,'','X') QAMetRec = XLATE('WO_MAT_QA',WONo:'*':CassNo,'','X')
IF QAMetRec = '' THEN RETURN IF QAMetRec = '' THEN RETURN
LineCnt = 0 LineCnt = 0
IF INDEX(QAMetRec<WO_MAT_QA_SHIP_DOC$>,'1',1) THEN IF INDEX(QAMetRec<WO_MAT_QA_SHIP_DOC$>,'1',1) THEN
TestCnt = COUNT(QAMetRec<WO_MAT_QA_STAGE$>,@VM) + (QAMetRec<WO_MAT_QA_STAGE$> NE '') TestCnt = COUNT(QAMetRec<WO_MAT_QA_STAGE$>,@VM) + (QAMetRec<WO_MAT_QA_STAGE$> NE '')
FOR I = 1 TO TestCnt FOR I = 1 TO TestCnt
@ -193,7 +193,7 @@ IF INDEX(QAMetRec<WO_MAT_QA_SHIP_DOC$>,'1',1) THEN
END END
NEXT I NEXT I
END END
RETURN RETURN
@ -219,32 +219,32 @@ RETURN
Create: Create:
* * * * * * * * * * * * * *
WONo = Parms[1,@RM] WONo = Parms[1,@RM]
CassNo = Parms[COL2()+1,@RM] CassNo = 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 CassNo = '' THEN ErrorMsg = 'Null parameter "CassNo" passed to routine. (':Method:')' IF CassNo = '' THEN ErrorMsg = 'Null parameter "CassNo" passed to routine. (':Method:')'
IF ErrorMsg NE '' THEN RETURN IF ErrorMsg NE '' THEN RETURN
* * * * * * * * Build QA_MET profile - Work Order scheduled only * * * * * * * * * * * * * * * * Build QA_MET profile - Work Order scheduled only * * * * * * * *
WOStepKeys = XLATE('WO_LOG',WONo,WO_LOG_WO_STEP_KEY$,'X') WOStepKeys = XLATE('WO_LOG',WONo,WO_LOG_WO_STEP_KEY$,'X')
StepCnt = COUNT(WOStepKeys,@VM) + (WOStepKeys NE '') StepCnt = COUNT(WOStepKeys,@VM) + (WOStepKeys NE '')
EpiProPSNo = '' EpiProPSNo = ''
EpiProPSRec = '' EpiProPSRec = ''
MetLine = 1 MetLine = 1
WOMatKey = WONo:'*':CassNo WOMatKey = WONo:'*':CassNo
WOMatQARec = '' WOMatQARec = ''
WOMatRec = XLATE('WO_MAT',WOMatKey,'','X') ;* WOMat record used to check for pre-existing signatures jch 6/7/2015 WOMatRec = XLATE('WO_MAT',WOMatKey,'','X') ;* WOMat record used to check for pre-existing signatures jch 6/7/2015
FOR WOStepNo = 1 TO StepCnt FOR WOStepNo = 1 TO StepCnt
PSNo = XLATE('WO_STEP',WOStepKeys<1,WOStepNo>,WO_STEP_PROD_SPEC_ID$,'X') PSNo = XLATE('WO_STEP',WOStepKeys<1,WOStepNo>,WO_STEP_PROD_SPEC_ID$,'X')
PSRec = XLATE('PROD_SPEC',PSNo,'','X') PSRec = XLATE('PROD_SPEC',PSNo,'','X')
@ -328,18 +328,18 @@ FOR WOStepNo = 1 TO StepCnt
NEXT StageNo NEXT StageNo
NEXT WOStepNo NEXT WOStepNo
Database_Services('WriteDataRow', 'WO_MAT_QA', WOMatKey, WOMatQARec, True$, False$, False$) Database_Services('WriteDataRow', 'WO_MAT_QA', WOMatKey, WOMatQARec, True$, False$, False$)
If Error_Services('HasError') then If Error_Services('HasError') then
ErrorMessage = Error_Services('GetMessage') ErrorMessage = Error_Services('GetMessage')
LogData = '' LogData = ''
LogData<1> = LoggingDTM;//Defined at entry of subroutine LogData<1> = LoggingDTM;//Defined at entry of subroutine
LogData<2> = WOMatKey LogData<2> = WOMatKey
LogData<3> = ErrorMessage LogData<3> = ErrorMessage
Logging_Services('AppendLog', objLogWOMatQAWrite, LogData, @RM, @FM, False$) Logging_Services('AppendLog', objLogWOMatQAWrite, LogData, @RM, @FM, False$)
end end
* * * * * * * * * * * * * * * * * * * * * * * *
@ -352,24 +352,24 @@ RETURN
GetQAMetKeys: GetQAMetKeys:
* * * * * * * * * * * * * *
WOMatKey = Parms[1,@RM] WOMatKey = Parms[1,@RM]
WOMatQARec = Parms[COL2()+1,@RM] WOMatQARec = Parms[COL2()+1,@RM]
IF WOMatKey = '' THEN RETURN IF WOMatKey = '' THEN RETURN
IF WOMatQARec = '' THEN IF WOMatQARec = '' THEN
WOMatQARec = XLATE('WO_MAT_QA',WOMatKey,'','X') WOMatQARec = XLATE('WO_MAT_QA',WOMatKey,'','X')
IF WOMatQARec = '' THEN RETURN IF WOMatQARec = '' THEN RETURN
END END
ProdVerNo = XLATE('WO_MAT',WOMatKey,WO_MAT_PROD_VER_NO$,'X') ProdVerNo = XLATE('WO_MAT',WOMatKey,WO_MAT_PROD_VER_NO$,'X')
StepPSNos = XLATE('PROD_VER',ProdVerNo,PROD_VER_PROC_STEP_PSN$,'X') StepPSNos = XLATE('PROD_VER',ProdVerNo,PROD_VER_PROC_STEP_PSN$,'X')
psCnt = COUNT(StepPSNos,@VM) + (StepPSNos NE '') psCnt = COUNT(StepPSNos,@VM) + (StepPSNos NE '')
LineCnt = 1 LineCnt = 1
FOR I = 1 TO psCNT FOR I = 1 TO psCNT
StepPSNo = StepPSNos<1,I> StepPSNo = StepPSNos<1,I>
QAMetStruct = obj_Prod_Spec('GetQAMet',StepPSNo:@RM:'') QAMetStruct = obj_Prod_Spec('GetQAMet',StepPSNo:@RM:'')
@ -382,7 +382,7 @@ FOR I = 1 TO psCNT
LineCnt += 1 LineCnt += 1
NEXT N NEXT N
NEXT I NEXT I
RETURN RETURN
@ -392,38 +392,39 @@ RETURN
AddQAMet: AddQAMet:
* * * * * * * * * * * * * *
WONo = Parms[1,@RM] WONo = Parms[1,@RM]
WOStep = Parms[COL2()+1,@RM] WOStep = Parms[COL2()+1,@RM]
CassNo = Parms[COL2()+1,@RM] CassNo = Parms[COL2()+1,@RM]
Stage = Parms[COL2()+1,@RM] Stage = Parms[COL2()+1,@RM]
MetTest = Parms[COL2()+1,@RM] MetTest = Parms[COL2()+1,@RM]
MetProp = Parms[COL2()+1,@RM] MetProp = Parms[COL2()+1,@RM]
MetToolClass = Parms[COL2()+1,@RM] MetToolClass = Parms[COL2()+1,@RM]
MetMin = Parms[COL2()+1,@RM] MetMin = Parms[COL2()+1,@RM]
MetMax = Parms[COL2()+1,@RM] MetMax = Parms[COL2()+1,@RM]
MetSlot = Parms[COL2()+1,@RM] MetSlot = Parms[COL2()+1,@RM]
MetRecipe = Parms[COL2()+1,@RM] MetRecipe = Parms[COL2()+1,@RM]
MetRecipePattern = Parms[COL2()+1,@RM] MetRecipePattern = Parms[COL2()+1,@RM]
MetWfrQty = Parms[COL2()+1,@RM] MetWfrQty = Parms[COL2()+1,@RM]
MetWfrType = Parms[COL2()+1,@RM] MetWfrType = Parms[COL2()+1,@RM]
MetReactSched = Parms[COL2()+1,@RM] MetReactSched = Parms[COL2()+1,@RM]
MetShipDoc = Parms[COL2()+1,@RM] MetShipDoc = Parms[COL2()+1,@RM]
MetPhaseMin = Parms[COL2()+1,@RM] ; // 10/15/18 - djs - Added Phase Min Spec for HgCV MetPhaseMin = Parms[COL2()+1,@RM] ; // 10/15/18 - djs - Added Phase Min Spec for HgCV
IF WONo = '' THEN ErrorMsg = 'Null Parm "WONo" passed to routine. (':Method:')' IF WONo = '' THEN ErrorMsg = 'Null Parm "WONo" passed to routine. (':Method:')'
IF WOStep = '' THEN ErrorMsg = 'Null Parm "WOStep" passed to routine. (':Method:')' IF WOStep = '' THEN ErrorMsg = 'Null Parm "WOStep" passed to routine. (':Method:')'
IF CassNo = '' THEN ErrorMsg = 'Null Parm "CassNo" passed to routine. (':Method:')' IF CassNo = '' THEN ErrorMsg = 'Null Parm "CassNo" passed to routine. (':Method:')'
IF Stage = '' THEN ErrorMsg = 'Null Parm "Stage" passed to routine. (':Method:')' IF Stage = '' THEN ErrorMsg = 'Null Parm "Stage" passed to routine. (':Method:')'
IF MetProp = '' THEN ErrorMsg = 'Null Parm "MetProp" passed to routine. (':Method:')' IF MetProp = '' THEN ErrorMsg = 'Null Parm "MetProp" passed to routine. (':Method:')'
IF ErrorMsg NE '' THEN RETURN IF ErrorMsg NE '' THEN RETURN
NewMetKey = WOStep:'*':Stage:'*':MetProp NewMetKey = WOStep:'*':Stage:'*':MetProp
WOMatKey = WONo:'*':CassNo WOMatKey = WONo:'*':CassNo
HaveLock = Database_Services('GetKeyIDLock', 'WO_MAT_QA', WOMatKey, True$) HaveLock = Database_Services('GetKeyIDLock', 'WO_MAT_QA', WOMatKey, True$)
If HaveLock then If HaveLock then
WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatKey, True$, 0, False$) WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatKey, True$, 0, False$)
if WOMatQARec NE '' then
WOMatRec = XLATE('WO_MAT',WOMatKey,'','X') WOMatRec = XLATE('WO_MAT',WOMatKey,'','X')
AllQAMetKeysStruct = obj_WO_Mat_QA('GetQAMetKeys',WOMatKey:@RM:WOMatQARec) ;* All QAMetSort Keys Specified for this Work Order Returns Keys in <1> and Sequence numbers = <2> AllQAMetKeysStruct = obj_WO_Mat_QA('GetQAMetKeys',WOMatKey:@RM:WOMatQARec) ;* All QAMetSort Keys Specified for this Work Order Returns Keys in <1> and Sequence numbers = <2>
@ -496,13 +497,18 @@ If HaveLock then
END ;* End of SpecLine LOCATE END ;* End of SpecLine LOCATE
END END
end else end else
//Record is blank, create new from spec.
PSN_Services('UpdateAllQAMetrologyRecord', WOMatKey)
end
end else
LogData = '' LogData = ''
LogData<1> = LoggingDTM;//Defined at entry of subroutine LogData<1> = LoggingDTM;//Defined at entry of subroutine
LogData<2> = WOMatKey LogData<2> = WOMatKey
LogData<3> = 'Error getting lock on WO_MAT_QA record.' LogData<3> = 'Error getting lock on WO_MAT_QA record.'
Logging_Services('AppendLog', objLogWOMatQAWrite, LogData, @RM, @FM, False$) Logging_Services('AppendLog', objLogWOMatQAWrite, LogData, @RM, @FM, False$)
end end
RETURN RETURN
@ -512,36 +518,36 @@ RETURN
RemQAMet: RemQAMet:
* * * * * * * * * * * * * *
WONo = Parms[1,@RM] WONo = Parms[1,@RM]
WOStep = Parms[COL2()+1,@RM] WOStep = Parms[COL2()+1,@RM]
CassNo = Parms[COL2()+1,@RM] CassNo = Parms[COL2()+1,@RM]
Stage = Parms[COL2()+1,@RM] Stage = Parms[COL2()+1,@RM]
PropCd = Parms[COL2()+1,@RM] PropCd = Parms[COL2()+1,@RM]
IF WONo = '' THEN ErrorMsg = 'Null Parm "WONo" passed to routine. (':Method:')' IF WONo = '' THEN ErrorMsg = 'Null Parm "WONo" passed to routine. (':Method:')'
IF WOStep = '' THEN ErrorMsg = 'Null Parm "WOStep" passed to routine. (':Method:')' IF WOStep = '' THEN ErrorMsg = 'Null Parm "WOStep" passed to routine. (':Method:')'
IF CassNo = '' THEN ErrorMsg = 'Null Parm "CassNo" passed to routine. (':Method:')' IF CassNo = '' THEN ErrorMsg = 'Null Parm "CassNo" passed to routine. (':Method:')'
IF Stage = '' THEN ErrorMsg = 'Null Parm "Stage" passed to routine. (':Method:')' IF Stage = '' THEN ErrorMsg = 'Null Parm "Stage" passed to routine. (':Method:')'
IF PropCd = '' THEN ErrorMsg = 'Null Parm "PropCd" passed to routine. (':Method:')' IF PropCd = '' THEN ErrorMsg = 'Null Parm "PropCd" passed to routine. (':Method:')'
IF ErrorMsg NE '' THEN RETURN IF ErrorMsg NE '' THEN RETURN
WOMatKey = WONo:'*':CassNo WOMatKey = WONo:'*':CassNo
otParms = 'WO_MAT_QA':@RM:WOMatKey otParms = 'WO_MAT_QA':@RM:WOMatKey
WOMatQARec = obj_Tables('ReadRec',otParms) WOMatQARec = obj_Tables('ReadRec',otParms)
CurrMetKeys = '' CurrMetKeys = ''
cmqCnt = COUNT(WOMatQARec<WO_MAT_QA_PROFILE$>,@VM) + (WOMatQARec<WO_MAT_QA_PROFILE$> NE '') cmqCnt = COUNT(WOMatQARec<WO_MAT_QA_PROFILE$>,@VM) + (WOMatQARec<WO_MAT_QA_PROFILE$> NE '')
FOR M = 1 to cmqCnt FOR M = 1 to cmqCnt
CurrMetKey = WOMatQARec<WO_MAT_QA_PROFILE$,M>[1,1]:'*':WOMatQARec<WO_MAT_QA_STAGE$,M>:'*':WOMatQARec<WO_MAT_QA_PROP$,M> CurrMetKey = WOMatQARec<WO_MAT_QA_PROFILE$,M>[1,1]:'*':WOMatQARec<WO_MAT_QA_STAGE$,M>:'*':WOMatQARec<WO_MAT_QA_PROP$,M>
CurrMetKeys<1,M> = CurrMetKey CurrMetKeys<1,M> = CurrMetKey
NEXT M NEXT M
DelMetKey = WOStep:'*':Stage:'*':PropCd DelMetKey = WOStep:'*':Stage:'*':PropCd
LOCATE DelMetKey IN CurrMetKeys USING @VM SETTING DelPos THEN LOCATE DelMetKey IN CurrMetKeys USING @VM SETTING DelPos THEN
IF WOMatQARec<WO_MAT_QA_SIG$,DelPos> = '' THEN IF WOMatQARec<WO_MAT_QA_SIG$,DelPos> = '' THEN
@ -570,9 +576,9 @@ LOCATE DelMetKey IN CurrMetKeys USING @VM SETTING DelPos THEN
obj_Tables('UnlockRec',otParms) obj_Tables('UnlockRec',otParms)
END END
END ELSE END ELSE
obj_Tables('UnlockRec',otParms) obj_Tables('UnlockRec',otParms)
END END
RETURN RETURN
@ -582,30 +588,30 @@ RETURN
SetSignature: SetSignature:
* * * * * * * * * * * * * *
WONo = Parms[1,@RM] WONo = Parms[1,@RM]
CassNo = Parms[COL2()+1,@RM] CassNo = Parms[COL2()+1,@RM]
WOStepNo = Parms[COL2()+1,@RM] WOStepNo = Parms[COL2()+1,@RM]
SigProfKeys = Parms[COL2()+1,@RM] SigProfKeys = Parms[COL2()+1,@RM]
Signatures = Parms[COL2()+1,@RM] Signatures = Parms[COL2()+1,@RM]
SigDTMs = Parms[COL2()+1,@RM] SigDTMs = Parms[COL2()+1,@RM]
MetResults = Parms[COL2()+1,@RM] MetResults = Parms[COL2()+1,@RM]
Stages = Parms[COL2()+1,@RM] Stages = Parms[COL2()+1,@RM]
StdMaxs = Parms[COL2()+1,@RM] StdMaxs = Parms[COL2()+1,@RM]
StdResults = Parms[COL2()+1,@RM] ;* Added 08/05/2013 JCH StdResults = Parms[COL2()+1,@RM] ;* Added 08/05/2013 JCH
Slot = Parms[COL2()+1,@RM] ;* Added 07/23/2019 DJS Slot = Parms[COL2()+1,@RM] ;* Added 07/23/2019 DJS
IF WONo = '' THEN ErrorMsg = 'Null parameter "WONo" passed to routine. (':Method:')' IF WONo = '' THEN ErrorMsg = 'Null parameter "WONo" 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:')'
IF WOStepNo = '' THEN Errormsg = 'Null parameter "WOStepNo" passed to routine. (':Method:')' IF WOStepNo = '' THEN Errormsg = 'Null parameter "WOStepNo" passed to routine. (':Method:')'
IF SigProfKeys = '' THEN ErrorMsg = 'Null parameter "SigProfKeys" passed to routine. (':Method:')' IF SigProfKeys = '' THEN ErrorMsg = 'Null parameter "SigProfKeys" passed to routine. (':Method:')'
IF Signatures = '' THEN ErrorMsg = 'Null parameter "Signatures" passed to routine. (':Method:')' IF Signatures = '' THEN ErrorMsg = 'Null parameter "Signatures" passed to routine. (':Method:')'
IF SigDTMs = '' THEN ErrorMsg = 'Null parameter "SigDTMs" passed to routine. (':Method:')' IF SigDTMs = '' THEN ErrorMsg = 'Null parameter "SigDTMs" passed to routine. (':Method:')'
IF ErrorMsg NE '' THEN RETURN IF ErrorMsg NE '' THEN RETURN
SigCnt = COUNT(SigProfKeys,@VM) + (SigProfKeys NE '') SigCnt = COUNT(SigProfKeys,@VM) + (SigProfKeys NE '')
FOR I = 1 TO SigCnt FOR I = 1 TO SigCnt
IF SigProfKeys<1,I> = '' THEN ErrorMsg = 'Null parameter "SigProfKey" passed to routine. (':Method:')' IF SigProfKeys<1,I> = '' THEN ErrorMsg = 'Null parameter "SigProfKey" passed to routine. (':Method:')'
@ -616,31 +622,31 @@ FOR I = 1 TO SigCnt
IF ErrorMsg NE '' THEN RETURN IF ErrorMsg NE '' THEN RETURN
NEXT I NEXT I
otParms = 'WO_MAT_QA':@RM:WONo:'*':CassNo otParms = 'WO_MAT_QA':@RM:WONo:'*':CassNo
WOMatQARec = obj_Tables('ReadRec',otParms) WOMatQARec = obj_Tables('ReadRec',otParms)
errCode = '' errCode = ''
IF Get_Status(errCode) THEN IF Get_Status(errCode) THEN
RETURN RETURN
END END
ProfSteps = '' ProfSteps = ''
ProfileCnt = COUNT(WOMatQARec<WO_MAT_QA_PROFILE$>,@VM) + (WOMatQARec<WO_MAT_QA_PROFILE$> NE '') ProfileCnt = COUNT(WOMatQARec<WO_MAT_QA_PROFILE$>,@VM) + (WOMatQARec<WO_MAT_QA_PROFILE$> NE '')
FOR N = 1 TO ProfileCnt FOR N = 1 TO ProfileCnt
ProfSteps<1,N> = WOMatQARec<WO_MAT_QA_PROFILE$,N>:'*':WOMatQARec<WO_MAT_QA_STAGE$,N> ProfSteps<1,N> = WOMatQARec<WO_MAT_QA_PROFILE$,N>:'*':WOMatQARec<WO_MAT_QA_STAGE$,N>
NEXT N NEXT N
LastProfSig = WOMatQARec<WO_MAT_QA_PROFILE$,ProfileCnt> LastProfSig = WOMatQARec<WO_MAT_QA_PROFILE$,ProfileCnt>
LastBoxSigned = 0 LastBoxSigned = 0
WriteFlag = 0 WriteFlag = 0
FOR I = 1 TO SigCnt FOR I = 1 TO SigCnt
SigProfKey = SigProfKeys<1,I> SigProfKey = SigProfKeys<1,I>
Stage = Stages<1,I> Stage = Stages<1,I>
@ -667,32 +673,32 @@ FOR I = 1 TO SigCnt
WriteFlag = 1 WriteFlag = 1
end end
* Sig = WOMatQARec<WO_MAT_QA_SIG$,vPos> * Sig = WOMatQARec<WO_MAT_QA_SIG$,vPos>
* SigDTM = WOMatQARec<WO_MAT_QA_SIG_DTM$,vPos> * SigDTM = WOMatQARec<WO_MAT_QA_SIG_DTM$,vPos>
* If Sig EQ '' and SigDTM EQ '' then * If Sig EQ '' and SigDTM EQ '' then
* Found = True$ * Found = True$
* WOMatQARec<WO_MAT_QA_RESULT$,vPos> = MetResults<1,I> * WOMatQARec<WO_MAT_QA_RESULT$,vPos> = MetResults<1,I>
* WOMatQARec<WO_MAT_QA_STD_MAX$,vPos> = ICONV(StdMaxs<1,I>,'MD3') * WOMatQARec<WO_MAT_QA_STD_MAX$,vPos> = ICONV(StdMaxs<1,I>,'MD3')
* WOMatQARec<WO_MAT_QA_STD_RESULT$,vPos> = StdResults<1,I> ;* Added 8/5/2013 JCH * WOMatQARec<WO_MAT_QA_STD_RESULT$,vPos> = StdResults<1,I> ;* Added 8/5/2013 JCH
* WOMatQARec<WO_MAT_QA_SIG$,vPos> = Signatures<1,I> * WOMatQARec<WO_MAT_QA_SIG$,vPos> = Signatures<1,I>
* WOMatQARec<WO_MAT_QA_SIG_DTM$,vPos> = ICONV(SigDTMs<1,I>,'DT') * WOMatQARec<WO_MAT_QA_SIG_DTM$,vPos> = ICONV(SigDTMs<1,I>,'DT')
* *
* WriteFlag = 1 * WriteFlag = 1
* end * end
Until Found EQ True$ Until Found EQ True$
Next ProfStep Next ProfStep
NEXT I NEXT I
IF WriteFlag = 1 THEN IF WriteFlag = 1 THEN
otParms = FieldStore(OtParms,@RM,4,0,WOMatQARec) ;* Put record in 4th field of OtParms otParms = FieldStore(OtParms,@RM,4,0,WOMatQARec) ;* Put record in 4th field of OtParms
obj_Tables('WriteRec',otParms) obj_Tables('WriteRec',otParms)
END ELSE END ELSE
obj_Tables('UnlockRec',otParms) obj_Tables('UnlockRec',otParms)
END END
RETURN RETURN
@ -701,26 +707,26 @@ RETURN
QAResults: QAResults:
* * * * * * * * * * * * * * * *
* Returns Stage/test/missing or not signed * for incomplete tests * Returns Stage/test/missing or not signed * for incomplete tests
WONo = Parms[1,@RM] WONo = Parms[1,@RM]
WOStep = Parms[COL2()+1,@RM] WOStep = Parms[COL2()+1,@RM]
CassNo = Parms[COL2()+1,@RM] CassNo = 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:')'
IF ErrorMsg NE '' THEN RETURN IF ErrorMsg NE '' THEN RETURN
WOMatQARec = Xlate('WO_MAT_QA',WONo:'*':CassNo,'','X') WOMatQARec = Xlate('WO_MAT_QA',WONo:'*':CassNo,'','X')
If WOMatQARec = '' Then RETURN If WOMatQARec = '' Then RETURN
QAProfile = WOMatQARec<WO_MAT_QA_PROFILE$> QAProfile = WOMatQARec<WO_MAT_QA_PROFILE$>
pCnt = Count(QAProfile,@VM) + (QAProfile NE '') pCnt = Count(QAProfile,@VM) + (QAProfile NE '')
For I = 1 To pCnt For I = 1 To pCnt
PStep = QAProfile<1,I>[1,1] PStep = QAProfile<1,I>[1,1]
PTest = QAProfile<1,I>[2,99] PTest = QAProfile<1,I>[2,99]
@ -744,8 +750,9 @@ For I = 1 To pCnt
End Case End Case
End ;* End check for Same WOStep End ;* End check for Same WOStep
Next I Next I
RETURN RETURN

View File

@ -535,6 +535,7 @@ Service UpdateAllQAMetrologyRecord(WOMatQAKey, stageToUpdate)
WOMatQARec<1,vPos> = SpecQAMetData<1,vPos> WOMatQARec<1,vPos> = SpecQAMetData<1,vPos>
if SpecQAMetData<2,vPos> EQ 'ADE' then SpecQAMetData<2,vPos> = '1ADE' if SpecQAMetData<2,vPos> EQ 'ADE' then SpecQAMetData<2,vPos> = '1ADE'
if SpecQAMetData<2,vPos> EQ 'THICK_ONLY' then SpecQAMetData<2,vPos> = '1THICK_ONLY' if SpecQAMetData<2,vPos> EQ 'THICK_ONLY' then SpecQAMetData<2,vPos> = '1THICK_ONLY'
if SpecQAMetData<2,vPos> EQ 'CRES' then SpecQAMetData<2,vPos> = '1CRES'
WOMatQARec<2,vPos> = SpecQAMetData<2,vPos> WOMatQARec<2,vPos> = SpecQAMetData<2,vPos>
WOMatQARec<3,vPos> = SpecQAMetData<3,vPos> WOMatQARec<3,vPos> = SpecQAMetData<3,vPos>
WOMatQARec<4,vPos> = SpecQAMetData<4,vPos> WOMatQARec<4,vPos> = SpecQAMetData<4,vPos>
@ -549,7 +550,7 @@ Service UpdateAllQAMetrologyRecord(WOMatQAKey, stageToUpdate)
Next SpecTest Next SpecTest
Database_Services('WriteDataRow', 'WO_MAT_QA', WOMatQAKey, WOMatQARec) Database_Services('WriteDataRow', 'WO_MAT_QA', WOMatQAKey, WOMatQARec, True$, True$, True$)
end else end else
ErrorMsg = 'Null WOMatQAKey passed into service.' ErrorMsg = 'Null WOMatQAKey passed into service.'
end end
@ -948,3 +949,4 @@ CheckAdHoc:
return return