open-insight/LSL2/STPROC/JONATHAN_TEST.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

790 lines
23 KiB
Plaintext

Compile subroutine Jonathan_Test(VOID)
#pragma precomp SRP_PreCompiler
Declare Function Database_Services, Location_Services, Nextkey, Obj_Rds ,obj_WO_Mat
Declare subroutine Copy_Record_To_SQL, Delete_Record_From_SQL, Msg, Btree.Extract, POPUP, Database_Services, SRP_Run_Command, Msg, Psn_Services, Errmsg, Scrape_Services
Declare function GetTickCount, Dialog_Box, Obj_Override_Log, Btree.Extract, POPUP, GetCommandLine, Error_Services, Database_Services, Get_Repos_Entities, SRP_DATETIME, DateTime
$Insert OVERRIDE_LOG_EQUATES
$Insert POPUP_EQUATES
$INSERT LOGICAL
$Insert MSG_EQUATES
$Insert REACT_STATUS_EQUATES
$insert APP_INSERTS
$Insert REACTOR_EQUATES
Debug
KeyList = Xlate('SYSLISTS', 'TEST_JONATHAN_REACT_EVENT', '', 'X')
Counter = 0
Def = ""
Def<MCAPTION$> = "Pushing REACT_EVENT data..."
Def<MTYPE$ > = "GC"
Def<MEXTENT$ > = DCount(KeyList, @FM)
Def<MTEXTWIDTH$> = 800
MsgUp = Msg(@window, Def)
For each Key in KeyList using @FM
Counter += 1
Msg(@window, MsgUp, Counter, MSGINSTUPDATE$)
Copy_Record_To_Sql('REACT_EVENT', Key, 1)
Next Key
Msg(@window, MsgUp)
Debug
Scrape_Services('CopyRecordsToScrapeDB')
Debug
Copy_Record_To_SQL('REACT_MODE_NG', '32*20123.2284722222', 1)
Debug
RDSNo = 571843
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
PSNo = RDSRec<114>
SpecialInst = XLATE('PROD_SPEC', PSNo, 10, 'X')
RDSRec<31> = SpecialInst
Database_Services('WriteDataRow', 'RDS', RDSNo, RDSRec)
Debug
sqlErrorLog = Database_Services('ReadDataRow', 'SQL_ERROR', '2023-01-26')
Def = ""
Def<MCAPTION$> = "Exporting Records..."
Def<MTYPE$ > = "GC"
Def<MEXTENT$> = DCount(sqlErrorLog, @FM)
Def<MTEXTWIDTH$> = 400
MsgUp = Msg(@WINDOW, Def) ;* Put up the gas gauge
for each error in sqlErrorLog using @FM setting ePos
table = error<1,1>
recordID = error<1,2>
Copy_Record_To_SQL(table, recordID, 1)
Void = Msg(@WINDOW, MsgUp, ePos, MSGINSTUPDATE$)
Next error
Msg(@WINDOW, MsgUp) ;* take down the gauge
Debug
Copy_Record_To_SQL('RDS', 501323, 1)
Debug
test = Nextkey('REACTOR_LOG')
debug
currKey = Nextkey('REACTOR_LOG')
for i = currKey to 100000
Database_Services('DeleteDataRow', 'REACTOR_LOG', i)
Next i
* for i = 41436 to 60000
* Database_Services('DeleteDataRow', 'REACTOR_LOG', i)
* Next i
Debug
misLoadedReacts = ''
for i = 0 to 99
loadedReactCass = Xlate('REACT_STATUS', i, 6, 'X')
locate '1' in loadedReactCass using @VM setting iPos then
misLoadedReacts<-1> = i
end
Next i
Debug
WOMatRecord = XLATE('WO_MAT', '171663*72', '', 'X')
curWfrCt = obj_WO_Mat('CurrWaferCnt','171663*72':@RM:WOMatRecord)
Debug
RDSRecord = XLATE('RDS', 563192, '', 'X')
curWfrCt = obj_rds('WafersOut',563192:@RM:RDSRecord)
debug
reactorRec = Database_Services('ReadDataRow', 'REACTOR', 28)
reactLLDis = reactorRec<REACTOR_ACTIVE_LL_DISABLED$>
Debug
woNo = 171524
for i = 9 to 39
woMatKey = woNo : '*' : i
WoMatRec = Database_Services('ReadDataRow', 'WO_MAT', woMatKey)
WoMatRec<47> = 1
Database_Services('WriteDataRow', 'WO_MAT', woMatKey, WoMatRec)
Next i
Debug
Date = SRP_DateTime("Date", DateTime())
Time = SRP_DateTime("Time", Datetime())
19721
iDate = OConv(Date, 'D4/H')
iTime = OConv(Time, 'MTS')
Debug
for i = 41436 to 60000
Database_Services('DeleteDataRow', 'REACTOR_LOG', i)
Next i
Debug
RDSNo = '544261'
WOMatKey = '171461*4'
PSN_Services('UpdateRDSMetrologyLimits', RDSNo)
PSN_Services('UpdateAllQAMetrologyLimits', WOMatKey)
debug
RDSNo = NextKey('RDS')
// Delete old instance of this RDS if it exists ------------------------------------------------------------------------
If RowExists('RDS', RDSNo) then
Database_Services('DeleteDataRow', 'RDS', RDSNo, True$, False$)
If Error_Services('NoError') then
Results = 'RDS ' : RDSNo : ' deleted'
end else
Results = 'RDS ' : RDSNo : ' not deleted. Error : ' : Error_Services('GetMessage')
end
end
// ---------------------------------------------------------------------------------------------------------------------
// Delete related RDS_LAYER records ------------------------------------------------------------------------------------
Layers = 'L1,L2,2'
For each Layer in Layers using ','
RDSLayerKey = RDSNo:'*':Layer
If RowExists('RDS_LAYER', RDSLayerKey) then
// Look for related RDS_TEST records and delete them first
RDSTestKeys = Xlate('RDS_LAYER', RDSLayerKey, 'RDS_TEST_KEYS', 'X')
If RDSTestKeys NE '' then
For each RDSTestKey in RDSTestKeys using @VM setting vPos
// Look for related TW_USE records and delete them first
TWKeys = Xlate('RDS_TEST', RDSTestKey, 'TW_USE_ID', 'X')
If TWKeys NE '' then
For each TWKey in TWKeys using @VM setting vPos
Database_Services('DeleteDataRow', 'TW_USE', TWKey, True$, True$)
Next TWKey
end
Database_Services('DeleteDataRow', 'RDS_TEST', RDSTestKey, True$, True$)
Next RDSTestKey
end
Database_Services('DeleteDataRow', 'RDS_LAYER', RDSLayerKey, True$, False$)
If Error_Services('NoError') then
Results = 'RDS_LAYER ' : RDSLayerKey : ' deleted'
end else
Results = 'RDS_LAYER ' : RDSLayerKey : ' not deleted. Error : ' : Error_Services('GetMessage')
end
end
Next Layer
// ---------------------------------------------------------------------------------------------------------------------
// Delete old REACT_RUN record if it exists ----------------------------------------------------------------------------
If RowExists('REACT_RUN', RDSNo) then
// Delete old CLEAN_INSP record(s) if they exist
CIKeys = Xlate('REACT_RUN', RDSNo, 'CI_NO', 'X')
For each CIKey in CIKeys using @VM setting vPos
If RowExists('CLEAN_INSP', CIKey) then
Database_Services('DeleteDataRow', 'CLEAN_INSP', CIKey, True$, False$)
If Error_Services('NoError') then
Results = 'CLEAN_INSP ' : CIKey : ' deleted'
end else
Results = 'CLEAN_INSP ' : CIKey : ' not deleted. Error : ' : Error_Services('GetMessage')
end
end
Next CIKey
Database_Services('DeleteDataRow', 'REACT_RUN', RDSNo, True$, False$)
If Error_Services('NoError') then
Results = 'REACT_RUN ' : RDSNo : ' deleted'
end else
Results = 'REACT_RUN ' : RDSNo : ' not deleted. Error : ' : Error_Services('GetMessage')
end
end
// ---------------------------------------------------------------------------------------------------------------------
return
debug
WONo = 171295
For CassNo = 8 to 38
WOMatQAKey = WONo:'*':CassNo
//PSN_Services('UpdateQAMetrologyLimits', WOMatQAKey, 'QA', '1ADE', 'L')
PSN_Services('UpdateAllQAMetrologyLimits', WOMatQAKey)
If Error_Services('HasError') then ErrMsg(Error_Services('GetMessage'))
Next CassNo
return
* ReportList = ''
* List = Get_Repos_Entities('LSL2', 'OIWIN', '', False$)
* For each Row in List using @FM setting fPos
* ReportList<fPos> = Field(Row, '*', 4)
* Next Row
*
* LastLaunch = 0
* FormCounts = ''
* EOF = False$
* Open 'FORM_METRICS' to hTable then
* Select hTable
* Loop
* Readnext Key else EOF = True$
* Until EOF
* FormName = Field(Key, '*', 1)
* Locate FormName in ReportList using @FM setting fPos then
* FormCounts<fPos> = FormCounts<fPos> + 1
* end
* Repeat
* end
*
* NumForms = DCount(ReportList, @FM)
* For FormIndex = 1 to NumForms
* FormCount = FormCounts<FormIndex>
* If FormCount EQ '' then FormCount = 0
* ReportList<FormIndex, 2> = FormCount
* Next FormIndex
*
* ReportList = Insert(ReportList, 1, 0, 0, 'Form Name':@VM:'Launch Count')
* Swap @VM with ',' in ReportList
* Swap @FM with CRLF$ in ReportList
* OSWrite ReportList on 'D:\FITemp\FormCounts.csv'
*
*
*
*
* Debug
* WONo = '171151'
*
* CRLocs = ''
* CRLocs<0, -1> = 'CR*PLACE'
* CRLocs<0, -1> = 'CR*BE'
* CRLocs<0, -1> = 'CR*BO'
* CRLocs<0, -1> = 'CR*TUN'
* CRLocs<0, -1> = 'CR*EPR'
* CRLocs<0, -1> = 'CR*FE'
* CRLocs<0, -1> = 'CR*FEH'
* CRLocs<0, -1> = 'CR*FO'
* CRLocs<0, -1> = 'CR*FOH'
* LoadedData = Location_Services('GetLocationCassInfoRlist', WONo, CRLocs)
*
*
* Debug
* problemreactors = ''
* for i = 1 to 80
* childkeys = XLATE('REACTOR_CHILD_KEY_IDS_NG', i, 1,'X')
* if DCOUNT(childkeys, @VM) GT 1 then
* problemreactors<i, 1> = i
* problemreactors<i, 2> = DCOUNT(childkeys, @VM)
* end
* Next i
* debug
*
* maintenanceMembers = XLATE('SEC_GROUPS', 'MAINTENANCE', 4, 'X')
* memberList = ''
* for each member in maintenanceMembers using @VM
* lslUserRecord = XLATE('LSL_USERS', member, '','X')
* memberName = lslUserRecord<1> : ' ' : lslUserRecord<2>
* memberActive = lslUserRecord<10>
* memberList<-1> = member : @VM : memberName : @VM : memberActive : @VM
* Next member
*
* Database_Services('WriteDataRow', 'SYSLISTS', 'JONATHAN_MEMBER_LIST', memberList)
*
* activeUsers = ''
*
* for each user in memberList using @FM
* if user<1,3> EQ 1 then
* activeUsers<-1> = user
* end
*
* Next user
* //EQU CRLF$ TO \0D0A\
*
* swap @FM with CRLF$ in activeUsers
* swap @VM with ',' in activeUsers
*
* filename = 'C:\users\ecouellette\activeusers.csv'
* OSWrite activeUsers To filename
*
*
* debug
* Debug
* TEST = @USER4
*
* Debug
* OutOfProdDTM = Xlate('REACT_STATUS','57',REACT_STATUS_OUT_OF_PROD_DTM$,'X')
* CurrModeKey = XLATE('REACTOR','57','CURR_MODE_KEY','X')<1,1> ;* This should never be an MV but during implementation it is having some issues
* CurrModeStartDTM = FIELD(CurrModeKey,'*',2)
*
* debug
* test = Xlate('RDS', '402211', 'PARAM_OUT_OF_SPEC', 'X')
* Locate True$ in test using @VM setting kpos then
* null
* end
* Debug
* SchedTool = Xlate('RDS', '463935', 'SCHED_REACTOR', 'X')
*
* debug
* Table = 'WO_MAT'
* ID = '169858*87'
* Copy_Record_To_SQL(Table, ID, 1)
* debug
* WOMatKeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'JONATHAN_FT_PUSH')
* NumWOMatKeys = DCount(WOMatKeyList, @FM)
*
* Def = ""
* Def<MCAPTION$> = "Updating WO_MAT..."
* Def<MTYPE$> = "GC"
* Def<MEXTENT$> = NumWOMatKeys
* Def<MTEXTWIDTH$> = 600
* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message
* Table = 'WO_MAT'
* WOMatKeyListIndex = 1
* NewWOMatKeyList = WOMatKeyList
* Loop
* ID = WOMatKeyList<WOMatKeyListIndex>
* Copy_Record_To_SQL(Table, ID, 1)
* NewWOMatKeyList = Delete(NewWOMatKeyList, 1, 0, 0)
* WOMatKeyListIndex += 1
* Database_Services('WriteDataRow', 'SYSLISTS', 'JONATHAN_FT_PUSH', NewWOMatKeyList)
* Running = Msg(@WINDOW, MsgUp, WOMatKeyListIndex, MSGINSTUPDATE$) ;* Update message
* Until WOMatKeyListIndex GE NumWOMatKeys
* Repeat
* debug
* Msg(@WINDOW,MsgUp) ;* Take message down
*
*
*
* Debug
* Table = 'WO_MAT'
* ID = '169277*4'
* Copy_Record_To_SQL(Table, ID, 1)
* Debug
*
* RecordList = Xlate('SYSLISTS', 'JONATHAN_HOLDS', '', 'X')
* Table = 'WO_MAT'
* for i = 13300 to DCount(RecordList, @FM)
* ID = RecordList<i>
* HoldDTM = Xlate('WO_MAT', ID, 35, 'X')
*
* IF HoldDTM GE 19302 then
* Copy_Record_To_SQL(Table, ID, 1)
* end
* NEXT i
*
* Debug
* Table = 'WO_MAT'
* ID = '167691*32'
*
* Copy_Record_To_SQL(Table, ID, 1)
*
*
* end
*
* Table = 'WO_MAT'
* ID = RecordList<i>
* CountToCopy += 1
*
* end
*
*
*
* Next i
* debug
*
*
* //Command = ('explorer "https://google.com"')
*
* //SRP_Run_Command(Command)
*
* midnight = 00000;//
* one = 03600;//1am
* two = 07200;//2am
* three = 10800;//3am
* four = 14400;//4am
* five = 18000;//5am
* six = 21600;//6am
* seven = 25200;//7am
* eight = 28800;//8am
* nine = 32400;//9am
* ten = 36000;//10am
* eleven = 39600;//11am
* twelve = 43200;//12pm
* thirteen = 46800;//1pm
* fourteen = 50400;//2pm
* fifteen = 54000;//3pm
* sixteen = 57600;//4pm
* seventeen = 61200;//5pm
* eightteen = 64800;//6pm
* nineteen = 68400;//7pm
* twenty = 72000;//8pm
* twentyOne = 75600;//9pm
* twentyTwo = 79200;//10pm
* twentyThree = 82800;//11pm
* twentyFour = 86399;//11:59PM
* debug
* hourlyOuts = ''
* hourlyOuts<1> = 0
* hourlyOuts<2> = 0
* hourlyOuts<3> = 0
* hourlyOuts<4> = 0
* hourlyOuts<5> = 0
* hourlyOuts<6> = 0
* hourlyOuts<7> = 0
* hourlyOuts<8> = 0
* hourlyOuts<9> = 0
* hourlyOuts<10> = 0
* hourlyOuts<11> = 0
* hourlyOuts<12> = 0
* hourlyOuts<13> = 0
* hourlyOuts<14> = 0
* hourlyOuts<15> = 0
* hourlyOuts<16> = 0
* hourlyOuts<17> = 0
* hourlyOuts<18> = 0
* hourlyOuts<19> = 0
* hourlyOuts<20> = 0
* hourlyOuts<21> = 0
* hourlyOuts<22> = 0
* hourlyOuts<23> = 0
* hourlyOuts<24> = 0
*
* RDSOuts = ''
*
*
* oneOuts = 0
* twoOuts = 0
* threeOuts = 0
* fourOuts = 0
* fiveOuts = 0
* sixOuts = 0
* sevenOuts = 0
* eightOuts = 0
* nineOuts = 0
* tenOuts = 0
* elevenOuts = 0
* twelveOuts = 0
* thirteenOuts = 0
* fourteenOuts = 0
* fifteenOuts = 0
* sixteenOuts = 0
* seventeenOuts = 0
* eightteenOuts = 0
* nineteenOuts = 0
* twentyOuts = 0
* twentyOneOuts = 0
* twentyTwoOuts = 0
* twentyThreeOuts = 0
*
* Outs = 0
* OutsList = XLATE('SYSLISTS', 'TEST_JONATHAN', '', 'X')
* TotalOuts = 0
* for i = 2 to DCOUNT(OutsList, @FM)
* RDSRec = OutsList<i,1>
* WafersOut = XLATE('RDS',RDSRec, 'WAFERS_IN', 'X')
* TimeOut = XLATE('RDS',RDSRec,38,'X')
*
* if TimeOut GE midnight AND TimeOut LT one then
* hourlyOuts<1,1> = hourlyOuts<1> + WafersOut
* RDSOuts<1,-1> = RDSRec
* end
* if TimeOut GE one AND TimeOut LT two then
* hourlyOuts<2> = hourlyOuts<2> + WafersOut
* RDSOuts<2,-1> = RDSRec
* end
* if TimeOut GE two AND TimeOut LT three then
* hourlyOuts<3> = hourlyOuts<3> + WafersOut
* RDSOuts<3,-1> = RDSRec
* end
* if TimeOut GE three AND TimeOut LT four then
* hourlyOuts<4> = hourlyOuts<4> + WafersOut
* RDSOuts<4,-1> = RDSRec
* end
* if TimeOut GE four AND TimeOut LT five then
* hourlyOuts<5> = hourlyOuts<5> + WafersOut
* RDSOuts<5,-1> = RDSRec
* end
* if TimeOut GE five AND TimeOut LT six then
* hourlyOuts<6> = hourlyOuts<6> + WafersOut
* RDSOuts<6,-1> = RDSRec
* end
* if TimeOut GE six AND TimeOut LT seven then
* hourlyOuts<7> = hourlyOuts<7> + WafersOut
* RDSOuts<7,-1> = RDSRec
* end
* if TimeOut GE seven AND TimeOut LT eight then
* hourlyOuts<8> = hourlyOuts<8> + WafersOut
* RDSOuts<8,-1> = RDSRec
* end
* if TimeOut GE eight AND TimeOut LT nine then
* hourlyOuts<9> = hourlyOuts<9> + WafersOut
* RDSOuts<9,-1> = RDSRec
* end
* if TimeOut GE nine AND TimeOut LT ten then
* hourlyOuts<10> = hourlyOuts<10> + WafersOut
* RDSOuts<10,-1> = RDSRec
* end
* if TimeOut GE ten AND TimeOut LT eleven then
* hourlyOuts<11> = hourlyOuts<11> + WafersOut
* RDSOuts<11,-1> = RDSRec
* end
* if TimeOut GE eleven AND TimeOut LT twelve then
* hourlyOuts<12> = hourlyOuts<12> + WafersOut
* RDSOuts<12,-1> = RDSRec
* end
* if TimeOut GE twelve AND TimeOut LT thirteen then
* hourlyOuts<13> = hourlyOuts<13> + WafersOut
* RDSOuts<13,-1> = RDSRec
* end
* if TimeOut GE thirteen AND TimeOut LT fourteen then
* hourlyOuts<14> = hourlyOuts<14> + WafersOut
* RDSOuts<14,-1> = RDSRec
* end
* if TimeOut GE fourteen AND TimeOut LT fifteen then
* hourlyOuts<15> = hourlyOuts<15> + WafersOut
* RDSOuts<15,-1> = RDSRec
* end
* if TimeOut GE fifteen AND TimeOut LT sixteen then
* hourlyOuts<16> = hourlyOuts<16> + WafersOut
* RDSOuts<16,-1> = RDSRec
* end
* if TimeOut GE sixteen AND TimeOut LT seventeen then
* hourlyOuts<17> = hourlyOuts<17> + WafersOut
* RDSOuts<17,-1> = RDSRec
* end
* if TimeOut GE seventeen AND TimeOut LT eightteen then
* hourlyOuts<18> = hourlyOuts<18> + WafersOut
* RDSOuts<18,-1> = RDSRec
* end
* if TimeOut GE eightteen AND TimeOut LT nineteen then
* hourlyOuts<19> = hourlyOuts<19> + WafersOut
* RDSOuts<19,-1> = RDSRec
* end
* if TimeOut GE nineteen AND TimeOut LT twenty then
* hourlyOuts<20> = hourlyOuts<20> + WafersOut
* RDSOuts<20,-1> = RDSRec
* end
* if TimeOut GE twenty AND TimeOut LT twentyOne then
* hourlyOuts<21> = hourlyOuts<21> + WafersOut
* RDSOuts<21,-1> = RDSRec
* end
* if TimeOut GE twentyOne AND TimeOut LT twentyTwo then
* hourlyOuts<22> = hourlyOuts<22> + WafersOut
* RDSOuts<22,-1> = RDSRec
* end
* if TimeOut GE twentyTwo AND TimeOut LT twentyThree then
* hourlyOuts<23> = hourlyOuts<23> + WafersOut
* RDSOuts<23,-1> = RDSRec
* end
* if TimeOut GE twentyThree AND TimeOut LE twentyFour then
* hourlyOuts<24> = hourlyOuts<24> + WafersOut
* RDSOuts<24,-1> = RDSRec
* end
*
*
* TotalOuts = TotalOuts + WafersOut
*
* Next i
*
*
*
* equ crlf$ to \0D0A\
* equ tab$ to char(09)
* equ comma$ to char(44)
* equ space$ to char(32)
* equ record$ to char(00)
* equ scolon$ to char(59)
*
*
* hourlyOutsFile = 'C:\Users\ECOUELLETTE\DESKTOP\HourlyOuts.csv'
*
* OSOpen hourlyOutsFile To hOutsFile then
*
* lastByte = 0
*
* hourLine = hourlyOuts
* //swap @FM with ',' in hourLine
* lineToWrite = hourLine: CRLF$
* OSBWrite lineToWrite On hOutsFile At lastByte
* lastByte = lastByte + Len(lineToWrite)
* osclose hOutsFile
* end
*
*
* RDShourlyOutsFile = 'C:\Users\ECOUELLETTE\DESKTOP\RDSHourlyOuts.csv'
* lastByte = 0
* OSOpen RDShourlyOutsFile To hRDSOutsFile then
* for i = 1 to 24
* RDSLine = RDSOuts<i>
* swap @VM with ',' in RDSLine
* RDSLine = RDSLine : CRLF$
* OSBWrite RDSLine On hRDSOutsFile At lastByte
* lastByte = lastByte + Len(RDSLine)
* Next i
* osclose hRDSOutsFile
* end
*
*
* Debug
*
* SearchString = 'GROUPS' : @VM: 'LEAD':@VM:'SUPERVISOR':@VM:'ENGINEER':@VM:'ENG_TECH' : @FM
* Table = 'LSL_USERS'
* DictVar = Database_Services('GetTableHandle', 'DICT.LSL_USERS')
* Btree.Extract(SearchString, Table, DictVar, Keys, '', Flag)
*
* Debug
*
* TempList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL')
* // Chomp info line
* TempList = Delete(TempList, 1, 0, 0)
* For each KeyID in TempList using @FM
* Record = Database_Services('ReadDataRow', 'RUN_STAGE_WFR', KeyID)
* Database_Services('WriteDataRow', 'RUN_STAGE_WFR', KeyID, Record, True$, False$, True$)
* Next KeyID
*
*
* debug
* search_criteria = 'KEY':@VM:'60'@FM
* table = 'OVERRIDE_LOG'
*
* Open "DICT ":table To @DICT Else
* RetVal = Set_FSError()
* Return
* End
* keylist = ''
* option = ''
* flag = ''
* Btree.Extract(search_criteria, table, @DICT, keylist, option, flag)
*
*
* RowCnt = COUNT(keylist,@VM)
*
* FOR I = 1 TO RowCnt
* Display<1,I,1> = SigData<1,I>
* Display<1,I,2> = SigData<2,I>
* Display<1,I,3> = SigData<3,I>
* Display<1,I,4> = SigData<4,I>
* NEXT I
*
* TypeOver = ''
* TypeOver<PDISPLAY$> = Display
*
* RDSOverrides = ''
* display = ''
* debug
* RDSTestRec = '8':@VM:'5'
* Display = ''
* overriderec = ''
*i = 1
* For Each orKey in RDSTestRec using @VM
* overriderec = Xlate('OVERRIDE_LOG', orKey, '', 'X')
* Display<1,I,1> = overriderec<3>
* Display<1,I,2> = overriderec<4>
* Display<1,I,3> = overriderec<5>
* Display<1,I,4> = overriderec<6>
* i = i + 1
* Next OverRideRec
*
* TypeOver = ''
* TypeOver<PDISPLAY$> = Display
* void = Popup(@WINDOW,TypeOver,'OVERRIDES')
*
* Debug
*
*
* for i = 1 to Count(keylist, @VM)
* overriderec = Xlate('OVERRIDE_LOG', keylist<1,i>, '', 'X')
* RDSOverrides := overriderec
*
* Display<1,I,1> = overriderec<3>
* Display<1,I,2> = overriderec<4>
* Display<1,I,3> = overriderec<5>
* Display<1,I,4> = overriderec<6>
* Next i
* debug
*
*
* TypeOver = ''
* TypeOver<PDISPLAY$> = Display
* void = Popup(@WINDOW,TypeOver,'OVERRIDES')
* Debug
* orParms = ''
* orParms<OVERRIDE_LOG_TABLE$> = 'RDS':@VM:'REACTOR'
* orParms<OVERRIDE_LOG_KEY$> = '385600':@VM:'59'
* orParms<OVERRIDE_LOG_USER$> = 'JONATHAN_O'
* orParms<OVERRIDE_LOG_COMMENT$> = 'This is a test'
* orParms<OVERRIDE_LOG_CATEGORY$> = 'ROTR_BLOCK'
* orKey = obj_override_log('Create', orParms)
* ResponseComment = Dialog_Box('NDW_ADD_COMMENT', @WINDOW)
*
* IF ResponseComment<2> NE '' THEN
* // Clear ROTR reactor load block.
* orParms = ''
* orParms<OVERRIDE_LOG_TABLE$> = 'RDS':@VM:'REACTOR'
* orParms<OVERRIDE_LOG_KEY$> = '385600':@VM:'59'
* orParms<OVERRIDE_LOG_USER$> = 'JONATHAN_O'
* orParms<OVERRIDE_LOG_COMMENT$> = 'This is a test'
* orParms<OVERRIDE_LOG_CATEGORY$> = 'ROTR_BLOCK'
* orKey = obj_override_log('Create', orParms)
*
* end else
* Msg(@Window, 'A comment is required to perform an ROTR Block Override', '', '', '')
* return
* end
*
*
*
* Debug
* ResponseComment = Dialog_Box('NDW_ADD_COMMENT', @WINDOW)
* IF ResponseComment<2> NE '' then
* null
* end else
* Message = 'NO Comment has been entered.'
* Message :='A comment is required to perform an ROTR Block Override'
* Msg(@Window, 'A comment is required to perform an ROTR Block Override', '', '', '')
* end
*
*
*
* debug
* StartTime = GetTickCount()
* Open "SQL_BACKLOG" to hTable then
* ClearSelect
* Select hTable
* Done = 0
* Loop
* ReadNext Key else Done = 1
*
* Until Done OR (GetTickCount() - StartTime) >= 60000
* Table = Key[1, "*"]
* ID = Key[Col2() + 1, Len(Key)]
* if Key EQ 'REACT_MODE*60*19275.5840277778' THEN
* DEBUG
*
* If ID[-7, 7] EQ "*DELETE" then
* ID[-7, 7] = ""
* Delete_Record_From_SQL(Table, ID, 1)
* Delete hTable, Key
* end else
* Copy_Record_To_SQL(Table, ID, 1)
* Delete hTable, Key
* end
* END
* Repeat
* end
*
* Return
Return