Feedback

  • Contents
 

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>}*;
  {FIELD <name> = <field_decl>}*

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>[,
<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>,
<boolflag>[, <boolflag>[, <boolflag>]]
) |

FIELD Field05 = RelStringTopDown(3, "USC", -6, 15, 3, FALSE, TRUE, TRUE)

RelStringBottomUp(<posnum>, <string>, <number>, <number>, <posnum>,
<boolflag>[, <boolflag>[, <boolflag>]]
) |

FIELD Field06 = RelStringBottomUp(3, "USC", -6, 18, 3, FALSE, TRUE, TRUE)

StringDelimitedTopDown(<posnum>, <string>, <boolflag>, <string>,
<boolflag>
, <number>, <number>[, <boolflag>[,
<boolflag>]])

FIELD Field07 = StringDelimitedTopDown(1, "===> ", TRUE,"PF1", FALSE, 0, -44, TRUE, TRUE)

StringDelimitedBottomUp(<posnum>, <string>, <boolflag>, <string>,
<boolflag>
, <number>, <number>[,
<boolflag>[, <boolflag>]])

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>,
<posnum>
) |

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)