Utilizzo di Field e FieldList

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();