COMPILE ROUTINE TEST_OBJ_WO_REACT(Dummy) ROWDEF(CHARSTR) DECLARE SUBROUTINE Set_Status, Send_Info, Send_Dyn, ErrMsg, obj_WO_React, obj_WO_Mat_QA,Rlist DECLARE FUNCTION Get_Status,obj_WO_Log, Send_Dyn, obj_WO_Mat, obj_Tables, obj_WO_React,Collect.IXVals $INSERT WO_REACT_EQUATES $INSERT RDS_EQUATES $INSERT WO_LOG_EQUATES EQU TARGET_ACTIVELIST$ TO 5 OPEN 'WO_REACT' TO WOReactTable ELSE DEBUG GOTO Bail END OPEN 'WO_MAT_QA' TO WOMatQATable ELSE DEBUG GOTO Bail END WONo = 159870 SelectSent = 'SELECT WO_MAT WITH MET_PROFILE NE "" BY WO_NO' RList(SelectSent,TARGET_ACTIVELIST$) IF Get_Status(errCode) THEN DEBUG GOTO Bail END ExistWONos = Collect.IXVals('WO_MAT_QA','WO_NO') Done = 0 RecCnt = 1 WONos = '' WOCnt = 0 LOOP READNEXT WOMatKey ELSE Done = 1 UNTIL Done WONo = WOMatKey[1,'*'] LOCATE WONo IN WONos BY 'DR' USING @VM SETTING Pos ELSE LOCATE WONo IN ExistWONos USING @FM SETTING EPos ELSE * Not in WONos and not in ExistWONos -> OK to add to list WONos = INSERT(WONos,1,Pos,0,WONo) WOCnt += 1 END END RecCnt += 1 Send_Info(RecCnt:' ':WONo) REPEAT cntWO = COUNT(WONos,@VM) + (WONos NE '') DEBUG FOR N = 1 TO cntWO WONo = WONos<1,N> Send_Info(N:' ':WONo) * * * Clear the WO_REACT records for this WO * * * RList('SELECT WO_REACT WITH WO_NO ':QUOTE(WONo),TARGET_ACTIVELIST$) Done = 0 RecCnt = 0 LOOP READNEXT WOReactKey ELSE Done = 1 UNTIL Done READ WOReactRec FROM WOReactTable,WOReactKey THEN DELETE WOReactTable,WOReactKey THEN Send_Dyn('Cleared WO_React: ':WOReactKey) END END ;* End of WOReactRec read REPEAT * * * Clear the WO_MAT_QA records for this WO * * * RList('SELECT WO_MAT_QA WITH WO_NO ':QUOTE(WONo),TARGET_ACTIVELIST$) Done = 0 RecCnt = 0 LOOP READNEXT WOMatQAKey ELSE Done = 1 UNTIL Done READ WOMatQARec FROM WOMatQATable,WOMatQAKey THEN DELETE WOMatQATable,WOMatQAKey THEN Send_Dyn('Cleared WO_Mat_QA: ':WOMatQAKey) END END ;* End of WOReactRec read REPEAT * * * Rebuild WO scheduled WO_Mat_QA records * * * WOMatKeys = XLATE('WO_LOG',WONo,WO_LOG_WO_MAT_KEY$,'X') womCnt = COUNT(WOMatKeys,@VM) + (WOMatKeys NE '') FOR I = 1 TO womCnt WOMatKey = WOMatKeys<1,I> CassNo = WOMatKey[-1,'B*'] Send_Dyn('Build QAMet ':WOMatKey:' ':WOMatKey) obj_WO_Mat_QA('Create',WONo:@RM:CassNo) IF Get_Status(errCode) THEN DEBUG END NEXT I RList('SELECT RDS WITH WO ':QUOTE(WONo):' BY CASS_NO',TARGET_ACTIVELIST$) Done = 0 RecCnt = 0 LOOP READNEXT RDSNo ELSE Done = 1 UNTIL Done RDSRec = XLATE('RDS',RDSNo,'','X') StepNo = 1 ReactNo = RDSRec CassNo = RDSRec IF ReactNo NE '' THEN Send_Dyn(WONo:' ':StepNo:' ':ReactNo:' ':RDSNo:' ':CassNo) owmParms = WONo:@RM:StepNo:@RM:ReactNo:@RM:RDSNo:@RM:CassNo Log = obj_WO_React('AddRdsNo',owmParms) IF Get_Status(errCode) THEN DEBUG ErrMsg(errCode) END END REPEAT NEXT N GOTO Bail * * * * * * * * * * * * * * * * * * * * * * * * * * * * Bail: * * * * * * * END /* * * * Clear the WO_REACT records for this WO * * * RList('SELECT WO_REACT WITH WO_NO ':QUOTE(WONo),TARGET_ACTIVELIST$) Done = 0 RecCnt = 0 LOOP READNEXT WOReactKey ELSE Done = 1 UNTIL Done READ WOReactRec FROM WOReactTable,WOReactKey THEN DELETE WOReactTable,WOReactKey THEN Send_Dyn('Cleared WO_React: ':WOReactKey) END END ;* End of WOReactRec read REPEAT * * * Clear the WO_MAT_QA records for this WO * * * RList('SELECT WO_MAT_QA WITH WO_NO ':QUOTE(WONo),TARGET_ACTIVELIST$) Done = 0 RecCnt = 0 LOOP READNEXT WOMatQAKey ELSE Done = 1 UNTIL Done READ WOMatQARec FROM WOMatQATable,WOMatQAKey THEN DELETE WOMatQATable,WOMatQAKey THEN Send_Dyn('Cleared WO_Mat_QA: ':WOMatQAKey) END END ;* End of WOReactRec read REPEAT */