Struktura makra

To poglavje ima dva namena, prvi�, opisati splo�no strukturo makra, kot jo je mogo�e videti v skriptu makra XML, in drugi�, prikazati nekaj povezav med Urejevalnikom makrov in specifi�nimi elementi XML v skriptu makra.

Skript makra

Skript makra je skript XML, v katerem je shranjen makro Host On-Demand. Besedilo XML skripta makra si lahko ogledate in ga urejate z Urejevalnikom kode (prikazanim v temi Urejevalnik kode). V Urejevalniku makrov so prikazane iste informacije, kot jih lahko vidite v Urejevalniku kode, toda v Urejevalniku makrov so prikazane v obliki zapisa, ki je bolj prijazna do uporabnika, s seznami, potrditvenimi polji, vnosnimi polji in drugimi kontrolniki grafi�nega uporabni�kega vmesnika (glejte temo Urejevalnik makrov).

�e se vsaj malo seznanite z elementi XML makro jezika, boste veliko bolje razumeli pomembne teme, vklju�no z naslednjimi:

Zato se ta knjiga pogosto sklicuje ne samo na vnosna polja, gumbe in sezname Urejevalnika makrov, ampak tudi na ustrezne elemente XML, v katerih so shranjene te iste informacije.

Elementi XML

�e �elite razumeti skripte makra, se vam ni treba nau�iti veliko o XML-u, le osnove skladnje. �e morate osve�iti znanje o skladnji XML, to lahko storite v temi Skladnja XML v makro jeziku programa the Host On-Demand. Je pa skoraj vse, kar morate vedeti, opisano v tem podrazdelku.

Kot najbr� �e veste, je skript XML sestavljen iz zbirke elementov XML, med katerimi nekateri vsebujejo druge elemente XML, na podoben na�in kot nekateri elementi HTML vsebujejo druge elemente HTML. Vendar pa za razliko od HTML-ja, XML omogo�a razvijalcu programa, da definira nove elemente XML, ki odra�ajo strukturo informacij, ki jih razvijalec �eli shraniti. Makro jezik programa Host On-Demand vsebuje pribli�no 35 razli�nih tipov elementov XML za shranjevanje informacij, potrebnih za opis makra. Ta makro jezik je podrobno opisan v temi Makro jezik.

Kadar je v tej knjigi mi�ljen element XML makra, je ime elementa obdano s kotnimi oklepaji. Primeri: element <HAScript>, element <screen>.

Slika 8 prikazuje primer elementa XML:

Slika 8. Vzor�ni element XML
<SampleElement attribute1="value1" attribute2="value2">
...
</SampleElement>

Element <SampleElement> na zgornji sliki vsebuje klju�ne komponente vsakega elementa makra. Prva vrstica je za�etna oznaka. Sestavljajo jo levi kotni oklepaj (<), ki mu sledi element XML (SampleElement), temu sledijo definicije atributov, ki jim sledi desni kotni oklepaj (>). Drugo vrstico sestavlja tropi�je (...), ki ni del skladnje XML, ampak je na zgornji sliki uporabljeno, da ozna�uje, da so lahko v elementu <SampleElement> prisotni �e drugi elementi. Tretja vrstica je kon�na oznaka. Vsebuje ime elementa v kotnih oklepajih s po�evnico naprej za prvim kotnim oklepajem (</Sample Element>).

V za�etni oznaki so atributi podani z imenom atributa (na primer attribute1), ki mu sledi ena�aj (=), temu pa sledi vrednost atributa v narekovajih (na primer "value1"). V za�etni oznaki se lahko pojavi poljubno �tevilo atributov.

�e element makra ne vsebuje drugih elementov XML, potem ga je mogo�e zapisati v skraj�ani obliki, ki jo prikazuje Slika 9:

Slika 9. Vzor�ni element XML, zapisan v skraj�ani obliki zapisa
<SampleElement attribute1="value1" attribute2="value2"  />

Na zgornji sliki je element <SampleElement> zapisan z levim kotnim oklepajem (<), ki mu sledi ime (SampleElement), temu sledijo atributi, ki mu sledita po�evnica naprej in kotni oklepaj (/>). Tako je celoten element XML zapisan v enem samem paru kotnih oklepajev.

Konceptualni prikaz skripta makra

Skript makra obsega en sam element <HAScript>, ki lahko vsebuje do tri glavne tipe podelementov:

Slika 10 ka�e konceptualni prikaz vzor�nega skripta makra, ki vsebuje tri elemente <screen>.

Slika 10. Konceptualni prikaz skripta makra

Na zgornji sliki je prikazan element <HAScript> (HAScript), ki vsebuje primerke glavnih tipov podelementov: element <import> (Import), element <vars> (Variables) in tri elemente <screen> (Screen1, Screen2, and Screen3).

Vsi skripti makra imajo tako strukturo, samo ve�ina jih ima ve� zaslonov. �e bi zgornji makro imel 50 zaslonov, potem bi bil zgornji diagram videti tako reko� enako, samo za zaslonom Screen3 bi bili dodatni zasloni: Screen4, Screen5 in tako dalje do Screen50. (Ni nujno, da vrstni red, v katerem so zasloni shranjeni, predstavlja vrstni red, v katerem so zasloni izvedeni, ko je makro predvajan.)

Element <HAScript> je glavni element skripta makra. (HAScript pomeni Host Access Script.) Obdaja celoten makro in v za�etni oznaki vsebuje tudi atribute, ki vsebujejo informacije, ki veljajo za celoten makro, na primer ime makra. Primer elementa <HAScript> prikazuje Slika 12.

Z elementom <import> uvozite javanske razrede in ni obvezen. Uva�anje javanskih razredov je napredna tema, ki je obravnavana �ele v temi Izdelava uvo�enega tipa za javanski razred.

Z elementom <vars> navedete in inicializirate spremenljivke, ki pripadajo enemu od standardnih podatkovnih tipov (logi�na vrednost, celo �tevilo, realno �tevilo z dvojno natan�nostjo, niz ali polje). Uporaba standardnih spremenljivk je napredna tema, ki je obravnavana �ele v temi Spremenljivke in uvo�eni javanski razredi.

Z elementom <screen> definirate zaslon makra. Element <screen> je najpomembnej�i element, ki se pojavi v <HAScript>. Kot prikazuje Slika 10 zgoraj, je skript makra sestavljen ve�inoma iz elementov <screen> (na primer Screen1, Screen2 in Screen3 na sliki). Poleg tega se ve�ina drugih vrst elementov XML v skriptu makra pojavi nekje v elementu <screen>.

Predstavitev zavihka Makro

Zato, da bi vas seznanili z Urejevalnikom makrov, je v tem razdelku zelo preprosta primerjava med zavihkom Makro v Urejevalniku makrov in elementom <HAScript>, opisanim v predhodnem razdelku.

Urejevalnik makrov ima �tiri zavihke: Makro, Zasloni, Povezave in Spremenljivke. Prvi zavihek, zavihek Marko, se zelo sklada z elementom <HAScript>. Pravzaprav je zavihek Makro grafi�ni uporabni�ki vmesnik za nekatere informacije, ki so shranjene v atributih za�etne oznake elementa <HAScript>.

Tako kot je element <HAScript> glavni element skripta makra in v atributih vsebuje informacije, ki veljajo za celoten makro (na primer ime makra), podobno je zavihek Makro prvi zavihek v Urejevalniku makrov, na katerem dostopate do nekaterih istih globalnih informacij.

Slika 11 prikazuje Urejevalnik makrov z izbranim zavihkom Makro.

Slika 11. Zavihek Makro v Urejevalniku makrov

Na zgornji sliki lahko vidite, da ima zavihek Makro vnosna polja za Ime makra, Opis in druge informacije skupaj z ve� potrditvenimi polji. Bodite pozorni na dvoje polj:

Slika 12 prikazuje vzor�ni element <HAScript>, ki vsebuje iste informacije, kot so prikazane na zavihku Makro, ki ga prikazuje Slika 11, pa tudi nekaj dodatnih informacij. V Urejevalniku kode je element <HAScript> zapisan v eni sami vrstici, tukaj pa je element zapisan v ve� vrsticah, zato da lahko vidite vse atribute.

Slika 12. Vzor�ni element <HAScript>
<HAScript
     name="ispf_ex1"
     description=" "
     timeout="60000"
     pausetime="300"
     promptall="true"
     author=""
     creationdate=""
     supressclearevents="false"
     usevars="false"
     ignorepauseforenhancedtn="false"
     delayifnotenhancedtn="0">

...

</HAScript>

V elementu <HAScript> na zgornji sliki lahko vidite, da vsakemu vnosnemu polju na zavihku Makro, ki ga prikazuje Slika 11, ustreza en atribut. Na primer atribut name v elementu <HAScript> (name="ispf_ex1") ustreza polju Ime makra na zavihku Makro. Podobno atribut usevars v elementu <HAScript> (usevars="false") ustreza potrditvenemu polju V makru uporabite spremenljivke in aritmeti�ne izraze na zavihku Makro.

Zaslon makra in njegove podkomponente

V tem razdelku je opisan zaslon makra z glavnimi podkomponentami. Definicija zaslona makra je odvisna od drugega izraza, ki ga je treba definirati, to je zaslon aplikacije.

Zaslon aplikacije

Zaslon aplikacije je smiselna razporeditev znakov, ki jih aplikacija gostitelja prika�e v oknu seje Host On-Demand.

Verjetno ste ugotovili, da pojem zaslona aplikacije �e dobro poznate. Primer zaslona aplikacije je Meni s primarnimi mo�nostmi ISPF (ISPF Primary Option Menu), ki ga prikazuje Slika 13. (Ta isti zaslon aplikacije prikazuje Slika 5.)

Slika 13. Vzor�ni zaslon aplikacije, Meni s primarnimi mo�nostmi ISPF (ISPF Primary Option Menu)

Na zgornji sliki lahko vidite, da so na tem zaslonu aplikacije prikazani menijski izbori v vrstici na vrhu (Menu, Utilities, Compilers, Options itd.), dodelitev funkcijskih tipk v vrstici na dnu (F1=Help, F2=Split itd.), naslov pod vrhom (ISPF Primary Option Menu), seznam mo�nosti vzdol� leve strani (0 through V) in vnosno polje za vnos �tevilke ali �rke mo�nosti (Option ===>). Ko uporabnik poda vhodne podatke, na primer vnese 3 (za Utilities) in nato pritisne tipko Enter, aplikacija ISPF odstrani vse te vidne postavke iz okna seje in prika�e druga�en zaslon aplikacije.

Zaslon makra

Zaslon makra je nabor navodil, ki izvajalnemu okolju makra pove, kako naj upravlja obisk dolo�enega zaslona aplikacije. Zaslon makra vklju�uje:

�eprav ta pojem v tem trenutku ni zelo intuitiven, lahko v istem makru obstaja ve� zaslonov makra, ki se nana�ajo na isti zaslon aplikacije. Zaradi na�ina, na katerega so zasloni makra povezani eden z drugim, lahko med predvajanjem makra izvajalno okolje makra ve�krat obi��e isti zaslon aplikacije, pri �emer pri vsakem obisku obdela drug zaslon makra.

Poleg tega se lahko en zaslon makra sklicuje na ve� kot en zaslon aplikacije. Ko si je ve� zaslonov aplikacije podobnih, lahko razvijalec makra zgradi zaslon makra, ki obravnava vse podobne zaslone aplikacije.

Ne glede na to vsak zaslon makra ustreza enemu od zaslonov aplikacije. Ko snemate makro, objekt makra izdela in shrani zaslon makra za vsak zaslon aplikacije, ki ga obi��ete med snemanjem. �e obi��ete isti zaslon aplikacije ve� kot enkrat, objekt makra izdela in shrani zaslon makra za vsak obisk. Podobno, ko predvajate posneti makro, izvajalno okolje makra obdela en sam zaslon makra za vsak zaslon aplikacije, ki ga obi��e med predvajanjem makra.

Konceptualni prikaz zaslona makra

Zaslon makra obsega en sam element <screen>, ki vsebuje tri obvezne podelemente:

Vsi podelementi so obvezni, pojavi pa se lahko samo po eden od vsakega.

Slika 14 prikazuje konceptualen prikaz elementa <screen>:

Slika 14. Konceptualen prikaz elementa <screen>

Na zgornji sliki je prikazan element <screen> (Screen1), ki vsebuje tri obvezne podelemente: element <description> (Opis), element <actions> (Dejanja) in element <nextscreens> (Veljavni naslednji zasloni).

Vsi elementi <screen> imajo tako strukturo s temi tremi podelementi. (�etrti in neobvezni tip podelementa je element <recolimit>, ki je opisan pozneje v tej knjigi.)

Element <screen> je glavni element zaslona makra. Vsebuje vse ostale elemente, ki pripadajo temu dolo�enemu zaslonu makra, in v za�etni oznaki vsebuje tudi atribute, ki vsebujejo informacije, ki veljajo za celoten zaslon makra, na primer ime zaslona makra.

Element <description> vsebuje deskriptorje, ki izvajalnemu okolju makra omogo�ajo, da prepozna, da je element <screen>, ki mu pripada element <description>, povezan z dolo�enim zaslonom aplikacije. Deskriptorji in element <description> so opisani v temi Opis in prepoznavanje zaslona.

Element <actions> vsebuje razli�na dejanja, ki jih izvajalno okolje makra izvede na zaslonu aplikacije, na primer branje podatkov z zaslona aplikacije ali vnos pritiskov na tipke. Dejanja in element <actions> so opisani v temi Dejanja makrov.

Element <nextscreens> (Veljavni naslednji zasloni, ki ga prikazuje Slika 14) vsebuje seznam imen zaslonov vseh elementov <screen>, za katere je veljavno, da se pojavijo po trenutnem zaslonu makra. Element <nextscreens> in elementi, ki jih obdaja, so opisani v temi Prepoznavanje zaslona, 2. del.

Predstavitev zavihka Zasloni

V tem razdelku je prikazanih nekaj na�inov, na katere je zavihek Zasloni v Urejevalniku makrov povezan z elementom XML <screen>, ki je opisan v predhodnem razdelku. Slika 15 prikazuje Urejevalnik makrov z izbranim zavihkom Zasloni:

Slika 15. Zavihek Zasloni v Urejevalniku makrov

Na zgornji sliki lahko vidite, da zavihek Zasloni vsebuje:

Trenutno je izbran zavihek Splo�no.

Kot lahko vidite, sta na zavihku Zasloni dve polji Ime zaslona:

�e na seznamu Ime zaslona na vrhu zavihka Splo�no kliknete ime zaslona makra, s katerim �elite delati (na primer Screen1), Urejevalnik makrov na podzavihkih prika�e informacije, ki pripadajo temu zaslonu makra. Na seznamu, ki ga prikazuje Slika 15, je na primer prikazano ime zaslona makra Screen1, podzavihki pa prikazujejo informacije, ki pripadajo zaslonu Screen1. �e bi uporabnik na seznamu izbral drugo ime zaslona makra, na primer Screen10, potem bi Urejevalnik makrov na podzavihkih prikazal informacije, ki pripadajo zaslonu makra Screen10.

V vnosno polje Ime zaslona pod zavihkom Splo�no vnesete ime, ki ga �elite dodeliti trenutno izbranemu zaslonu. Ime zaslona, na primer Screenx, kjer x predstavlja celo �tevilo (na primer Screen1), je za�asno ime, ki ga objekt makra da zaslonu makra, ko ga izdela. To ime lahko obdr�ite ali ga zamenjate z bolj opisnim imenom, ki si ga boste la�je zapomnili. (�e imajo vsi va�i zasloni imena, kot so Screen3, Screen10, Screen24 itd., si je te�ko zapomniti, kaj kateri zaslon makra naredi.)

Najbr� ste �e opazili, da podzavihki Splo�no, Opis in Dejanja na zavihku Zasloni ustrezajo glavnim delom elementa XML <screen>, ki je opisan v predhodnem razdelku. Konkretno:

Kaj pa podelement <nextscreens>? Zaradi uporabnosti so informacije, ki pripadajo elementu <nextscreens>, predstavljene na zavihku vi�je ravni, in sicer na zavihku Povezave. Zavihek Povezave lahko vidite desno tik ob zavihku Zasloni, kar prikazuje Slika 15.

Slika 16 prikazuje za�etno in kon�no oznako XML vzor�nega elementa <screen> z imenom Screen1:

Slika 16. Za�etna in kon�na oznaka elementa <screen>
   <screen name="Screen1" entryscreen="true" exitscreen="false" transient="false">
   ...
   </screen>

Na zgornji sliki tropi�je (...) ni del besedila XML, ampak ozna�uje, da so bili obvezni elementi v elementu <screen> izpu��eni zaradi poenostavitve. Kot lahko vidite, atributi v za�etni oznaki ustrezajo poljem na zavihku Splo�no, ki ga prikazuje Slika 15. Atribut name (name="Screen1" ) na primer ustreza vnosnemu polju Ime zaslona na zavihku Splo�no, atribut entryscreen pa (entryscreen="true") ustreza seznamu Vstopni zaslon na zavihku Splo�no.

Slika 17 prikazuje besedilo XML za celotni element <screen>, vklju�no z elementi, ki jih obdaja:

Slika 17. Vzor�ni element XML <screen>
   <screen name="Screen1" entryscreen="true" exitscreen="false" transient="false">
      <description>
         <oia status="NOTINHIBITED" optional="false" invertmatch="false" />
      </description>
      <actions>
         <mouseclick row="4" col="15" />
         <input value="3[enter]" row="0" col="0" movecursor="true"
                   xlatehostkeys="true" encrypted="false" />
      </actions>
      <nextscreens timeout="0" >
         <nextscreen name="Screen2" />
      </nextscreens>
   </screen>

Na zgornji sliki lahko vidite, da element <screen> vsebuje obvezne elemente <description>, <actions> in <nextscreens>.