������������ Host On-Demand �������� � �������� XML � �������������� ��������� XML ����� ����������� Host On-Demand. � ���� ������� ����������� ��������� ���������� XML � ���������� ������� ����� ����������� Host On-Demand:
<screen> ... </screen>
<Screen> ... </Screen>
<scrEen> ... </scrEen>
������ ������ �������� ������� ����� ��� HAScript, � ��� ��������� �������� ������������ � ������ ��������.<HAScript> ... </HAScript>
<import> ... </import>
<vars> ... </vars>
<screen> ... </screen>
<oia ... />
<numfields ... />
<oia status="NOTINHIBITED" optional="false" invertmatch="false" />
<numfields number="80" optional="false" invertmatch="false"/>
����� ������������ ���� �������� ������� ������� (�� ���� ��� ������� ������� �������, ������� �����), ����� �������, ��� �������� �� ������������� ��������.
<HAScript name="ispf_ex1" description="" timeout="60000" ... author="" ...>
...
</HAScript>
<description>
<oia status="NOTINHIBITED" optional="false" invertmatch="false">
<numfields number="80" optional="false" invertmatch="false"/>
</description>
����� ������������� ����� XML �������� ������������ ��������������� � ������� ��������� ���� (�������� ������ �������� ����).
����� �������� � ��������� ����� � ��������� ���� � �������������� ���������� ������ ������. ��� ����� ������ �������, ������ ��� ��� ��������� ���������� ����� ����� ���������� ���� � ������� ����������� XML ��� ���������� �����������.
�� ���. 80 ����������� ��������� ���� ���� ��������� XML � ����� ����������� Host On-Demand. ���� ������ �������������� � ����� ������ ���������� XML � �� ����������, ��� ����� �������������� ����� ������ �������� ������ ����. ������ ������� � ���� ������ ����������, ����� �������� XML ������ � ������ ������ ��������� XML. ��������, ������ ������� � ���� ������, ������� <HAScript>, ���������� ��� ������� - ��� ��������, ��� �� �������� ������� ��������� � �������� ��� ������ ��������. ������ �������, <import>, ������ � ������� <HAScript> � �������� ������� <type>. � ��� �����.
<HAScript> �������� ��� ��������� �������� ��������.
<import> ��������� ��� ��������� <type>.
<type> ��������� ��� ������������� ������ (����� Java).
<vars> ��������� ��� ��������� <create>.
<create> ������� � �������������� ����������.
<screen> ������� ������, �������� ���������� �� ����� ������ ������������.
<description> ��������� ��� ������������.
<attrib> ��������� ���������� ������� ����.
<cursor> ��������� ��������� �������.
<customreco> ��������� �� ���������������� ������� �������������.
<numfields> ��������� ���������� ����� �� ������.
<numinputfields> ��������� ���������� ����� ����� �� ������.
<string> ��������� ������ �������� �� ������.
<varupdate> ����������� �������� ����������.
<actions> ��������� ��� ��������.
<boxselection> ������ ���� ������ �� ������ ��������� �����.
<commwait> ������� ������������� ��������� �����.
<custom> �������� ���������������� ��������.
<extract> �������� ������ � ������ ��������� �����.
<else> ��������� �������� ������� else.
<filexfer> ���������� ��� ��������� ����.
<if> ��������� �������� ������� if.
<input> ���������� ������� ������ � ��������� �����.
<message> ������� ��������� ������������.
<mouseclick> ��������� ������� ������ ����.
<pause> ������� � ������� ��������� �������.
<perform> �������� �������� ���� ����� Java.
<playmacro> �������� ������ ������������.
<prompt> ����������� ���������� � ������������.
<trace> ���������� ������ �����������.
<varupdate> ����������� �������� ����������.
<nextscreens> ��������� ��� ��������� <nextscreen>.
<nextscreen> �������� ��� ����������� ���������� ������ ������������.
<recolimit> ��������� ��������, ���� ��������� ������ ����� �������������.
�������� ��������� � ��������������� ��������� �������� ������������ ����������� �� ������ ������ ����� ���������. � ���������, �������� ��������� �������:
�������� ��������� ��������� �������� � ������� �������� ����� �����������.
� ����� ����� �������� <HAScript> ����� �������� �����������, ��������� ������ ������ ����������� ����� �� ������, ��� � ������������ XML <!-- --> .
����������� ������� ���:
��� ���������� �������� ������������ �������� ���� ��������������� ���� �����������, ���� ���������, ���, ����� ��� ��������������� ���������� �������:
���������� �� ����, ��� �� ��������� �����������, �������� ���� ���������� ��� �������� ���� ����� (�������� ������ ������� ������������).
�������� ���� ������� �� ����� ��������� �� ������ � ��������� ���������:
����� ����, ������ ������������ ������ ����������� <!-- --> �� ��������� �������� <HAScript>. � ���� ������ �������� ���� �������� ��� ������ ����������� � ���������� �����, ����� ����� ��������� ��������.
��� ��������� ������� ������������� ������ ����������� <!-- --> ��� ������� ������������:
<!--
������������� �����������, ������� ������������
��������� ������� <screen>
-->
<screen name="Screen1" entryscreen="true" exitscreen="false" transient="false">
<!-- ����������� ���������� �������� <description> -->
<description>
<oia status="NOTINHIBITED" optional="false" invertmatch="false" />
</description>
<!-- ����������� ���������� �������� <actions> -->
<actions>
<mouseclick row="4" col="16" />
<input value="3[enter]" row="0" col="0" movecursor="true"
xlatehostkeys="true" />
</actions>
<!--
BEGIN
��������� �����������, ���������� �����
�������� <nextscreens>, � ���������� ���� ������������
�������� ������������.
�� �������� ������, ����� ����������� ���������
���� �������� ������������
<nextscreens timeout="0" >
<nextscreen name="Screen2" />
END ����� ���������� �����������
-->
</nextscreens>
</screen>
������� �������, �� ������ ������������ ������� <trace>, ����� ��������� ����� � �������� �������� � ����� ���������� ������ �����������. � ���������, ���� �� ��������� � ����� ��� ����������, �� ������ ���������� ����������� ������� � ������ ��� ���, ��� � �������� ����������, ����������� � �������� ������ {}. ������:
<vars>
<create name="$var1$" type="string" value="'original'" />
</vars>
.
.
<actions>
<trace type="SYSOUT" value="'�� ���������: '+$var1$" />
<varupdate name="$var1$" value="'updated'" />
<trace type="SYSOUT" value="'����� ���������: '+$var1$" />
</actions>
���, ���������� ����, ������� �� ������� Java ��������� �����:
�� ���������: +{$var1$ = original}
����� ���������: +{$var1$ = updated}
�������� �������� �� ��, ��� �������� <trace> ���������� �� ������ ������ ���������� � �������� ������� {}, � ������� ��������� ��� ��� ����������, ��� � ���������� ����������.
��������� ����������� ������� Host Access Toolkit �������� ������, ������� ��������� ����������� ��������� ���������� �����������, ��������� �������� ����������� � ��������� ������������. ���� ������ �������� ������ ������������� ������������ �������� Host Access Toolkit.
�� ���. 83 ������� ������ ������� ������������, ������� ���������� ����������� ������ ID ������������ � ������, ��������� ���� � ��������� ����� � ������� �� ����� Welcome! (����� ����������!) ���� ������� ������������ �� ���������� Host Access Toolkit:
<HAScript name="Logon" description="" timeout="60000" pausetime="300"
promptall="true" author="" creationdate="" supressclearevents="false"
usevars="true" >
<screen name="Screen1" entryscreen="true" exitscreen="false" transient="false">
<description>
<oia status="NOTINHIBITED" optional="false" invertmatch="false" />
</description>
<actions>
<prompt name="'ID ������������:'" description="" row="20" col="16" len="8"
default="" clearfield="false" encrypted="false" movecursor="true"
xlatehostkeys="true" assigntovar="" varupdateonly="false" />
<input value="'[tab]'" row="0" col="0" movecursor="true"
xlatehostkeys="true" encrypted="false" />
<prompt name="'������:'" description="" row="21" col="16" len="8"
default="" clearfield="false" encrypted="true" movecursor="true"
xlatehostkeys="true" assigntovar="" varupdateonly="false" />
<input value="'[enter]'" row="0" col="0" movecursor="true"
xlatehostkeys="true" encrypted="false" />
</actions>
<nextscreens timeout="0" >
<nextscreen name="Screen2" />
</nextscreens>
</screen>
<screen name="Screen2" entryscreen="false" exitscreen="true" transient="false">
<description>
<oia status="NOTINHIBITED" optional="false" invertmatch="false" />
<numfields number="7" optional="false" invertmatch="false" />
<numinputfields number="1" optional="false" invertmatch="false" />
</description>
<actions>
<message title="" value="'Welcome!'" />
</actions>
<nextscreens timeout="0" >
</nextscreens>
</screen>
</HAScript>
�����������, �� ����������� ������������ ��� ������������ � ��������� Host Access Beans � ������ ������� ID ������������ � ���������� � ��������� ��� ��� ������������ ������������� (��������, � ��������� Welcome). ����� ������� ��� ��������������� ����� ��������� ������������, �� �� ������ �������� �������� ����� ������ ����������� ��� ������ �������� � ����������� �������� ��� ����� ���������. ����� ������� ������� ������� ������������ � ������������ ��������� ��� ��� ��������� � ����������� �� ��������. ���� ���������� ������, ��� ����� ������� ��� � Java:
// �����������, ��� ������������ - ��������� ������� ������������ � ���������������� ��������� �����������.
// (����������� �������� � ���������������� ��������� Javadoc ��� ������� bean Macro � ���������� Macro,
// MacroVariablesDemo.java, � �������� � ��������� Host Access Toolkit).
//
// �����������, ��� macroString - ��� ������, ���������� ���������� �������� ������������
macro.setMacro(macroString);
MacroScreens ms = macro.getParsedMacro();
ms.createVariableString("$userid$", null); //������� ���������� $userid$ �
//��������� ��������� ""
MacroScreen mscrn = ms.get(0); //�������� ������ �����
MacroActions mas = mscrn.getActions(); //�������� �������� �� ������� ������
MacroActionPrompt map = (MacroActionPrompt)mas.get(0); //�������� ������ �������� �����������
map.setAssignToVar("$userid$"); //����������� ����� �� ����������� ���������� $userid$
MacroScreen mscrn2 = ms.get(1); //�������� ������ �����
MacroActions mas2 = mscrn2.getActions(); //�������� �������� ������� ������
MacroActionMessage mam = (MacroActionMessage)mas2.get(0); //�������� �������� ���������
mam.setMessage("'Welcome ' + $userid$ + '!'"); //�������� ���������, ����� ������������
//����������������� ��������� � �������������� $userid$
macro.setParsedMacro(ms); //������������� ������������ � �������������� ������������ MacroScreens
macro.play(); //��������������� ������������ � ����������� ����������
�����������, ��� ������ �� ������ �������� ������ ��������� � ��������� ��� Screen2. � ���� ��������� �� ������ �������� ����� � ����, ����������� �� ������. ��� ����� ���� �������� ����� macro.setParsedMacro(ms) ��������� ������:
//������� ���������� $datetimestamp$ � ��������� ��������� ""
ms.createVariableString("$datetimestamp$", null);
//������� ����� ���������� ��� ��������� ���� � ������� �� ������ ������ ������
MacroActionExtract mae = new MacroActionExtract(2, 35, 2, 71, "'datetimeextract'");
//����������� ������ ���� � ������� ���������� $datetimestamp$
mae.setAssignToVar("$datetimestamp$");
//��������� ���������� ����� ������� ���������
mas2.add(mae);
//������� ����� ��������� ��� ������ �� ������ ������� ���� � �������
MacroActionMessage mam2 = new MacroActionMessage(
"'�� ����� � ������� ' + $datetimestamp$", "'������� ���� � �������'");
//��������� ��������� ����� ����������
mas2.add(mam2);
�������� �������� �� ��, ��� � �������, ����� �������, ���������� ����������, ����������� � �������� ������������, ��� ���������� ��� ������ ���� ������� (� ������� ������ �� �������� createVariable()). ��������, �������� ��������� ������������������ ����:
MacroActionExtract mae = new MacroActionExtract(2, 35, 2, 71, "'datetimeextract'");
mae.setAssignToVar("$datetimestamp$");
ms.createVariableString("$datetimestamp$", null);
mas2.add(mae);
MacroActionMessage mam2 = new MacroActionMessage("'�� ����� � ������� ' +
$datetimestamp$", "'������� ���� � �������'");
mas2.add(mam2);
����������� ���� ������������������ ���������, ��� ��� ���������� $datetimestamp$ ������� �� ����, ��� MacroActionExtract ���� ��������� � MacroActions (������� ��� ������� � MacroScreens, ������ ��� ��� ���������� ���� ����� �� MacroScreens). ���� �� ����� createVariable() ��������� � ����� ����������� ���� ������������������, ����� ������������������ ���� �� �����������, ������ ��� ���������� $datetimestamp$ ���� �� ���������� � ������� �������, ����� MacroActionExtract � MacroActionMessage ���� ��������� � MacroActions � ������� � MacroScreens.
��� ������ MacroScreens �������� �� ��������� isUseVars() - false. ������ ���� �� ��������� ���� �� ������� createVariable() � ����� MacroScreens, isUseVars() ������������� ��������� �������� true. ���� �� �� �������� ������� ����������, �� ��� ���� ������, ����� ���� �������� ���� ����������� �� ������� ���������� � ���������� (��������, �� ������ �������� ���������� �������� ������������ ��� ����������� ����������, ��������� ���������� �� ������������ ������������), ���� ������� setUseVars(true) � ����� MacroScreens.
��� ���������, ������� ������ ����� ��������� ���������� ��� ��������� � �������� ����������, ����� ������������ ������ setAttribute(String) � ���� getAttributeRaw(), ���� isAttributeRaw(). ������, ���� �� ������ ������������ ��������� ��� ������������� �������� ������ ��� MacroActionInput, �� ������ ������� setRow("$rowvar$ + 1"). ��� ����������� ������ getRow() ����� ���������� ��������� �������� ����� ��������� (����� �����), � ��� ������ getRowRaw() ����� ���������� "$rowvar$ + 1". �������, ��� ���� �� ��������� ��������� ��������, �� �������� �������������� �������� NumberFormatException:
MacroActionInput mai = new MacroActionInput();
mai.setRow("$rowvar$ + 1");
int row = mai.getRow();
��� ������� ���, ��� mai ��� �� ���� ������� � �����-���� ������� MacroScreens, ����� isUseVars() ���������� �������� true. ������� "$rowvar$ + 1" ��������������� ��� ������, � �� ��� �������� ���������� ���� ����. �������� ����� �������� �� ��, ��� ���� �� �������� ������ setAttribute() ��� ������� ���������� � ��������� ����� ����, ��� ������, ���������� ��� ��������, ��� ������ � MacroScreens, �� ��, ��������, ��������� ����� ���������, ��������� � ���� ������ ������������� �� �������� ������������� �������� � ��������� ����������/��������� � �����, ����� ��� ����������� � MacroScreens.
����� VariableException ������������ ��� ��������� �������������� ��������, ����� ��� ������������ ��������� (��������, "45 *") ��� ������������ �������������� �������� (��������, "'3a' * 2").
������� ���������, � ������� ������������ ������������������� ������������, MacroVariablesDemo.java, �������� � ���������������� �������� �������� Host Access Toolkit.