Makro für die automatische Anmeldung für Mainframes

In diesem Beispiel wird mit dem AutoSignon-Objekt ein Makro erstellt, das die einem Benutzer zugeordneten Berechtigungsnachweise verwendet, um ein Weiterleitungsticket vom Digital Certificate Access Server (DCAS) abzurufen.

var macro = createMacro(function*() {
	'use strict';
	
	// Präsentationsbereich für die Interaktion mit dem Host abrufen
	var ps = session.getPresentationSpace();
	
	// Variable für Weiterleitungsticket für die Anmeldung
	var passTicket;
	
	// Anwendungs-ID für die Anmeldung
	var appId = 'CICSV41A';
	
	// Standardwartezeit für "wait"-Funktionen festlegen
	wait.setDefaultTimeout(10000);
	
	// Start generiertes Makro
	try {
		yield wait.forCursor(new Position(24, 2));
		
		// Weiterleitungsticket von DCAS abrufen.
		passTicket = yield autoSignon.getPassTicket(appId);
		
		ps.sendKeys('cics');
		ps.sendKeys(ControlKey.ENTER);
		
		yield wait.forCursor(new Position(10, 26));
		
		// Generierten Benutzernamen mit 'sendUserName(passTicket) ...' ersetzen
		yield autoSignon.sendUserName(passTicket);
		
		// ps.sendKeys('bvtst01' + ControlKey.TAB + ControlKey.TAB);
		ps.sendKeys(ControlKey.TAB + ControlKey.TAB);
		
		yield wait.forCursor(new Position(11, 26));
		
		// Generiertes Kennwort mit 'sendPassword(passTicket) ...' ersetzen
		yield autoSignon.sendPassword(passTicket);
		
		// var userInput3 = yield ui.prompt('Kennword:', '', true);
		// if (userInput3 === null) {
			// throw new Error('Kein Kennwort angegeben');
		// }
		// ps.sendKeys(userInput3);
		ps.sendKeys(ControlKey.ENTER);
		
		yield wait.forCursor(new Position(1, 1));
		yield ui.message('Angemeldet. Melde mich ab.');
		ps.sendKeys('cesf logoff');
		ps.sendKeys(ControlKey.ENTER);
	} catch (error) {
		yield ui.message(error);
	}
	//Ende generiertes Makro
});

// Makro ausführen
return macro();