Questo esempio illustra le interazioni di base seguenti:
Invio di dati all'host
Attesa della visualizzazione di schermi
Utilizzo della parola chiave yield in attesa delle funzioni asincrone
Lettura del testo dallo schermo
Visualizzazione di informazioni di base all'utente
Gestione di errori di base
Per impostazione predefinita, per tutte le macro sono disponibili gli oggetti seguenti:
session - Punto di ingresso principale per accedere all'host. Consente di connettersi, disconnettersi e fornisce accesso a PresentationSpace.
L'oggetto PresentationSpace ottenuto da session rappresenta lo schermo e fornisce molte capacità comuni, ad esempio ottenimento e impostazione della posizione del cursore, invio di dati all'host e lettura dello schermo.
wait - Fornisce un modo semplice per attendere che si verifichino i vari stati dell'host prima di continuare a inviare altri dati o a leggere dallo schermo.
UI - Fornisce capacità di interfaccia utente di base. Mostra i dati o richiede informazioni all'utente.
// Creare una nuova funzione macro
var macro = createMacro(function*(){
'use strict';
// Per impostazione predefinita, per tutte le macro sono disponibili gli oggetti seguenti:
// 1. session - Punto di ingresso principale per accedere all'host. Consente di connettersi, disconnettersi e fornisce accesso a PresentationSpace.
// L'oggetto PresentationSpace ottenuto da session rappresenta lo schermo e fornisce molte capacità comuni, ad esempio ottenimento e impostazione della
// posizione del cursore, invio di dati all'host e lettura dello schermo.
// 2. wait - Fornisce un modo semplice per attendere che si verifichino i vari stati dell'host prima di continuare a inviare altri dati o a leggere dallo schermo.
// 3. ui - Fornisce capacità di base di interazione con l'utente. Mostra i dati o richiede informazioni all'utente.
// Dichiarare una variabile per la lettura e la visualizzazione di alcuni dati dello schermo.
// La procedura consigliata è dichiarare tutte le variabili all'inizio di una funzione.
var numberOfAccounts = 0;
// Iniziare ottenendo l'oggetto PresentationSpace, che fornisce molte operazioni comuni dello schermo.
var ps = session.getPresentationSpace();
try {
// Può impostare e ottenere la posizione del cursore
ps.setCursorPosition(new Position(24, 2));
// Utilizzare la funzione sendKeys per inviare caratteri all'host
ps.sendKeys('cics');
// SendKeys viene utilizzata anche per inviare all'host tasti quali PA e PF.
// Vedere tutte le opzioni disponibili in "Tasti di controllo" nella documentazione
ps.sendKeys(ControlKey.ENTER);
// Attendere che il cursore si trovi nella posizione corretta.
// L'oggetto wait fornisce numerose funzioni per attendere che si verifichino determinati stati
// in modo che sia possibile inviare altri tasti o leggere i dati dello schermo.
yield wait.forCursor(new Position(24, 2));
// È possibile combinare caratteri e tasti di controllo in una chiamata sendKeys.
ps.sendKeys('data' + ControlKey.TAB + ControlKey.TAB + 'more data' + ControlKey.ENTER);
// La parola chiave "yield" deve essere utilizzata prima di tutte le chiamate alle funzioni "wait" e "ui".
// Indica al browser di interrompere l'esecuzione della macro fino a quando la
// funzione wait (asincrona) restituisce il risultato. Consultare la documentazione per informazioni sulle funzioni
// che richiedono la parola chiave yield.
yield wait.forCursor(new Position(10, 26));
ps.sendKeys('accounts' + ControlKey.ENTER);
// È possibile anche attendere che il testo venga visualizzato in aree specifiche dello schermo
yield wait.forText('ACCOUNTS', new Position(3, 36)) ;
ps.sendKeys('1' + ControlKey.ENTER);
// Tutte le funzioni wait scadranno se i criteri non vengono soddisfatti entro il limite di tempo definito.
// È possibile aumentare i timeout con un parametro aggiuntivo nelle funzioni wait (in millisecondi)
// Tutti i timeout sono specificati in millisecondi e il valore predefinito è 10 secondi (10000ms).
yield wait.forCursor(new Position(1, 1), 15000);
ps.sendKeys('A' + ControlKey.ENTER);
// PS fornisce la funzione getText per leggere il testo dalla schermata
numberOfAccounts = ps.getText(new Position(12, 3), 5);
// Utilizzare l'oggetto ui per visualizzare alcuni dati dalla schermata
ui.message('Numero di account attivi: ' + numberOfAccounts);
// try/catch consente di rilevare gli errori e segnalarli in un'ubicazione centrale
} catch (error) {
// Utilizzare di nuovo l'oggetto ui per visualizzare un messaggio che informa che si è verificato un errore
yield ui.message('Error: ' + error.message);
}
//Fine della macro generata
});
// Eseguire la macro e restituire i risultati a Macro Runner
// L'istruzione return è necessaria poiché l'applicazione la utilizza
// per sapere se la macro è stata eseguita correttamente e se è terminata
return macro();