Sukrojen käynnistämiseen on useita mahdollisuuksia tilanteesta riippuen. Sukrot voivat myös kutsua toisia sukroja joko aliohjelminaan tai jatkamaan työtä eteenpäin. Turhan laajoja sukroja on syytä välttää; on parempi tehdät suuremmat sovellukset pienistä paloista, jotka käytön aikana kytkeytyvät automaattisesti toisiinsa.
Tavallisin keino sukron aloittamiseen on antaa kauttaviivalla varustettu komento, johon saattaa liittyä joukko parametreja. Parametrit sijoittuvat sukromuistiin aikaisemmin kuvatulla tavalla.
Esim. sukrokomennolla
/TRIMP 24,END,55,Times(11)
taitetaan teksti rivistä 24 lähtien 55 pican leveyttä vastaavaksi
olettaen, että tulostus tulee tapahtumaan 11 pisteen
Times-kirjasinlajilla. TRIMP
on Survon sukrokirjastoon kuuluva
työkalu, joka löytyy
Survon S
-hakemistosta (tavallisesti C:\E\S
).
Sukron nimen eteen saa liittää tarvittaessa täydellisen polkutunnuksen eli edellisen komennon voisi kirjoittaa myös muodossa
/C:\E\S\TRIMP 24,END,55,Times(11) .
Ellei sukrokomennossa ole täydellistä polkunimeä, sukroa etsitään
järjestyksessä seuraavista hakemistoista:
(oletetaan tässä, että Survo on asennettu hakemistoon C:\E
)
sucropath=<polku>
systeemitiedostossa SURVO.APU
(esim. sucropath=D:\SUCROS\
)
C:\E\W\S\
(SURVO 98)
C:\E\W\TUT\
(SURVO 98)
C:\E\S\
(vakiotyökalut)
C:\E\TUT\
(englanninkieliset opetusohjelmat)
Jos sukroa ei löydy mistään näistä hakemistoista, Survo tiedottaa
siitä virheilmoituksella
"Sucro <nimi> not found!".
Edellä mainittu hakemistojen suosituimmuusjärjestys takaa sen,
että polkunimi on hyvin harvoin tarpeen.
Sovelluskohtaiset sukrot kannattaa sijoittaa sovelluksen omaan
hakemistoon. Käyttäjäkohtaisille, useissa tilanteissa tarvittaville
sukroille oikea paikka on sucropath
-polku, jossa kannattaa pitää myös
käyttäjän mahdollisia omia versioita vakiotyökaluista.
Sukron aloituskomennon parametrit syrjäyttävät sukromuistin
sisällön. Näin tapahtuu silloinkin, kun parametreja ei anneta;
sukromuistin sisällöksi tulee W1=(empty)
. Aikaisempi muistin sisältö
kuitenkin säilyy, jos ainoana parametrina on merkki @
.
Sukron saa käynnistetyksi myös näppäinyhdistelmällä PREFIX T
,
jolloin alariville tulevassa kysymyksessä
Sucro functions: S=Start definition, R=Run ? _
valitaan vaihtoehto R
. Tällöin kysymys korvautuu
nimeä koskevalla uudella kysymyksellä
Run a sucro: Name of file ? _
Kun nimi annetaan, valittu sukro
aloittaa toimintansa. Sukromuistin sisältöön tämä aloitustapa ei
vaikuta ja siitä onkin hyötyä esim. testaustilanteissa, joissa
olemassa olevaa sukroa jatketaan uudella tekeillä olevalla.
{load <sukron_nimi>}
. Tässäkin sukromuistin sisältö
säilyy ja uusi sukro jatkaa täsmälleen samasta tilanteesta, mihin
edellisellä päästiin. Tällä tavalla suuret tehtäväkokonaisuudet
kannattaa jakaa pienempiin osiin.
load
-käskyjen avulla:
|
|
Tässä sukro AA
kirjoittaa tekstin " aa
" ja pyytää sukroa BB
jatkamaan, joka vuorostaan kirjoittaa tekstin " bb
" ja pyytää sukroa
AA
uudelleen jatkaamaan jne.
Kun siis sukro AA
aktivoidaan riviltä 8, saadaan tulostusta:
|
|
Sukrojen AA
ja BB
toiminnan vuorottelu jatkuisi ikuisesti, ellei
toimintaa keskeytetä napilla .
(piste).
Kun sukro ketjutetaan toiseen load
-käskyillä, alkuperäiseen
sukroon ei enää palata, ellei jokin myöhempi sukro kutsu sitä
uudelleen, kuten tapahtui edellisessä esimerkissä.
Tilanne muuttuu, jos sukro kutsuu toista sukroa muotoa
{call <sukron_nimi>}
olevalla käskyllä tai aktivoimalla käyttäjän tapaan kenttään
kirjoitetun sukron kutsukomennon. Tällöin kutsuttu sukro toimii
aliohjelman kaltaisesti; kun se lopettaa toimintansa, kutsuva sukro
jatkaa toimintaa edelleen.
|
|
Kyseessä on kolme sukroa CC
, DD
ja EE
, joiden listaukset ovat
riveillä 13-25. Kun CC
aktivoidaan (rivillä 27), se kutsuu aloituksen
jälkeen sukroa DD
, joka vuorostaan oman aloituksen jälkeen kutsuu
sukroa EE
. Kun EE
lopettaa, DD
jatkaa toimintaansa ja lopettaa,
jolloin taas CC
jatkaa toimintaansa ja lopettaa.
Tähän tapaan sisäkkäisiä sukrojen kutsuja sallitaan
samanaikaisesti viisi, mikä riittää kaikkiin järkeviin sovelluksiin.
Jos sisäkkäisten sukrojen määrä ylittyy viidestä, toiminta keskeytyy
virheilmoitukseen "Too many nested sucros!". Mikäli tuntuu siltä, että
jossain tilanteessa pitäisi saada sukroja enemmän sisäkkäin,
sovellusta ei liene suunniteltu mielekkäästi.
Esim. Survon suomenkielisessä opetussarjassa, jossa valikkoja
esiintyy sisäkkäin jopa viidessä polvessa, asioita ei ole kytketty
sisäkkäin call
-käskyillä vaan peräkkäin load
-käskyillä, jolloin
yleensä pysytään sukrojen tasolla 1 (tasonumerohan näkyy vasemmassa
yläkulmassa). Se, että opetusohjelmien valikot ovat käyttäjän
näkökulmasta sisäkkäin, on hoidettu sukromuistin ensimmäisen paikan
välityksellä. Sen sisältö kertoo, mikä on kulloinkin luonnollinen
(oletusarvoinen) jatko. Joidenkin opetusohjelmien sisällä käytetään
toisia sukroja aliohjelmina mutta vain sisäkkäiseen syvyyteen 3 asti.