COMPILE ROUTINE FIX_REACT_ITEM(Dummy) ROWDEF(CHARSTR) DECLARE SUBROUTINE Send_Dyn,Send_Info,RList, Btree.Extract DECLARE FUNCTION Get_Status, Set_Printer, NextKey, obj_React_Item_Hist, obj_Reactor_Log, obj_React_Item $INSERT REACT_ITEM_EQUATES $INSERT REACT_ITEM_HIST_EQUATES $INSERT REACT_ITEMS_EQU $INSERT RLIST_EQUATES $INSERT REACTOR_LOG_EQUATES EQU REACT_SERVS_REACT_ITEM_TYPE$ TO 9 EQU TAB$ TO \09\ OPEN 'TUBE' TO TubeTable ELSE DEBUG GOTO Bail END OPEN 'REACT_ITEM' TO ReactItemTable ELSE DEBUG GOTO Bail END OPEN 'REACT_ITEM_HIST' TO ReactItemHistTable ELSE DEBUG GOTO Bail END OPEN 'REACT_GRAPHITE' TO ReactGraphiteTable ELSE DEBUG GOTO Bail END OPEN 'REACTOR_LOG' TO ReactLogTable ELSE DEBUG GOTO Bail END OPEN 'DICT.REACT_ITEM' TO DictReactItem ELSE DEBUG GOTO Bail END SELECT ReactItemTable Done = 0 LOOP READNEXT RINo ELSE Done = 1 UNTIL Done READ ReactItemRec FROM ReactItemTable,RINo THEN IF ReactItemRec = 'T' THEN SerialNo = ReactItemRec Serial = ReactItemRec IF SerialNo = '' AND Serial NE '' THEN ReactItemRec = Serial *WRITE ReactItemRec ON ReactITemTable,RINo THEN Send_Dyn(RINo:' ':ReactItemRec:' -> ':ReactItemRec) *END END END ;* End of check for Tube records END ;* End of item read REPEAT GOTO Bail * * * * * * * * * * * * * * * RITypes = 'A':@FM:'G':@FM:'R':@FM:'RU':@FM:'RL':@FM:'S':@FM:'T':@FM:'W' DEBUG FOR I = 1 TO 8 RIType = RITypes FOR ReactNo = 20 TO 79 HistKeys = obj_React_Item_Hist('GetHistory',ReactNo:@RM:@RM:RIType) HistCnt = COUNT(HistKeys,@VM) + (HistKeys NE '') IF HistCnt > 1 THEN OPEN 'REACT_ITEM_HIST' TO ReactItemHistTable ELSE ErrorMsg = 'Unable to OPEN "REACT_ITEM_HIST" for updates.' RETURN END FOR N = 2 TO HistCnt HistKey = HistKeys<1,N> PrevHistKey = HistKeys<1,N-1> READ HistRec FROM ReactItemHistTable,HistKey THEN READ PrevHistRec FROM ReactItemHistTable,PrevHistKey THEN *IF HistRec = '' THEN HistRec = FIELD(PrevHistKey,'*',3) HistRec = PrevHistRec HistRec = PrevHistRec HistRec = PrevHistRec HistRec = '' *WRITE HistRec ON ReactItemHistTable,HistKey THEN NULL *Send_Dyn('Closed: ':HistKey:' ':HistRec) *END *END END ;* End of Closing History Record END ;* End of History Record Read NEXT N ;* End of loop through History keys END ;* End of check for HistCnt > 1 NEXT ReactNo NEXT I GOTO Bail ******* This data from the ReactorLog table ***** SELECT ReactLogTable Done = 0 RecCnt = 0 FixCnt = 0 SerialNos = '' RINos = '' NextRINo = 22090 CutOffDt = ICONV('12/31/2008','D') DummyKey = 100 LOOP READNEXT ReactLogNo ELSE Done = 1 UNTIL Done RecCnt += 1 READ ReactLogRec FROM ReactLogTable,ReactLogNo THEN IF ReactLogRec > CutOffDt THEN ReactNo = ReactLogRec EndDt = OCONV(ReactLogRec,'D4/') EndTm = OCONV(ReactLogRec,'MTS') InstDtm = ICONV(EndDt:' ':EndTm,'DT') ReactItemIDs = ReactLogRec testReactItemIDs = ReactItemIDs CONVERT @VM TO '' IN testReactItemIDs IF testReactItemIDs NE '' THEN siCnt = COUNT(ReactItemIDs,@VM) + (ReactItemIDs NE '') FOR I = 1 TO siCnt IF ReactItemIDs<1,I> NE '' THEN OrgSerialNo = ReactItemIDs<1,I> SerialNo = OrgSerialNo IF SerialNo[1,1] = '#' THEN SWAP '#' WITH 'No.' IN SerialNo END SearchString = 'SERIAL':@VM:SerialNo:@FM Option = '' Flag = '' Btree.Extract(SearchString,'REACT_ITEM',DictReactItem,RINo,Option,Flag) IF INDEX(RINo,@VM,1) THEN *DEBUG Send_Dyn(SerialNo -> RINo) END IF RINo = '' THEN /* ReactItemsRec = XLATE('REACT_ITEMS',OrgSerialNo,'','X') IF ReactItemsRec = '' THEN Send_Dyn('RLNo: ':ReactLogNo:' Bad Serial No: ':SerialNo) ;* Junk data in REACTOR_LOG field END ELSE Send_Dyn('Serial: ':SerialNo:' -> ':ReactItemsRec) LOCATE SerialNo IN SerialNos BY 'AR' USING @VM SETTING SPos THEN * Add History RINo = RINos<1,SPos> Send_Dyn(SerialNo:' <-> ':RINo) END ELSE SerialNos = INSERT(SerialNos,1,SPos,0,SerialNo) *RINo = NextRINo ;******************************************************** *NextRINo += 1 ;******************************************************** RINo = NextKey('REACT_ITEM') RINos = INSERT(RINos,1,SPos,0,RINo) ItemType = ReactItemsRec ReactItemRec = '' ReactItemRec = SerialNo ReactItemRec = ReactItemsRec ReactItemRec = ReactItemsRec ReactItemRec = ICONV(OCONV(ReactItemsRec,'D4/'):' 00:12:00','DT') ReactItemRec = ReactItemsRec RetireDt = ReactItemsRec IF RetireDt NE '' THEN ReactItemRec = 'BRYCE_BARB' END ReactItemRec = RetireDt WRITE ReactItemRec ON ReactItemTable,RINo THEN Send_Dyn('Serial: ':SerialNo:' -> ':RINo:' / ':ReactItemRec) END END ;* End of check for existing Serial No END */ END ELSE RIHKey = ReactNo:'*':RINo:'*':InstDTM READ ReactItemHistRec FROM ReactItemHistTable,RIHKey ELSE ReactHistRec = '' ReactHistRec = ReactLogNo ReactHistRec = ReactLogRec ReactHistRec = ReactLogRec FixCnt += 1 WRITE ReactHistRec ON ReactItemHistTable,RIHKey THEN Send_Dyn(FixCnt:' ':RIHKey) END END END END NEXT I END END ;* End of check for EntryDate END ;* End of ReactLogRec Read Send_Info(RecCnt:" - ":FixCnt) REPEAT GOTO Bail GOTO Bail * * * * ****************************************************** FOR ReactNo = 20 TO 74 RIType = 'W' HistKeys = obj_React_Item_Hist('GetHistory',ReactNo:@RM:@RM:RIType) HistCnt = COUNT(HistKeys,@VM) + (HistKeys NE '') IF HistCnt > 1 THEN FOR N = 2 TO HistCnt HistKey = HistKeys<1,N> PrevHistKey = HistKeys<1,N-1> READ HistRec FROM ReactItemHistTable,HistKey THEN READ PrevHistRec FROM ReactItemHistTable,PrevHistKey THEN HistRec = FIELD(PrevHistKey,'*',3) HistRec = PrevHistRec HistRec = PrevHistRec HistRec = PrevHistRec HistRec = '' *WRITE HistRec ON ReactItemHistTable,HistKey THEN Send_Dyn(ReactNo:' Closed: ':HistKey:' ':HistRec) *END END ;* End of Closing History Record END ;* End of History Record Read NEXT N ;* End of loop through History keys END ;* End of check for HistCnt > 1 NEXT ReactNo GOTO Bail GOTO Bail ************************************ SELECT ReactGraphiteTable Done = 0 RecCnt = 0 LOOP READNEXT RGKey ELSE Done = 1 UNTIL Done READ RGRec FROM ReactGraphiteTable,RGKey THEN ReactNo = RGKey[1,'*'] GRType = RGKey[COL2()+1,'*'] ;* Not used in REACT_HIST_EQUATES InstDTM = RGKey[COL2()+1,'*'] RINo = RGRec RIHKey = ReactNo:'*':RINo:'*':InstDTM RIHRec = '' RIHRec = RGRec RIHRec = RGRec RIHRec = RGRec RIHRec = RGRec RIHRec = RGRec RIHRec = RGRec RIHRec = RGRec RIHRec = '' *WRITE RIHRec ON ReactItemHistTable,RIHKey THEN RecCnt += 1 Send_Info(RecCnt) *END END ;* End of RGRecord read REPEAT * * * * * * * Bail: * * * * * * * END