This chapter offers information about JavaScript objects available in Convertigo transactions or sequences.

Javelin object javadoc

Javelin is the object representing the legacy screen. Actions can be defined and performed on the legacy screen by programming code using the Javelin object. This section contains the API documentation of the Javelin object.

Fields detailed list

This section presents the list of fields contained in Javelin object, with their description.

Table 3 - 1: Fields list

Type Field name Description
static char AT_AUTO_ENTER Mask for DRCS (downloadable font) attribute bit: 0x8000 (0100 0000 0000 0000).
Note: relevant for Videotex only. For 3270 and 5250 this bit indicates an AUTO_TAB flag for the field.
static char AT_AUTO_TAB Mask for double height: 0x0040 (0000 0000 0100 0000). For 32370/5250 also indicates field is AUTO_ENTER.
static char AT_BLINK Mask for blink attribute bit: 0x1000 (0001 0000 0000 0000).
static char AT_BOLD Mask for bold attribute bit: 0x0800 (0000 0100 0000 0000).
static int AT_COLOR_BLACK  
static int AT_COLOR_BLUE  
static int AT_COLOR_CYAN  
static int AT_COLOR_GREEN  
static int AT_COLOR_MAGENTA  
static int AT_COLOR_RED  
static int AT_COLOR_WHITE  
static int AT_COLOR_YELLOW  
static char AT_DOUBLEHEIGHT Mask for double height: 0x0040 (0000 0000 0100 0000). For 32370/5250 also indicate field is AUTO_ENTER.
static char AT_DOUBLEWIDTH Mask for double width attribute bit: 0x0080 (0000 0000 1000 0000).
static char AT_DRCS Mask for DRCS (downloadable font) attribute bit: 0x8000 (0100 0000 0000 0000). Note: relevant for Videotex only. For 3270 and 5250 this bit indicates an AUTO_TAB flag for the field.
static int AT_FIELD_ATTRIBUTE  
static int AT_FIELD_HIDDEN Mask for hidden field attribute: 0x0C0000. Note: relevant for IBM 3270 / 5250 and BULL DKU7xxx only.
static int AT_FIELD_HIGH_INTENSITY Mask for high intensity field attribute: 0x040000. Note: relevant for IBM 3270 / 5250 and BULL DKU7xxx only.
static int AT_FIELD_MODIFIED Mask for modified field attribute: 0x010000. Note: relevant for IBM 3270 / 5250 and BULL DKU7xxx only.
static int AT_FIELD_NUMERIC Mask for numeric field attribute: 0x100000. Note: relevant for IBM 3270 / 5250 and BULL DKU7xxx only.
static int AT_FIELD_PEN_SELECTABLE Mask for pen selectable field attribute: 0x080000. Note: relevant for IBM 3270 / 5250 and BULL DKU7xxx only.
static int AT_FIELD_PROTECTED Mask for protected Field attribute bit: 0x200000. Note: relevant for IBM 3270 / 5250 and BULL DKU7xxx only.
static int AT_FIELD_RESERVED Mask for reserved field attribute: 0x020000. Note: relevant for IBM 3270 / 5250 and BULL DKU7xxx only.
static char AT_HIDDEN Mask for hidden attribute bit: 0x8000 (1000 0000 0000 0000).
static char AT_INK Mask for INK attribute: 0x0007 (0000 0000 0000 0111).
static char AT_INVERT Mask for inverse attribute bit: 0x0200 (0000 0001 0000 0000).
static char AT_MASKED Mask for masked attribute bit: 0x2000 (0010 0000 0000 0000). Note: relevant for VT220 only.
static char AT_NPTUI Mask for NPTUI attribute bit: 0x2000 (0010 0000 0000 0000). Note: relevant for 5250 only.
static char AT_PAPER Mask for PAPER attribute: 0x0038 (0000 0000 0011 1000).
static char AT_PROTECTED Mask for protected attribute bit: 0x4000 (0100 0000 0000 0000). For 5250 reprsent also the NPTUI attribute.
static char AT_UNDERLINE Mask for underline attribute bit: 0x0100 (0000 0001 0000 0000).
static char AT_UPHALF Mask for double height upper row attribute bit: 0x0400 (0000 0100 0000 0000). Note: relevant for VT220 only.
static java.lang.String AS400 Defines an IBM 5250 (AS/400) session.
static java.lang.String DKU Defines a Bull DKU session.
static java.lang.String SNA Defines an IBM 3270 (SNA) session.
static java.lang.String TN5250 Defines a Twinsoft 5250 (AS/400) session.
static java.lang.String VDX Defines a videotex session.
static java.lang.String VT Defines a VT220 session.

Methods detailed list

This section presents the list of methods contained in Javelin object, with their description and parameters.

Table 3 - 2: Methods list

Return Type Method signature Description
void addKeyListener(java.awt.event.KeyListener l)

Parameters:
l - the component interested by the events.
Registers a client on the keyListener. KeyListener delivers events for keystokes on Javelin.
void addZoneListener(com.twinsoft.twinj.zoneListener l)

Parameters:
l - the component interested by the events
Registers a client on the zoneListener. ZoneListener delivers events for selection changes.
void clearTrigger() Remove all arrived trigger from the MsgQueue.
void connect()

See also: connect(int), disconnect()
Connects Javelin to a server. The connection is asynchronous. When the connection is made, the Connected event is thrown by Javelin.

The connection is made with the parameters provided by helper functions such as setDteAddress(), setCommDevice(), setServiceCode()...
boolean connect(int timeout)

Parameters:
  • timeout - the maximum amount of milliseconds during which the connection is expected.
Returns: true if connected, false if the timeout expired.
See also: connect(), disconnect()
Connects synchronously Javelin to a server.

The connection is made with the parameters provided by helper functions such as setDteAddress(), setCommDevice(), setServiceCode()...
void deleteWaitAts()

See also: waitAt(String, int, int, long), waitAtId(int, String, int, int), waitForId(int, String), waitFor(String, long), deleteWaitFors()
Deletes all triggers set by the waitAt() method.
void deleteWaitFors()

See also: waitAt(String, int, int, long), waitAtId(int, String, int, int), waitForId(int, String), waitFor(String, long), deleteWaitAts()
Deletes all triggers set by the waitFor() method.
void disconnect()

See also: connect(), connect(int)
Disconnects Javelin from the current connected server.
The disconnection is synchronous, i.e. Javelin is disconnected when the method Returns.
void doAction(java.lang.String action)

Parameters:
action - the action to execute, see appendix legacy emulator actions table.
Executes an action on the emulator.
char getChar(int column, int line)

Parameters:
  • column - the horizontal coordinate from left to right beginning by 0.
  • line - the vertical coordinate from top to bottom beginning by 0.
Returns: the read character at (column, line) coordinates.
See also: getCharAttribute(int, int), getString(int, int, int), setChar(int, int, char)
Returns the ASCII code of the character at coordinates (column, line).
int getCharAttribute(int column, int line)

Parameters:
  • column - the horizontal coordinate from left to right beginning by 0.
  • line - the vertical coordinate from top to bottom beginning by 0.
Returns: the character attribute at (column, line) coordinates.
See also: getChar(int, int), getString(int, int, int), setChar(int, int, char)
Returns the character attribute at coordinates ( column , line ).
You can access specific attribute bit with AT_xxx masks.
int getCurrentColumn()

Returns the current column.
See also: getCurrentLine()
Returns the current column of the caret.
Columns are designed from top to bottom and beginning by 0.
int getCurrentLine()

Returns the current line.
See also: getCurrentColumn()
Returns the current line of the caret.
Lines are designed from left to right and beginning by 0.
boolean getDataStableOnCursorOn()

Returns the DataStableOnCursorOn.
Retrieves the DataStableOnCursorOn flag. This flag controls how the data stable condition is detected.
For Videotex emulators. if true, this condition is met when a Videotex cursor is shown by the host.
int getDataStableThreshold()

Returns the dataStableThreshold value.
Gets the dataStableThreshold value.
int getFieldAttribute(int fieldIndex)

Parameters: fieldIndex - the index or the field from 0 to n.
Returns: the attribute of the field.
Gets the attribute of a given field.
int getFieldColumn(int fieldIndex)

Parameters: fieldIndex - the index or the field from 0 to n.
Returns: the column of the field.
Gets the column of a given field.
int getFieldLength(int fieldIndex)

Parameters: fieldIndex - the index or the field from 0 to n.
Returns: the length of the field.
Gets the length of a given field.
If the length is greater than the width of the screen, it means that the field spans on several lines.
int getFieldLine(int fieldIndex)

Parameters: fieldIndex - the index or the field from 0 to n.
Returns: the line of the field.
Gets the line of a given field.
java.lang.String getFieldText(int fieldIndex)

Parameters: fieldIndex - the index or the field from 0 to n.
Returns: the text of the field.
Gets the text of a given field.
int getNumberOfFields()

Returns: the number of fields.
Gets the number of fields on the screen.
If the number of fields is 0, then the screen is called "unformatted".

This is always the case for VT and VDX emulators but can be the case for IBM in the case of a unformatted screen.
int getScreenHeight()

Returns: the number of lines.
See also: getScreenWidth()
Gets the number of lines of the current emulator screen.
int getScreenWidth()

Returns: the number of columns.
See also: getScreenHeight()
Gets the number of columns of the current emulator screen.
java.awt.Rectangle getSelectionZone()

Returns: zone - the rectangle that holds the zone
(x = column 0 based, y = line 0 based, width = width of the selection in chars, height = height of the selection in chars)
Gets the current selection zone on Javelin.
java.lang.String getString(int column, int line, int length)

Parameters:
  • column - the horizontal coordinate from left to right beginning by 0.
  • line - the vertical coordinate from top to bottom beginning by 0.
  • length - the string length to return.
Returns: the read string at (column, line) coordinates.
See also: getChar(int, int), getCharAttribute(int, int), setChar(int, int, char)
Returns the string at coordinates (column, line).
java.lang.String getTerminalClass()

Returns: the terminal class.
Retrieves the terminal class of the Javelin object.
boolean isConnected()

Returns: true if connected, false otherwise.
See also: connect(), connect(int), disconnect()
Retrieves the Javelin connection state.
void moveCursor(int column, int line)

Parameters:
  • column - the horizontal coordinate from left to right beginning by 0.
  • line - the vertical coordinate from top to bottom beginning by 0.
Moves the cursor to coordinates (column, line).
boolean printBuffer(java.lang.String printerPort, java.lang.String buffer)

Parameters:
  • printerPort - the printer port.
  • buffer - the buffer to be printed.
Returns: true if ok, false otherwise.
Writes a string on a given printer port.
This port can be any string containing LPTx or a network printer specification as SERVERPRINTER or a file as print.txt.
The specified port will be opened, then the buffer will be written to it and the port will be closed in this sequence.
If the port is null, then the port will be the default port specified as RawPrinter in the applet.
void removeAllZoneListeners() Unregister all clients on the zoneListener. ZoneListener delivers events for selection changes.
void removeKeyListener(java.awt.event.KeyListener l)

Parameters:
l - the component not anymore interested by the events.
Unregister a client on the keyListener. KeyListener delivers events for keystokes on Javelin.
void removeZoneListener(com.twinsoft.twinj.zoneListener l)

Parameters:
l - the component not anymore interested by the events.
Unregister a client on the zoneListener. ZoneListener delivers events for selection changes.
void send(java.lang.String keystrokes)

Parameters:
keystrokes - the string to send.
Sends a string as if the user has stroken it on keyboard. All characters between 0x00 and 0xFF can be sent by this way.
void setAutoConnect(boolean bAutoConnect)

Parameters:
bAutoConnect - indicates if automatic connection should be performed without having to call one of the connect() methods.
Sets the auto connect flag.
void setChar(int column, int line, char c)

Parameters:
  • column - the horizontal coordinate from left to right beginning by 0.
  • line - the vertical coordinate from top to bottom beginning by 0.
  • c - the ASCII character code to set.
See also: getChar(int, int), getCharAttribute(int, int), getString(int, int, int),
Sets the ASCII code of the character at coordinates (column, line).
void setClientConfig(java.util.Properties p)

Parameters:
  • p - the properties ti set in the emulator.
Sets the current terminal properties. The properties depends on the emulator technology. Only the 3270 and 5250 emulators support this api.
void setClientConfig(java.lang.String configuration)

Parameters:
  • configuration - the new configuration; this is a string of the form
  • param1=value1&param2=value2&; ... &paramN=valueN.
NB: each valuei should be in UTF8 format.
Sets a new configuration for Javelin.
void setDataStableOnCursorOn(boolean bool)

Parameters: bool - the DataStableOnCursorOn flag.
Sets the DataStableOnCursorOn flag.
void setDataStableThreshold(int val) Parameters:
val - the dataStableThreshold value.
Sets the dataStableThreshold value. This value is the maximum time allowed with no data received from the host to consider a dataStable condition.
void setDoCapture(boolean bDoCapture)

Parameters:
bDoCapture - indicates if capture should be written or not.
Sets the capture flag.
void setDteAddress(java.lang.String connectionString)

Parameters:
connectionString - the connection string using the following format: < path>#< destination>-< source sub address>.< destination sub address>/< max level>.
Sets the connection string.
This method is ineffective for 5250 and 3270 emulators.
For a direct telnet connection (mandatory for IBM and Bull emulators):
  • path = DIR
  • destination = < IP address>:< port>
To connect to a PAVI + Eicon X25 board (there is no "-" character between destination and sourceSA in this case only):
  • path = EIC
  • destination = < Iremote X25 address>
  • source sub address = called sub-address (for Intelmatique billings)
  • destination sub address = calling sub-address (for services filter selection)
  • max level = 0..255
To connect to a PAVI + SAP/IP:
  • path = TCP
  • destination = < Intelmatique address>@port
  • source sub address = called sub-address (for Intelmatique billings)
  • destination sub address = calling sub-address (for services filter selection)
  • max level = 0..255
To connect to a PAVI + iMinitel (same as DIR but using the PAVI as a gateway ; iMinitel address: 172.31.0.20@7516):
  • path = MIP
  • destination = < iMinitel address>@port
  • max level = 0..255
To connect to a PAVI + iMinitel + RAS (using a modem or ISDN service ; iMinitel address: 172.31.0.20@7516):
  • path = RAS
  • destination = < iMinitel address>@port
  • max level = 0..255
void setGroup(java.lang.String group)

Parameters:
group - the user group.
Sets the group of the user.
void setLogOutputStream(java.io.OutputStream outputStream)

Parameters:
outputStream - the output stream for traces.
Defines the output stream for traces.
void setSelectionZone(java.awt.Rectangle zone)

Parameters:
zone - the rectangle that holds the zone (x = column 0 based, y = line 0 based, width = width of the selection in chars, height = height of the selection in chars)
Sets a selection zone on Javelin. This will result as if the user had selected the zone with the mouse.
After this api is called, the user will be able to modify the selection zone.
void setServiceCode(java.lang.String serviceCode)

Parameters:
serviceCode - the service code using the following format :
  • VT: n/a
  • Bull: mailbox
  • Videotex: service code
  • IBM: device name
Sets the service code (depending of the terminal class).
void setVicUser(java.lang.String vicUser)

Parameters:
vicUser - the user name.
Sets the name of the user.
void showZones(java.util.Vector rv, java.util.Vector cv)

Parameters:
  • rv - the vector containing the zones rectangles. If rv is null, the zones will not be shown anymore.
  • cv - the vector containing the color of each zone.
Shows Zones on the emulator screen. The zones will be represented as rectangles bounding characters.
This feature can be used to enhance or to show a grid system on the emulator screen.
Zones are described in a vector of rectangles in character 0 based coordinates.
For example, Rectangle (0, 0, 10, 1);
will describe a zone in column 0, line 0, of 10 chars.
void Trace(java.lang.Exception e)

Parameters:
e - the exception to log.
Writes an exception in the emulator log output stream.
void Trace(int level, java.lang.String message)

Parameters:
  • level - the log level to use.
  • message - the message to write.
Writes a message in the emulator log output stream with a given log level.
void Trace(java.lang.String message)

Parameters:
message - the message to write.
Writes a message in the emulator log output stream.
boolean waitAt(java.lang.String searchedString, int column, int line, long timeOut)

Parameters:
  • searchedString - the string to be searched.
  • column - the horizontal coordinate of the trigger.
  • line - the vertical coordinate of the trigger.
  • timeout - the maximum amount of milliseconds during which the wait is made.
Returns: true if the event is fired, false otherwise.
See also: waitAtId(int, String, int, int), waitForId(int, String), waitFor(String, long), deleteWaitAts(), deleteWaitFors()
Sets up a synchronous screen trigger.
This method returns only when the string searchedString is recognized on the screen at coordinates (column, line).
void waitAtId(int id, java.lang.String searchedString, int column, int line)

Parameters:
  • id - the trigger id. This ID is transmitted by the WaitAtDone event.
  • searchedString - the string to be searched.
  • column - the horizontal coordinate of the trigger.
  • line - the vertical coordinate of the trigger.
See also: waitAt(String, int, int, long), waitForId(int, String), waitFor(String, long), deleteWaitAts(), deleteWaitFors()
Sets up an asynchronous screen trigger.
When the string searchedString is recognized on the screen at (column, line) coordinates, the WaitAtDone event is generated by the applet with the identificator id.

You can set many observations at the same time. Once the event is generated, the observation is freed.
boolean waitCursorAt(int column, int line, boolean here, long timeout)

Parameters:
  • column - the horizontal coordinate of the cursor.
  • line - the vertical coordinate of the cursor.
  • here - if true, the function waits for the cursor to be at the specified position. if false, the function waits for the cursor to be at any position different from the one specified.
  • timeout - the maximum amount of milliseconds to wait.
Returns: true if the cursor is found at this position before timeout, false otherwise.
See also: waitAtId(int, int, int, boolean)
Waits synchronously for the cursor to be at a specified position.
This function is useful to detect a new page coming in Videotex and VTxxx emulators.
void waitCursorAtId(int Id, int column, int line, boolean here)

Parameters:
  • id - the trigger id. This ID is received in the WaitAtDone event or in the WaitTrigger() function.
  • column - the horizontal coordinate of the cursor.
  • line - the vertical coordinate of the cursor.
  • here - if true, the function waits for the cursor to be at the specified position. if false, the function waits for the cursor to be at any position different from the one specified.
Waits Asynchronously for the cursor to be at a specified position.
This function is useful to detect a new page coming in Videotex and VTxxx emulators.
boolean waitFor(java.lang.String searchedString, long timeout)

Parameters:
  • searchedString - the string to be searched.
  • timeout - the maximum amount of milliseconds during which the search is performed.
Returns: true if the string is found before timeout, false otherwise.
See also: waitAt(String, int, int, long), waitAtId(int, String, int, int), waitForId(int, String), deleteWaitAts(), deleteWaitFors()
Set up a synchronous line trigger.
boolean waitForDataStable(int timeout, int dataStableThreshold)

Parameters:
  • timeout - the maximum amount of milliseconds during which the search is performed.
  • dataStableThreshold - this value is the maximum time allowed with no data received from the host to consider a dataStable condition.
Returns: true if the screen is stable, false otherwise.
Waits for the screen to be stable.
This routine will return after timeout, even if the screen isn't still stable.
void waitForId(int id, java.lang.String Str)

Parameters:
  • id - the trigger id. This ID is received in the WaitAtDone event or in the WaitTrigger() function.
  • str - the string to be observed.
See also: waitAt(String, int, int, long), waitAtId(int, String, int, int), waitFor(String, long), deleteWaitAts(), deleteWaitFors()
Set up a screen trigger. When the string Str is recognized in the data stream the event id will be generated. You can set many Triggers at the same time. Once the event is generated, the Trigger is freed. You can wait for these triggers with the WaitTrigger() function.
void waitSync(int timeOut)

Parameters:
timeout - the maximum amount of milliseconds during which the wait will occur.
Calls the Javelin wait() method.
int waitTrigger(long timeout)

Parameters:
timeout - the maximum amount of milliseconds during which the event is expected.
Returns: -1 if the timeout has expired, otherwise the trigger ID.
See also: waitAt(String, int, int, long), waitAtId(int, String, int, int), waitForId(int, String), deleteWaitAts(), deleteWaitFors()
Waits for a trigger that has been set by one of the waitAt() or waitFor() functions.

Context object

Context is the object representing the context of execution of transactions or sequences. This section presents the context, how it works in Convertigo, and then contains the API documentation of the Context object.

Context general presentation

This section presents the Convertigo context :

Definition

Each time a request is sent to Convertigo, a context is created in the Convertigo Server engine. A context is a kind of dedicated environment and specific tunnel between the client and the Convertigo Server. It contains all the relevant information required to process the request: a copy of the requested project and all its necessary objects, the transaction or sequence execution scopes, cookies, variables… If a context already exists and is available, it can also be re-used, depending on conditions that are explained thereafter.

Identification

A Convertigo context is identified by a contextId, based on the session ID.

The standard template for generating the contextId is : < JSESSIONID>_< contextName>.

Let’s detail these two parts of the contextId :

  • JSESSIONID : It is the HTTP session ID, identifier of the user session (like JSESSIONID in Tomcat). All requests made by the same client have to be done using the same HTTP session in order to keep using the same context.
  • contextName : The context name differentiates several contexts created for the same HTTP session. By default, contextName value is “default”, corresponding to only one Convertigo context for a given HTTP session. When no context name is specified by the request, this default context name is always used and re-used. It is not the case in the following situations:
    • Unlike the HTTP session ID, which is fixed by the server at the first connection from a client, the context name can be chosen by the client and sent as a request parameter: __context=XXXX. Therefore, consecutive requests must use not only the same HTTP session but also the same context name to re-use the same execution context.
    • In the case of a transaction or sequence initiated by a sequence, through a Call Transaction or a Call Sequence step (not initiated directly by a client), the context name is automatically generated, and can also be specified in the call step.

Context object

The Convertigo developer has access to the execution context of a transaction or a sequence directly in this transaction or sequence, simply by using the context object. This object is usable in JavaScript code (in transaction’s core for a Legacy transaction, in a Transaction JS statement for an HTML transaction, in a Sequence JS step for a sequence, etc).

The context object can be useful to store data, for example variables, XML chunks, etc. and retrieve this data in another request execution during the same session, as well as to encode and decode data.

But the context object is also a useful tool to control some behaviors of the running transaction or sequence, like the cache storage or pool locking, or to add elements to the output XML, etc. See the complete API of the object on the section Context API documentation

Context API documentation

The following sections present the fields and methods of the Context object that are usable in transactions and sequences JavaScript code.

Fields detailed list

This section presents the list of fields contained in Context object, with their description.

Table 3 - 3: Context fields list

Field name Type Description
contextID String The context unique identifier.
contextNum int The context number (it is incremented by 1 for each newly created context).
creationTime long The context creation time (as a timestamp).
httpServletRequest HttpServletRequest The HTTP servlet request object, when the transaction/sequence currently executed is called externally, through HTTP, by the client. When called through internal invoke (for Call Transaction/Call Sequence steps), the HTTP servlet request object is spread from parent sequences/parent context throughout the sequences hierarchy.
httpSession HttpSession The HTTP session object.
inputDocument Document The input XML document generated by the requester.
isCacheEnabled boolean Indicates whether the cache functionnality is enabled. Default value is true, you can set this parameter to false during the transaction/sequence execution in order not to store the XML response in the cache (for example, in case of error, the response should not be stored).
lastAccessTime long The last access time to this context.
lockPooledContext boolean Indicates whether the context is to be kept in the pool even if it is not in the expected state (i.e. wrong screen class). Usually, a pooled context is automatically destroyed after a transaction execution if it is left on a wrong screen class (not the stable state screen class for this context). This property enables keeping this context alive in the pool for a further use.
outputDocument Document The output XML document generated by the current transaction.
parentContext Context The context of parent sequence, if the currently executed transaction/sequence has a parent sequence, i.e. if the current transaction/sequence is executed through a Call Transaction/Call Sequence step from another sequence (called parent sequence). Otherwise, this property is null.
remoteAddr String The remote address from the calling client.
remoteHost String The name of the calling client (if reverse DNS has been enabled).
requireEndOfContext boolean Indicates whether the context is to be destroyed after the transaction handling. By default set to false, a context is re-usable. This property can be set to true if the context needs to be destroyed after a transaction execution.
servletPath String The servlet path for the current request.
steps Vector The steps objects, useful for asynchronous transaction. These are the asynchronous mode steps objects, not to be confused with Steps of Sequences.
tasCommDevice String The TAS (VIC or Carioca) communication device for establishing the connection.
tasDteAddress String The TAS (VIC or Carioca) remote address for connection.
tasServiceCode String The TAS (VIC or Carioca) service code.
tasSessionKey String The TAS (VIC or Carioca) session key.
tasUserGroup String The TAS (VIC or Carioca) user group.
tasUserName String The TAS (VIC or Carioca) user name.
tasUserPassword String The TAS (VIC or Carioca) user password.
tasVirtualServerName String The TAS (VIC or Carioca) virtual server name.
userAgent String The user agent from the calling client.

Methods detailed list

This section presents the list of methods contained in Context object, with their description and parameters.

Table 3 - 4: Context methods list

Return Type Method signature Description  
void abortRequestable() Requests the end of the transaction/sequence running in the current context as soon as possible and without any condition.  
Node addTextNode(Node parentNode, String tagName, String text)
Parameters:

parentNode - the parent node into which the new node should be inserted
tagName - the new node tag name
text - the new node text content

Returns: the created node
Adds a new node containing text in the output XML document, under an identified parent node.  
Node addTextNodeUnderBlock(String tagName, String text)
Parameters:

tagName - the new node tag name
text - the new node text content

Returns: the created node
Adds a new node containing text in the output XML document, under the blocks node (in the context of a Legacy transaction).  
Node addTextNodeUnderRoot(String tagName, String text)
Parameters:

tagName - the new node tag name
text - the new node text content

Returns: the created node
Adds a new node containing text in the output XML document, under the root node (document element).  
String decodeFromHexString(String s) Parameters:

s - the string to decrypt; this string must have been encoded by the encodeToHexString() function in order to stay meaningfull.

Returns: the decrypted string or null if any error occurs.

See also: encodeToHexString(String), encodeToHexString(String, String)
Decrypts a string using the triple DES algorithm and the Convertigo default passphrase.
String decodeFromHexString(String passphrase, String s)
Parameters:

passphrase - the ciphering passphrase to use for decoding.
s - the string to decrypt; this string must have been encoded by the encodeToHexString() function in order to stay meaningfull.

Returns: the decrypted string or null if any error occurs.

See also: encodeToHexString(String), encodeToHexString(String, String)
Decrypts a string using the triple DES algorithm and the passphrase passed as parameter.  
String encodeToHexString(String s)
Parameters:

s - the string to encrypt.

Returns: the encrypted string; the script is of hexadecimal string format, i.e. it contains only hexadecimal (printable) characters, or null if any error occurs.

See also: decodeFromHexString(String), decodeFromHexString(String, String)
Encrypts a string using the triple DES algorithm and the Convertigo default passphrase.  
String encodeToHexString(String passphrase, String s)
Parameters:

passphrase - the ciphering passphrase to use for encoding.
s - the string to encrypt.

Returns: the encrypted string; the script is of hexadecimal string format, i.e. it contains only hexadecimal (printable) characters, or null if any error occurs.

See also: decodeFromHexString(String), decodeFromHexString(String, String)
Encrypts a string using the triple DES algorithm and the passphrase passed as parameter.  
Object get(String key)
Parameters:

key - the key identifying the requested object.

Returns: the object bound with the key in the context, or null if no object is bound with this key in the context.

See also: keys(), set(String, Object), remove(String)
Gets the object bound with the specified key in the context, or null if no object is bound with this key in the context.  
String getAbsoluteRequestedUrl()

Returns: the absolute requested URL.

See also: getConvertigoUrl(), getProjectUrl()
Gets the absolute URL of currently executed request.  
String getAuthenticatedUser()

Returns: the authenticated user ID from the context/session, or null if the context/session is not authenticated.

See also: setAuthenticatedUser(String), removeAuthenticatedUser()
Gets the authenticated user ID from the context/session, if the context/session is authenticated. Otherwise, returns null.  
String getConvertigoUrl()

Returns: the absolute URL to Convertigo Server web application.

See also: getAbsoluteRequestedUrl(), getProjectUrl()
Gets the absolute URL to Convertigo server web application.  
String getProjectDirectory()

Returns: the path to project directory.
Returns the path to the current project directory.  
String getProjectName()

Returns: the project name.
Returns the name of the current project.  
String getProjectUrl()

Returns: the absolute URL to the root project (The main project calling sub projects).

See also: getAbsoluteRequestedUrl(), getConvertigoUrl()
Gets the absolute URL of the current project root.  
Context getRootContext()

Returns: the context of initial parent sequence, i.e. the sequence that is called externally, through HTTP, by the client.

See also: parentContext
Gets the context object of the sequence called by the client, the first sequence called in currently executed sequences hierarchy.

This can be the current context when no call hierarchy is executed, i.e. when the current context is the context of a transaction/sequence called directly by the client.
 
Object getTransactionProperty(String propertyName)
Parameters:

propertyName - the name of the property to retreive.

Returns: the property value; depending on the property this value may be an object.
Retrieves the value of a property of the current transaction.  
boolean isSOAPRequest()

Returns: true if the request is a SOAP request (i.e. if the request path ends by .ws or .wsl), otherwise returns false.
Says if the request that initiated the transaction/sequence is a SOAP request or not.  
Set< String> keys()

Returns: the collection of keys identifying objects stored in the context.

See also: get(String), set(String, Object), remove(String)
Returns the collection of keys identifying objects stored in the context.  
Properties loadPropertiesFromProject(String fileName)
Parameters:
fileName - the name of the properties file to load.

Returns: the loaded properties.
Load properties from a file located in current project folder.  
Properties loadPropertiesFromWebInf(String fileName)
Parameters:
fileName - the name of the properties file to load.

Returns: the loaded properties.
Load properties from a file located in WEB-INF folder.  
Object project.get(String key)
Parameters:
key - the key identifying the object to get.

Returns: the value if exists or null

See also: project.set(key, value)
Gets the value in a global shared memory across the project. Return null if the key doesn’t exist.  
void project.set(String key, Object value)
Parameters:
key - the key identifying the object to set.
value - the value to set, null to remove.

See also: project.get(key)
Sets a value in a global shared memory across the project.  
void remove(String key)
Parameters:
key - the key identifying the object to remove.

See also: get(String), keys(), set(String, Object)
Removes the object bound with the requested key from the context.  
void removeAuthenticatedUser()

See also: getAuthenticatedUser(), setAuthenticatedUser(String)
Removes the authenticated user ID from the context/session. The context/session is not authenticated anymore.  
Object server.get(String key)
Parameters:
key - the key identifying the object to get.

Returns: the value if exists or null

See also: server.set(key, value)
Gets the value in a global shared memory across the server. Return null if the key doesn’t exist.  
void server.set(String key, Object value)
Parameters:
key - the key identifying the object to set.
value - the value to set, null to remove.

See also: server.get(key)
Sets a value in a global shared memory across the project.  
boolean savePropertiesToProject(String fileName, Properties properties)
Parameters:
fileName - the name of the file to save properties.
properties - the properties to save.

Returns: true if the save succeeds.
Saves properties in a properties file in current project folder  
boolean savePropertiesToWebInf(String fileName, Properties properties)
Parameters:
fileName - the name of the file to save properties.
properties - the properties to save.

Returns: true if the save succeeds.
Saves properties in a properties file in WEB-INF folder.  
void set(String key, Object value)
Parameters:
key - the key identifying the object.
value - the object to bind with the key.

See also: get(String), keys(), remove(String)
Stores an object identified by a key into the context.  
void setAuthenticatedUser(String userID)
Parameters:
userID - the user ID that has to be positioned in context/session as authenticated user.

See also: getAuthenticatedUser(), removeAuthenticatedUser()
Sets the context/session as authenticated and stores the userID as the authenticated user ID.
boolean waitAtScreenClass(int timeout, int hardDelay)
Parameters:
timeout - the time (in ms) we have to wait for the screen class.
hardDelay - a delay (in ms) added after the screen class has arrived.

Returns: true if we the screen did arrive, false otherwise.
This method only concerns Minitel projects.

Waits for one of the screens described by the screen classes in the project to arrive. The method waits for all the screen classes except the current one. You can use waitAtScreenClass() method to synchronize your handler before returning “redetect”, “accumulate” or “skip”.
boolean waitNextPage(String action, int timeout, int hardDelay)
Parameters:
action - the action to perform before waiting.
timeout - the time (in ms) we have to wait for the screen class.
hardDelay - a delay (in ms) added after the screen class has arrived.

Returns: true if we the screen did arrive, false otherwise.
This method only concerns Minitel projects.
Waits for a new page for the same screen class or a new screen class.

The method wait for one of the screens described by the screen classes in the project to arrive. We wait for all the screen classes except the current one. In the case of a next page on the same screen class, waitNextPage() will monitor the cursor position. the method will return when the cursor position returns to the same position it was before calling waitNextPage().

You can use waitNextPage() method to synchronize your handler before returning “redetect”, “accumulate” or “skip”.

Interesting methods in Context fields

Some fields of Context object are themselves objects, containing interesting methods to use in Convertigo transactions and sequences JavaScript code. The following list present these objects methods, with their description and parameters.

Table 3 - 5: Interesting methods in Context fields

Return Type Method signature Description
String context.httpServletRequest.getMethod() Returns the name of the HTTP method with which the request to Convertigo was made. It can be GET, POST, PUT, DELETE, HEAD.

Project API documentation

The following sections present the methods of the project object that are usable in transactions and sequences JavaScript code.

Methods detailed list

This section presents the list of methods contained in project object, with their description.

Table 4 - 1: project methods list

Return Type Method signature Description
void set(key, value) Stores an object identified by a key, in the Project, shared by users and survive until the Engine is stopped or restarted.
Object get(key) Gets the object bound with the specified key in the Project, or null if no object is bound with this key.

Sample

var sharedObject = project.get("mySharedObject");
if (sharedObject == null) {
    project.set("mySharedObject", sharedObject = {});
}
sharedObject.lastCall = new Date();

Server API documentation

The following sections present the methods of the server object that are usable in transactions and sequences JavaScript code.

Methods detailed list

This section presents the list of methods contained in server object, with their description.

Table 4 - 1: server methods list

Return Type Method signature Description
void set(key, value) Stores an object identified by a key, in the Server, shared by users and survive until the Engine is stopped or restarted.
Object get(key) Gets the object bound with the specified key in the Server, or null if no object is bound with this key.

Sample

var sharedObject = server.get("mySharedObject");
if (sharedObject == null) {
    server.set("mySharedObject", sharedObject = {});
}
sharedObject.lastCall = new Date();

Include API documentation

The following sections present the global function include usable in transactions and sequences JavaScript code.

Function API

Return Type Method signature Description
void include(path) Include to the scope the Javascript file resolved by the path variable, relative to the current project.

Sample

include("js/myCommonLib.js");
myCommonFunction();

Use API documentation

The following sections present the global function use usable in transactions and sequences JavaScript code.

Function API

Return Type Method signature Description
void use(“expression”) Load and cache to the shared Project memory to save time when using native Java classes.

Sample

var md5 = ("org.apache.commons.codec.digest.DigestUtils.md5Hex"); // saving time for next calls
log.message("'Hello World!' md5 is: " + md5("Hello World!"));

Add your own Java code or library

The JavaScript code can call Java classes already loaded by Convertigo (like some Apaches libraries or internal to Convertigo). You can also provide your own jar file or Java classes. Java classes or methods loading can be speedup by the use function. JDBC drivers can also be overridden with this feature.

Shared for all project

Java classes or jars can be added to the <convertigo workspace>/libs folder but not in sub folder. If you have classes files, you can add them to <convertigo workspace>/libs/classes folder.

For a specific project

Java classes or jars can be added to the <project dir>/libs folder but not in sub folder. If you have classes files, you can add them to <project dir>/libs/classes folder.