Questa macro di esempio illustra come utilizzare funzioni comuni per interagire con i campi nell'API Macro. Ad esempio, come ottenere il testo dei campi, visualizzare informazioni sui campi e come utilizzare field.setText come alternativa a sendKeys per interagire con l'host.
NOTA:A causa delle considerazioni sul browser ui.message comprime stringhe di spazi in un solo spazio. Gli spazi vengono mantenuti nel codice JavaScript effettivo.
var macro = createMacro(function*() {
'use strict';
// Ottenere PresentationSpace per interagire con l'host
var ps = session.getPresentationSpace();
// Dichiarare variabili da utilizzare successivamente use
var fields;
var field;
var searchString = 'z/VM';
// Impostare il valore di timeout predefinito per le funzioni "wait"
wait.setDefaultTimeout(10000);
// Macro di esempio per operazioni con FieldList e Field
try {
yield wait.forCursor(new Position(24, 2));
// Ottenere l'elenco di campi.
fields = ps.getFields();
// Scorrere l'intero elenco di campi e visualizzare le informazioni sul campo.
for(var index = 0; index < fields.size(); index++) {
field = fields.get(index);
yield ui.message("Field " + index + " info: " + field.toString());
}
yield ui.message("Now, find a field containing the text '" + searchString + "'");
field = fields.findField(new Position(1, 1), searchString);
if(field !== null) {
yield ui.message("Found field info: " + field.toString());
yield ui.message("Found field foreground is green? " + (Color.GREEN === field.getForegroundColor()));
yield ui.message("Found field background is default? " + (Color.BLANK_UNSPECIFIED === field.getBackgroundColor()));
}
// Cercare ora un campo comando e modificarlo.
field = fields.findField(new Position(23, 80));
if(field !== null) {
field.setText("cics");
}
yield ui.message("Click to send 'cics' to host.");
ps.sendKeys(ControlKey.ENTER);
// Attendere il nuovo schermo; ottenere nuovi campi.
yield wait.forCursor(new Position(10, 26));
fields = ps.getFields();
// Trovare il campo utente e impostarlo.
field = fields.findField(new Position(10, 24));
if(field !== null) {
field.setText("myusername");
}
// Trovare il campo della password e impostarlo.
field = fields.findField(new Position(11, 24));
if(field !== null) {
field.setText("mypassword");
}
yield ui.message("Click to send login to host.");
ps.sendKeys(ControlKey.ENTER);
// Attendere il nuovo schermo; ottenere nuovi campi.
yield wait.forCursor(new Position(1, 1));
fields = ps.getFields();
// Trovare il campo comando e impostare il comando di disconnessione.
field = fields.findField(new Position(24, 45));
if(field !== null) {
field.setText("cesf logoff");
}
yield ui.message("Click to send logoff to host.");
ps.sendKeys(ControlKey.ENTER);
} catch (error) {
yield ui.message(error);
}
//Fine della macro generata
});
// Eseguire la macro
return macro();