This article concerns the HOD(Host On Demand) container. If you don't know what this is, this article is probably not for you.
In a terminal session, the user may be on different screens. For example, the "logon" screen, the "menu" screen, etc. Each screen needs to have a unique identification, to distinguish itself from others. This is to allow fields from a certain screen to be "wired to" (Expeditor specific concept), rather than on all screens in the same container.
With the Managed Browser container, the page can often be uniquely identified through the URL, however, with the terminal session, it doesn't have a unique identifier like the URL. In order to uniquely identify the screen, the HOD container produces a "screen descriptor".
A problem we had at a customer site was this:
1. logon to a mainframe using the terminal;
2. ask Composite Application Editor to produce a screen descriptor for this screen in which a field is to be wired to;
3. try a scenario where a field is to be populated by another container... it works, great.
4. restart Expeditor (or reconnect the terminal session)
5. try the scenario again, the wiring didn't work - no publish going across
The problem was: the screen descriptor is highly restrictive, so if the screen has, for example, a timestamp in it, or a date, and they change, then the matching between the screen descriptor and the current screen fails. Therefore no publish is performed.
Here's a screenshot of a screen which has a date and a timestamp in it:
(look at the terminal screen, with black background, towards the top there is the blue string "16:15, WEDNESDAY, SEPTEMBER 23, 2009")
The screen descriptor can be modified to set "optional" to the changable parts of the screen. Here's how:
1. when you create a new landmark selecting a part of the screen, selecting the "Receive" action, and adding by clicking the "gears" icon. For example:
(look above the terminal screen, where "Receive" is selected in the drop down box, "command" as the property to receive the text with which to populate, and "24,5-24,64" which is the selected area, in which to populate the text)
A screen descriptor is automatically generated for this. For example:
(look at the top of the main pane, "Landmark:" with "screen:123e779a230")
where the screen name is "123e779a230". In "Terminal Settings" tab, within it, in "Screens" tab, the full screen descriptor can be seen. For example:
(the screen descriptor is the XML on the right)
Locate the parts which may not be permanent, and make them optional. For example, with this:
(look at the middle line, containing "16:15, WEDNESDAY, SEPTEMBER 23, 2009", with its "optional" field now set to "true")
The optional field is changed to true from false.
Now, the modified screen descriptor is more flexible and should match the same screen even if the date and timestamp change over time.