Este ejemplo de macro explica cómo utilizar funciones comunes para interactuar con los campos de la Macro API. Por ejemplo, cómo obtener texto de campo, ver información de campo y cómo utilizar field.setText como alternativa a sendKeys para interactuar con el host.
NOTA:Por consideraciones de navegador, ui.message colapsa cadenas de espacios a un solo espacio. Los espacios se preservan en el JavaScript actual.
var macro = createMacro(function*() {
'use strict';
// Obtener PresentationSpace para interactuar con el host
var ps = session.getPresentationSpace();
// Declarar variables para uso posterior
var fields;
var field;
var searchString = 'z/VM';
// Establecer el tiempo de espera predeterminado para las funciones "wait"
wait.setDefaultTimeout(10000);
// Macro de ejemplo para trabajar con FieldList y Fields
try {
yield wait.forCursor(new Position(24, 2));
// Obtener la lista de campos.
fields = ps.getFields();
// Ejecutar en toda la lista de campos y mostrar la información del campo.
for(var index = 0; index < fields.size(); index++) {
field = fields.get(index);
yield ui.message("Field " + index + " info: " + field.toString());
}
yield ui.message("Ahora, encontrar un campo que contenga el texto '" + searchString + "'");
field = fields.findField(new Position(1, 1), searchString);
if(field !== null) {
yield ui.message("Found field info: " + field.toString());
yield ui.message("¿Encontrado primer plano de campo es verde? " + (Color.GREEN === field.getForegroundColor()));
yield ui.message("¿Encontrado primer plano de campo es predeterminado? " + (Color.BLANK_UNSPECIFIED === field.getBackgroundColor()));
}
// Ahora, encontrar campo de comando y modificarlo.
field = fields.findField(new Position(23, 80));
if(field !== null) {
field.setText("cics");
}
yield ui.message("Clic para enviar 'cics' al host.");
ps.sendKeys(ControlKey.ENTER);
// Esperar a nueva pantalla; obtener nuevos campos.
yield wait.forCursor(new Position(10, 26));
fields = ps.getFields();
// Encontrar campo de usuario y configurarlo.
field = fields.findField(new Position(10, 24));
if(field !== null) {
field.setText("myusername");
}
// Encontrar campo de contraseña y configurarlo.
field = fields.findField(new Position(11, 24));
if(field !== null) {
field.setText("mypassword");
}
yield ui.message("Clic para enviar inicio de sesión al host.");
ps.sendKeys(ControlKey.ENTER);
// Esperar a nueva pantalla; obtener nuevos campos.
yield wait.forCursor(new Position(1, 1));
fields = ps.getFields();
// Encontrar campo de comando y configurar comando logoff.
field = fields.findField(new Position(24, 45));
if(field !== null) {
field.setText("cesf logoff");
}
yield ui.message("Clic para enviar logoff al host.");
ps.sendKeys(ControlKey.ENTER);
} catch (error) {
yield ui.message(error);
}
//Fin Macro Generada
});
// Ejecutar la macro
return macro();