SoftTree Technologies SoftTree Technologies
Technical Support Forums
RegisterSearchFAQMemberlistUsergroupsLog in
Case nested inside ForNext

 
Reply to topic    SoftTree Technologies Forum Index » 24x7 Scheduler, Event Server, Automation Suite View previous topic
View next topic
Case nested inside ForNext
Author Message
Robert Conatser



Joined: 02 Feb 2000
Posts: 28

Post Case nested inside ForNext Reply with quote

I'm using 3.03 and get the error, "Invalid nesting, nested construct must not overlap parent construct boundaries."

Here is my code:
Dim DataFile,string, "D:\\tmp\\LogTableMonitor.dat"
DIM line,string
Dim b_line,boolean
Dim LineNumber, Number
DIM dt,date
DIM tm,string
DIM day,number
Dim DayLoc,number
Dim b_rtn,boolean
Dim SQL,string
DIM rows,number
DIM msg,String
DIM idx,number
DIM dttm,datetime
DIM Start_Time,string
DIM End_Time,String

DIM PROC_ID,NUMBER
DIM STEP,STRING
DIM MonDays,STRING // List of Monitor Days [1-7] Ex: '2,3,4,5,6'

// 1 = Sunday, 2 = Monday, etc.
DIM MonStartTime,string // Time to Start Monitoring Step
DIM MonEndTime,string // Time to End Monitoring Step
DIM LateStartTime,STRING // Latest time step must start
DIM MinRunTime,NUMBER // Step must run for at least this many minutes.
DIM MaxRunTime,NUMBER // Step must not run longer than this many minutes.
Dim MinCount,Number
Dim MaxCount,Number
DIM Active,NUMBER // Set to 0 to turn Monitor off, 1 to turn Monitor on
DIM chk,number

DIM db_PROC_NAME,string
DIM db_STEP_NAME,string
DIM db_COUNT,string
DIM db_ERROR_CODE,string
DIM db_START_DATE,string
DIM db_END_DATE,string

SET b_line,FALSE
SET LineNumber, 1
Today(dt)
Now(tm)
DateTime(dt,tm,dttm)

DayNumber(dt,day)

DatabaseConnect("Oracle TEST")
LoopUntil b_line,END_DATAFILE
FileReadLine (DataFile,LineNumber,line)
isEqual(line,"",b_line)
ifthen(b_line,END_DATAFILE)
GetToken (",",Line,PROC_ID)
GetToken (",",Line,Step)
GetToken (",",Line,MonDays)
GetToken (",",Line,MonStartTime)
GetToken (",",Line,MonEndTime)
GetToken (",",Line,LateStartTime)
GetToken (",",Line,MinRunTime)
GetToken (",",Line,MaxRunTime)
GetToken (",",Line,MinCount)
GetToken (",",Line,MaxCount)
GetToken (",",Line,Active)
add LineNumber,1,LineNumber
IsEqual(Active,0,b_rtn)
IfThen(b_rtn,NEXT_LINE)
InStr(MonDays,day,1,DayLoc)
isEqual(DayLoc,0,b_rtn)
IfThen(b_rtn,NEXT_LINE)
isTimeBetween(tm,MonStartTime,MonEndTime,b_rtn)
Not(b_rtn,b_rtn)
IfThen(b_rtn,NEXT_LINE)
// Monitor Step
SET(SQL,"Select PROC_NAME, STEP_NAME, COUNT, ERROR_CODE, START_DATE, END_DATE From LOGTABLE WHERE PROC_ID = ")
ConcatEx(SQL,PROC_ID," AND STEP_NAME = '", STEP,"'",SQL)
DatabaseRetrieve(SQL,rows)
IsEqual(rows,0,b_rtn)
IfThen(b_rtn,NO_LOG)
ForNext(idx,1,ROWS,1,DB_CHECK)

DatabaseGet(idx,1,db_Proc_Name)

DatabaseGet(idx,2,db_Step_Name)

DatabaseGet(idx,3,db_Count)

DatabaseGet(idx,4,db_Error_Code)

DatabaseGet(idx,5,db_Start_Date)

DatabaseGet(idx,6,db_End_Date)

MessageBox(db_STEP_Name)

SET(chk,1)

isLess(db_Count,MinCount,b_rtn)

IfThen(b_rtn,ERROR)

SET(chk,2)

isGreater(db_Count,MaxCount,b_rtn)

IfThen(b_rtn,ERROR)

SET(chk,3)
// IF Error_Code is 0 (Finished-no error) goto ERROR_CHK1

isEqual(db_ERROR_CODE,0,b_rtn)

IfThen(b_rtn,ERROR_CHK1)
// IF Error_Code is Not -1 (ruuning) goto ERROR

NotEqual(db_ERROR_CODE,-1,b_rtn)

IfThen(b_rtn,ERROR)

DateTimeDiff(db_Start_Date,db_End_date,dttm)

MessageBox(dttm)
ERROR_CHK1:

ERROR:

ChooseCase(chk,END_CASE)

Case 1

Set(Msg,"Min. Count treashold not reached.")

Case 2

Set(Msg,"Max. Count treashold exceeded.")

Case 3

Set(Msg,"Finished with Error.")

CaseElse

Set(Msg,"UnKnow Error occurred.")
END_CASE:
MessageBox(msg)
DB_CHECK:
GOTO NEXT_LINE
NO_LOG:
IsLess(tm,LateStartTime,b_rtn)
Ifthen(b_rtn,Next_Line)
SET (msg,"Past Start Time")
ConcatEx(msg," - ",STEP," at ",LateStartTime,msg)
MessageBox(msg)
NEXT_LINE:
END_DATAFILE:
DatabaseDisconnect()
EXIT

Mon Jun 18, 2001 5:17 pm View user's profile Send private message
SysOp
Site Admin


Joined: 26 Nov 2006
Posts: 7948

Post Re: Case nested inside ForNext Reply with quote

Please send this case to support@softtreetech.com

: I'm using 3.03 and get the error, "Invalid nesting, nested construct
: must not overlap parent construct boundaries."

: Here is my code: Dim DataFile,string,
: "D:\\tmp\\LogTableMonitor.dat"
: DIM line,string
: Dim b_line,boolean
: Dim LineNumber, Number
: DIM dt,date
: DIM tm,string
: DIM day,number
: Dim DayLoc,number
: Dim b_rtn,boolean
: Dim SQL,string
: DIM rows,number
: DIM msg,String
: DIM idx,number
: DIM dttm,datetime
: DIM Start_Time,string
: DIM End_Time,String

: DIM PROC_ID,NUMBER
: DIM STEP,STRING
: DIM MonDays,STRING // List of Monitor Days [1-7] Ex: '2,3,4,5,6'

: // 1 = Sunday, 2 = Monday, etc.
: DIM MonStartTime,string // Time to Start Monitoring Step
: DIM MonEndTime,string // Time to End Monitoring Step
: DIM LateStartTime,STRING // Latest time step must start
: DIM MinRunTime,NUMBER // Step must run for at least this many minutes.
: DIM MaxRunTime,NUMBER // Step must not run longer than this many minutes.
: Dim MinCount,Number
: Dim MaxCount,Number
: DIM Active,NUMBER // Set to 0 to turn Monitor off, 1 to turn Monitor on
: DIM chk,number

: DIM db_PROC_NAME,string
: DIM db_STEP_NAME,string
: DIM db_COUNT,string
: DIM db_ERROR_CODE,string
: DIM db_START_DATE,string
: DIM db_END_DATE,string

: SET b_line,FALSE
: SET LineNumber, 1
: Today(dt)
: Now(tm)
: DateTime(dt,tm,dttm)

: DayNumber(dt,day)

: DatabaseConnect("Oracle TEST")
: LoopUntil b_line,END_DATAFILE
: FileReadLine (DataFile,LineNumber,line)
: isEqual(line,"",b_line)
: ifthen(b_line,END_DATAFILE)
: GetToken (",",Line,PROC_ID)
: GetToken (",",Line,Step)
: GetToken (",",Line,MonDays)
: GetToken (",",Line,MonStartTime)
: GetToken (",",Line,MonEndTime)
: GetToken (",",Line,LateStartTime)
: GetToken (",",Line,MinRunTime)
: GetToken (",",Line,MaxRunTime)
: GetToken (",",Line,MinCount)
: GetToken (",",Line,MaxCount)
: GetToken (",",Line,Active)
: add LineNumber,1,LineNumber
: IsEqual(Active,0,b_rtn)
: IfThen(b_rtn,NEXT_LINE)
: InStr(MonDays,day,1,DayLoc)
: isEqual(DayLoc,0,b_rtn)
: IfThen(b_rtn,NEXT_LINE)
: isTimeBetween(tm,MonStartTime,MonEndTime,b_rtn)
: Not(b_rtn,b_rtn)
: IfThen(b_rtn,NEXT_LINE)
: // Monitor Step
: SET(SQL,"Select PROC_NAME, STEP_NAME, COUNT, ERROR_CODE, START_DATE,
: END_DATE From LOGTABLE WHERE PROC_ID = ")
: ConcatEx(SQL,PROC_ID," AND STEP_NAME = '", STEP,"'",SQL)
: DatabaseRetrieve(SQL,rows)
: IsEqual(rows,0,b_rtn)
: IfThen(b_rtn,NO_LOG)
: ForNext(idx,1,ROWS,1,DB_CHECK)

: DatabaseGet(idx,1,db_Proc_Name)

: DatabaseGet(idx,2,db_Step_Name)

: DatabaseGet(idx,3,db_Count)

: DatabaseGet(idx,4,db_Error_Code)

: DatabaseGet(idx,5,db_Start_Date)

: DatabaseGet(idx,6,db_End_Date)

: MessageBox(db_STEP_Name)

: SET(chk,1)

: isLess(db_Count,MinCount,b_rtn)

: IfThen(b_rtn,ERROR)

: SET(chk,2)

: isGreater(db_Count,MaxCount,b_rtn)

: IfThen(b_rtn,ERROR)

: SET(chk,3)
: // IF Error_Code is 0 (Finished-no error) goto ERROR_CHK1

: isEqual(db_ERROR_CODE,0,b_rtn)

: IfThen(b_rtn,ERROR_CHK1)
: // IF Error_Code is Not -1 (ruuning) goto ERROR

: NotEqual(db_ERROR_CODE,-1,b_rtn)

: IfThen(b_rtn,ERROR)

: DateTimeDiff(db_Start_Date,db_End_date,dttm)

: MessageBox(dttm)
: ERROR_CHK1: ERROR: ChooseCase(chk,END_CASE)

: Case 1

: Set(Msg,"Min. Count treashold not reached.")

: Case 2

: Set(Msg,"Max. Count treashold exceeded.")

: Case 3

: Set(Msg,"Finished with Error.")

: CaseElse

: Set(Msg,"UnKnow Error occurred.")
: END_CASE: MessageBox(msg)
: DB_CHECK: GOTO NEXT_LINE
: NO_LOG: IsLess(tm,LateStartTime,b_rtn)
: Ifthen(b_rtn,Next_Line)
: SET (msg,"Past Start Time")
: ConcatEx(msg," - ",STEP," at ",LateStartTime,msg)
: MessageBox(msg)
: NEXT_LINE: END_DATAFILE: DatabaseDisconnect()
: EXIT

Mon Jun 18, 2001 6:46 pm View user's profile Send private message
Display posts from previous:    
Reply to topic    SoftTree Technologies Forum Index » 24x7 Scheduler, Event Server, Automation Suite All times are GMT - 4 Hours
Page 1 of 1

 
Jump to: 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


 

 

Powered by phpBB © 2001, 2005 phpBB Group
Design by Freestyle XL / Flowers Online.