- Contents
Interaction Host Recorder Help
Host Profile Grammar (.hcs files)
This topic explains the host profile syntax. We do not recommend that you manually make changes to your host profiles; rather, you should edit your profiles using Interaction Host Recorder. This syntax is provided as an aid for advanced authoring and debugging.
Host profiles contain three sections: connection settings, screen declarations, and transitions.
Connection Settings
These settings correspond to those set up in the Connection Properties dialog .
Syntax |
Example |
<connection> := CONNECTION [<name>] {<connectitems>}* |
Connection LOCIS |
<connectitems> := |
|
HOSTTYPE = (Mainframe | AS400) | |
HOSTTYPE = MAINFRAME |
DRIVER = <string>, <string> | |
DRIVER = "I3WdExpMFDriver", "I3WdExpMFDriver" |
INTERFACE = (TN3270 | TN5250 | SNA3270 | SNA5250) | |
INTERFACE = TN3270 |
ADDRESS = <string> | |
ADDRESS = "locis.loc.gov" ADDRESS = "129.71.2.10" |
PORT = <posnum> | |
PORT = 23 |
MODE = (24x80 | 32x80 | 43x80 | 27x132) | |
MODE = 24x80 |
EXTATTR = <boolflag> | |
EXTATTR = TRUE |
TIMEOUT = <posnum> |
TIMEOUT = 30 |
DEVICE = <string> | |
|
TERMINAL = <string> | |
|
SSLENABLED = <boolflag> | |
SSLENABLED = FALSE |
SSLAUTHENTICATION = <boolflag> | |
SSLAUTHENTICATION = FALSE |
SSLLICENSINGSERVER = <string> | |
|
LU = <string> | |
|
LOCALLU = <string> | |
|
PARTNERLU = <string> | |
|
SYSTEMNAME = <string> | |
|
DEVICENAME = <string> | |
|
AUTOSIGNON = <boolflag> | |
AUTOSIGNON = TRUE |
USERID = <String> | |
USERID = "JohnD" |
USERPASSWORD = <string> |
USERPASSWORD = "MyPassword" |
Screen Declarations
Screen declarations are the screens you name in the Screen Definition window. Screen declarations contain validation rules and user defined fields. The <boolflags> corespond to the option settings users encounter when editing via the Interaction Host Recorder. You can view these options creating a similar field using the appropriate dialog in Interaction Host Recorder.
Screen Declaration
Syntax |
Example |
<screendecl> := SCREEN <name> VALIDATION(<posnum>) = <validation> {, <validation>}*; |
SCREEN MainScreen |
Validation Rules
Syntax |
Example |
<validation> := |
VALIDATION(5000) = StringAt(68, 24, "LOCISMENU ", FALSE), StringAt(7, 23, "Choice: 2 ", FALSE), ID(-185882193), IsReadyToSend |
Wait(<posnum>) | |
Wait(100) |
ID(<number>) | |
ID(-238147156)
|
Type(<number>) | |
Type(1)
|
StringAt((<posnum> | *), (<posnum> | *), <string>, <boolflag>) | |
StringAt(68, 24, "LOCISMENU ", FALSE)
|
CursorAt((<posnum> | *), (<posnum> | *)) | |
CursorAt(6, 24)
|
IsReadyToSend |
IsReadyToSend
|
Syntax |
Example |
<field_decl> := |
|
AbsPos((<posnum> | *), (<posnum> | *), <length>[, <boolflag>[, |
FIELD Field01 = AbsPos(1, 1, 80, FALSE, TRUE) |
RelPos(<number>, <number>, <length>[, <boolflag>[, <boolflag>]]) | |
FIELD Field02 = RelPos(52, 1, 12, FALSE, FALSE) |
OrdP(<posnum>[, <boolflag>[, <boolflag>]]) | |
FIELD Field03 = OrdP(1, FALSE, FALSE) |
OrdU(<posnum>[, <boolflag>[, <boolflag>]]) | |
FIELD Field04 = OrdU(1, FALSE, FALSE) |
RelStringTopDown(<posnum>, <string>, <number>, <number>, <posnum>, |
FIELD Field05 = RelStringTopDown(3, "USC", -6, 15, 3, FALSE, TRUE, TRUE) |
RelStringBottomUp(<posnum>, <string>, <number>, <number>, <posnum>, |
FIELD Field06 = RelStringBottomUp(3, "USC", -6, 18, 3, FALSE, TRUE, TRUE) |
StringDelimitedTopDown(<posnum>, <string>, <boolflag>, <string>, |
FIELD Field07 = StringDelimitedTopDown(1, "===> ", TRUE,"PF1", FALSE, 0, -44, TRUE, TRUE) |
StringDelimitedBottomUp(<posnum>, <string>, <boolflag>, <string>, |
FIELD Field07 = StringDelimitedBottomUp(1, "===> ", TRUE,"PF1", FALSE, 0, -44, TRUE, TRUE) |
<transdecl> := TRANSITION (STARTUP | <name>) -> <name>
COMMANDS = <transcmd> {, <transcmd>}*;
Syntax |
Example |
<transcmd> := |
TRANSITION STARTUP -> MainScreen TRANSITION CopyrightDocumentFile -> MainScreen |
Validate(<name>) | |
Validate(MainScreen)
|
PutString((<posnum> | *), (<posnum> | *), <string>) | |
PutString(24, *, "hello") |
PressKey(<string>) | |
PressKey("1") PressKey("@E") |
WaitForRTS(<posnum>) | |
WaitForRTS(5000) |
Wait(<posnum>) | |
Wait(300) |
WaitForString((<posnum> | *), (<posnum> | *), <string>, <boolflag>, |
WaitForString(6, 24, "Tolkien", FALSE, 2000) |
WaitForCursor((<posnum> | *), (<posnum> | *), <posnum>) | |
WaitForCursor(22, 24, 4500) |
WaitForScreenID(<number>, <posnum>) | |
WaitForScreenID(-238147156, 2000) |
WaitForScreenType(<number>, <posnum>) | |
WaitForScreenType(1, 2000) |
SetCursor((<posnum> | *), (<posnum> | *) |
SetCursor(6, 24) |
<name> := (a-z|A-Z|_) {(a-z|A-Z|0-9|_)}*
<posnum> := {0-9}+
<number> := [(+|-)] {0-9}+
<string> := " {(<any_char> | <escapeseq>)}* "
<boolflag> := (TRUE | FALSE)
<netname> := {(a-z|A-Z|0-9|_|-)}*
<escapeseq> := \" | \' | \\ | \? | \a | \b | \f | \n | \r |
\t | \v | \x<hexdigit><hexdigit>
<hexdigit> := (0-9|a-f|A-F)
# Starts a line of comments (rest of the line ignored)