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