����������� ����� �����������

������������� XML

��������� XML � ����� ����������� Host On-Demand

������������ Host On-Demand �������� � �������� XML � �������������� ��������� XML ����� ����������� Host On-Demand. � ���� ������� ����������� ��������� ���������� XML � ���������� ������� ����� ����������� Host On-Demand:

�������� ����

����� ������������� ����� XML �������� ������������ ��������������� � ������� ��������� ���� (�������� ������ �������� ����).

����� �������� � ��������� ����� � ��������� ���� � �������������� ���������� ������ ������. ��� ����� ������ �������, ������ ��� ��� ��������� ���������� ����� ����� ���������� ���� � ������� ����������� XML ��� ���������� �����������.

�������� ���������

�� ���. 80 ����������� ��������� ���� ���� ��������� XML � ����� ����������� Host On-Demand. ���� ������ �������������� � ����� ������ ���������� XML � �� ����������, ��� ����� �������������� ����� ������ �������� ������ ����. ������ ������� � ���� ������ ����������, ����� �������� XML ������ � ������ ������ ��������� XML. ��������, ������ ������� � ���� ������, ������� <HAScript>, ���������� ��� ������� - ��� ��������, ��� �� �������� ������� ��������� � �������� ��� ������ ��������. ������ �������, <import>, ������ � ������� <HAScript> � �������� ������� <type>. � ��� �����.

���. 80. �������� ��������� � ����� ����������� Host On-Demand
<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>

������� �������, �� ������ ������������ ������� <trace>, ����� ��������� ����� � �������� �������� � ����� ���������� ������ �����������. � ���������, ���� �� ��������� � ����� ��� ����������, �� ������ ���������� ����������� ������� � ������ ��� ���, ��� � �������� ����������, ����������� � �������� ������ {}. ������:

���. 81. ������ ������������� �������� <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 ��������� �����:

���. 82. ����� ������� ������������� �������� <trace>
�� ���������: +{$var1$ = original}
����� ���������: +{$var1$ = updated}

�������� �������� �� ��, ��� �������� <trace> ���������� �� ������ ������ ���������� � �������� ������� {}, � ������� ��������� ��� ��� ����������, ��� � ���������� ����������.

������������� Host Access Toolkit � ��������������

��������� ����������� ������� Host Access Toolkit �������� ������, ������� ��������� ����������� ��������� ���������� �����������, ��������� �������� ����������� � ��������� ������������. ���� ������ �������� ������ ������������� ������������ �������� Host Access Toolkit.

�� ���. 83 ������� ������ ������� ������������, ������� ���������� ����������� ������ ID ������������ � ������, ��������� ���� � ��������� ����� � ������� �� ����� Welcome! (����� ����������!) ���� ������� ������������ �� ���������� Host Access Toolkit:

���. 83. ������ ������������, ������� ����������� ID � ������ ������������
<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:

���. 84. ��� Java ��� ��������� �������� Variable update (�������� ����������) � �������� Prompt (���������)
// �����������, ��� ������������ - ��������� ������� ������������ � ���������������� ��������� �����������.
// (����������� �������� � ���������������� ��������� 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) ��������� ������:

���. 85. ���������� ������� ���������
//������� ���������� $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()). ��������, �������� ��������� ������������������ ����:

���. 86. ������ ��������� ������������������ ����
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:

���. 87. ���, ���������� � 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.