Changed from using obj_tables to Database_Services

This commit is contained in:
Infineon\Ouellette 2024-12-02 11:33:16 -07:00
parent cb5df15264
commit 56d992b961

View File

@ -15,12 +15,12 @@ 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 DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, ErrMsg, Btree.Extract, Database_Services, Logging_Services
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Dialog_Box, obj_WO_Log, NextKey, obj_WO_Mat_QA 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 DECLARE FUNCTION obj_Prod_Spec, obj_RDS_Test, SRP_Math, Database_Services, Error_Services, Logging_Services
$INSERT LOGICAL $Insert APP_INSERTS
$INSERT MSG_EQUATES $INSERT MSG_EQUATES
$INSERT WO_LOG_EQUATES $INSERT WO_LOG_EQUATES
$INSERT WO_MAT_EQUATES $INSERT WO_MAT_EQUATES
@ -31,8 +31,14 @@ $INSERT PRS_STAGE_EQUATES
$INSERT PROD_VER_EQUATES $INSERT PROD_VER_EQUATES
$INSERT QA_MET_EQUATES ;* Used in GetQAMet data structure return variable $INSERT QA_MET_EQUATES ;* Used in GetQAMet data structure return variable
LogPath = Environment_Services('GetApplicationRootPath') : '\WO_MAT_QA'; //Define the directory where the log will be saved to. This happens the first time of the day that the log is written to.
LogDate = Oconv(Date(), 'D4/')
LogTime = Oconv(Time(), 'MTS')
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
EQU CRLF$ TO \0D0A\ LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' WO_MAT_QA_Writes.csv'; //Define the file name that will get created.
Headers = 'Logging DTM' : @FM : 'WOMatKey' : @FM : 'Message'; //Define the column names in the log file, delimited by a Field Mark.
objLogWOMatQAWrite = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ',', Headers, '', False$, False$); //Actually creates the log.
ErrTitle = 'Error in Stored Procedure "obj_WO_Mat_QA"' ErrTitle = 'Error in Stored Procedure "obj_WO_Mat_QA"'
ErrorMsg = '' ErrorMsg = ''
@ -233,8 +239,9 @@ EpiProPSRec = ''
MetLine = 1 MetLine = 1
WOMatQARec = '' WOMatKey = WONo:'*':CassNo
WOMatRec = XLATE('WO_MAT',WONo:'*':CassNo,'','X') ;* WOMat record used to check for pre-existing signatures jch 6/7/2015 WOMatQARec = ''
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
@ -322,12 +329,15 @@ FOR WOStepNo = 1 TO StepCnt
NEXT StageNo NEXT StageNo
NEXT WOStepNo NEXT WOStepNo
Database_Services('WriteDataRow', 'WO_MAT_QA', WOMatKey, WOMatQARec, True$, False$, False$)
If Error_Services('HasError') then
wommParms = 'WO_MAT_QA':@RM:WONo:'*':CassNo:@RM:@RM:WOMatQARec ;* Both table use the WO_Mat_Key ErrorMessage = Error_Services('GetMessage')
LogData = ''
obj_Tables('WriteRec',wommParms) LogData<1> = LoggingDTM;//Defined at entry of subroutine
LogData<2> = WOMatKey
LogData<3> = ErrorMessage
Logging_Services('AppendLog', objLogWOMatQAWrite, LogData, @RM, @FM, False$)
end
* * * * * * * * * * * * * * * * * * * * * * * *
@ -410,88 +420,89 @@ IF ErrorMsg NE '' THEN RETURN
NewMetKey = WOStep:'*':Stage:'*':MetProp NewMetKey = WOStep:'*':Stage:'*':MetProp
WOMatKey = WONo:'*':CassNo WOMatKey = WONo:'*':CassNo
otParms = 'WO_MAT_QA':@RM:WOMatKey HaveLock = Database_Services('GetKeyIDLock', 'WO_MAT_QA', WOMatKey, True$)
WOMatQARec = obj_Tables('ReadRec',otParms) If HaveLock then
WOMatRec = XLATE('WO_MAT',WOMatKey,'','X') WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatKey, True$, 0, False$)
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> AllMetKeys = AllQAMetKeysStruct<1> ;* Correctly sorted list of all possible QA Met keys built from the PRS_SPEC records for all WO Steps
AllLines = AllQAMetKeysStruct<2> ;* List of position numbers for each of the met keys
AllMetKeys = AllQAMetKeysStruct<1> ;* Correctly sorted list of all possible QA Met keys built from the PRS_SPEC records for all WO Steps CurrMetKeys = ''
AllLines = AllQAMetKeysStruct<2> ;* List of position numbers for each of the met keys CurrLines = ''
cmqCnt = COUNT(WOMatQARec<WO_MAT_QA_PROFILE$>,@VM) + (WOMatQARec<WO_MAT_QA_PROFILE$> NE '')
CurrMetKeys = '' FOR M = 1 to cmqCnt
CurrLines = '' CurrMetKey = WOMatQARec<WO_MAT_QA_PROFILE$,M>[1,1]:'*':WOMatQARec<WO_MAT_QA_STAGE$,M>:'*':WOMatQARec<WO_MAT_QA_PROP$,M>
cmqCnt = COUNT(WOMatQARec<WO_MAT_QA_PROFILE$>,@VM) + (WOMatQARec<WO_MAT_QA_PROFILE$> NE '') CurrMetKeys<1,M> = CurrMetKey
FOR M = 1 to cmqCnt LOCATE CurrMetKey IN AllMetKeys USING @VM SETTING AllPos THEN
CurrMetKey = WOMatQARec<WO_MAT_QA_PROFILE$,M>[1,1]:'*':WOMatQARec<WO_MAT_QA_STAGE$,M>:'*':WOMatQARec<WO_MAT_QA_PROP$,M> CurrLines<1,M> = AllPos ;* Builds a list of CurrLines for the Met Keys on the existing WO_MAT records
CurrMetKeys<1,M> = CurrMetKey END
NEXT M
LOCATE CurrMetKey IN AllMetKeys USING @VM SETTING AllPos THEN
CurrLines<1,M> = AllPos ;* Builds a list of CurrLines for the Met Keys on the existing WO_MAT records
END
NEXT M
LOCATE NewMetKey IN AllMetKeys USING @VM SETTING SpecLine THEN
LOCATE SpecLine IN CurrLines BY 'AR' USING @VM SETTING InsertPos THEN
obj_Tables('UnlockRec',otParms)
END ELSE
CurrLines = INSERT(CurrLines,1,InsertPos,0,SpecLine)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_PROFILE$, InsertPos, 0, WOStep:MetTest)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_PROP$,InsertPos,0,MetProp)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_TOOL_CLASS$, InsertPos, 0, MetToolClass)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_STAGE$, InsertPos, 0, Stage)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_MIN$, InsertPos, 0, MetMin)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_MAX$, InsertPos, 0, MetMax)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SLOT$, InsertPos, 0, MetSlot)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_RECIPE$, InsertPos, 0, MetRecipe)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_RECIPE_PATTERN$, InsertPos, 0, MetRecipePattern)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_WFR_QTY$, InsertPos, 0, MetWfrQty)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_WFR_TYPE$, InsertPos, 0, MetWfrType)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_REACT_SCHED$, InsertPos, 0, MetReactSched)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SHIP_DOC$, InsertPos, 0, MetShipDoc)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_PHASE_MIN$, InsertPos, 0, MetPhaseMin) ; // 10/15/18 - djs - Added Phase Min Spec for HgCV
* Retrieve any existing results from the WO_MAT record
ProfileKey = WOMatQARec<WO_MAT_QA_PROFILE$, InsertPos>
LOCATE ProfileKey IN WOMatRec<WO_MAT_MET_PROFILE$> USING @VM SETTING DPos THEN
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SLOT_TEST$, InsertPos, 0, WOMatRec<WO_MAT_MET_SLOT_TEST$,DPos> )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_RESULT$, InsertPos, 0, WOMatRec<WO_MAT_MET_RESULT$,DPos> )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SIG$, InsertPos, 0, WOMatRec<WO_MAT_MET_SIG$,DPos> )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SIG_DTM$, InsertPos, 0, WOMatRec<WO_MAT_MET_SIG_DTM$,DPos> )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_STD_MAX$, InsertPos, 0, WOMatRec<WO_MAT_MET_STD_MAX$,DPos> )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_STD_RESULT$, InsertPos, 0, WOMatRec<WO_MAT_MET_STD_RESULT$,DPos> )
END ELSE
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SLOT_TEST$, InsertPos, 0, '' )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_RESULT$, InsertPos, 0, '')
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SIG$, InsertPos, 0, '' )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SIG_DTM$, InsertPos, 0, '' )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_STD_MAX$, InsertPos, 0, '' )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_STD_RESULT$, InsertPos, 0, '' )
END
otParms = FIELDSTORE(otParms,@RM,4,0,WOMatQARec)
obj_Tables('WriteRec',otParms)
END ;* End of SpecLine LOCATE
END ELSE
obj_Tables('UnlockRec',otParms)
END ;* End of NewMetKey LOCATE
LOCATE NewMetKey IN AllMetKeys USING @VM SETTING SpecLine THEN
LOCATE SpecLine IN CurrLines BY 'AR' USING @VM SETTING InsertPos ELSE
CurrLines = INSERT(CurrLines,1,InsertPos,0,SpecLine)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_PROFILE$, InsertPos, 0, WOStep:MetTest)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_PROP$,InsertPos,0,MetProp)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_TOOL_CLASS$, InsertPos, 0, MetToolClass)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_STAGE$, InsertPos, 0, Stage)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_MIN$, InsertPos, 0, MetMin)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_MAX$, InsertPos, 0, MetMax)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SLOT$, InsertPos, 0, MetSlot)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_RECIPE$, InsertPos, 0, MetRecipe)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_RECIPE_PATTERN$, InsertPos, 0, MetRecipePattern)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_WFR_QTY$, InsertPos, 0, MetWfrQty)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_WFR_TYPE$, InsertPos, 0, MetWfrType)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_REACT_SCHED$, InsertPos, 0, MetReactSched)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SHIP_DOC$, InsertPos, 0, MetShipDoc)
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_PHASE_MIN$, InsertPos, 0, MetPhaseMin) ; // 10/15/18 - djs - Added Phase Min Spec for HgCV
* Retrieve any existing results from the WO_MAT record
ProfileKey = WOMatQARec<WO_MAT_QA_PROFILE$, InsertPos>
LOCATE ProfileKey IN WOMatRec<WO_MAT_MET_PROFILE$> USING @VM SETTING DPos THEN
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SLOT_TEST$, InsertPos, 0, WOMatRec<WO_MAT_MET_SLOT_TEST$,DPos> )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_RESULT$, InsertPos, 0, WOMatRec<WO_MAT_MET_RESULT$,DPos> )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SIG$, InsertPos, 0, WOMatRec<WO_MAT_MET_SIG$,DPos> )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SIG_DTM$, InsertPos, 0, WOMatRec<WO_MAT_MET_SIG_DTM$,DPos> )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_STD_MAX$, InsertPos, 0, WOMatRec<WO_MAT_MET_STD_MAX$,DPos> )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_STD_RESULT$, InsertPos, 0, WOMatRec<WO_MAT_MET_STD_RESULT$,DPos> )
END ELSE
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SLOT_TEST$, InsertPos, 0, '' )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_RESULT$, InsertPos, 0, '')
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SIG$, InsertPos, 0, '' )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_SIG_DTM$, InsertPos, 0, '' )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_STD_MAX$, InsertPos, 0, '' )
WOMatQARec = INSERT(WOMatQARec, WO_MAT_QA_STD_RESULT$, InsertPos, 0, '' )
END
Database_Services('WriteDataRow', 'WO_MAT_QA', WOMatKey, WOMatQARec, True$, False$, False$)
If Error_Services('HasError') then
ErrorMessage = Error_Services('GetMessage')
LogData = ''
LogData<1> = LoggingDTM;//Defined at entry of subroutine
LogData<2> = WOMatKey
LogData<3> = ErrorMessage
Logging_Services('AppendLog', objLogWOMatQAWrite, LogData, @RM, @FM, False$)
end
END ;* End of SpecLine LOCATE
END
end else
LogData = ''
LogData<1> = LoggingDTM;//Defined at entry of subroutine
LogData<2> = WOMatKey
LogData<3> = 'Error getting lock on WO_MAT_QA record.'
Logging_Services('AppendLog', objLogWOMatQAWrite, LogData, @RM, @FM, False$)
end
RETURN RETURN
@ -737,3 +748,4 @@ Next I
RETURN RETURN