Interacción con el usuario

Este ejemplo ilustra cómo utilizar los métodos API provistos para pedirle entradas al usuario o para alertarle con un mensaje.

var macro = createMacro(function*(){
  'use strict';
  
  // El objeto "ui" ofrece funciones para preguntar información al usuario y para mostrar información
  
  // Declarar variables para uso posterior var username;
  var password;
  var flavor;
  var scoops;
  
  //Inicio Macro Generada
  var ps = session.getPresentationSpace();
  
  try {
  
  // Pedir al usuario que ingrese su nombre de usuario y guardarlo en una variable.
  // Recuerde que la palabra clave 'yield' es necesaria para bloquear la ejecución mientras se espera a la entrada del usuario.
  username = yield ui.prompt(‘Introduzca su nombre de usuario');
  
  // Pide al usuario ingresar un valor predeterminado que se le ha facilitado.
  flavor = yield ui.prompt('¿Cuál es su helado favorito?', 'Chocolate');
  
  // Pide al usuario ingresar información privada cuando se utiliza la opción 'mask' y el campo de entrada se enmascarará mientras escribe.
  // Si el parámetro no se utiliza, se puede utilizar 'cero' para especificar que no se desea utilizar.
  // Aquí lo ilustramos especificando que no necesitamos mostrar un valor predeterminado.
  password = yield ui.prompt('Introduzca su contraseña', null, true);
  
  // La función de preguntar devuelve cero si el usuario hace clic en el botón 'Cancelar' en lugar de en el botón 'Aceptar'.
  // Una forma de tratar este caso es ajustar la llamada a un bloque try/catch.
  scoops = yield ui.prompt('¿Cuántas cucharadas quiere?');
  if (scoops === null) {
    // Se sale de la macro.
    return;
    // Alternativamente podría arrojar un Error y capturarlo en el "catch" situado a continuación
  }
  // Utilizar los valores coleccionados para pedir nuestro ice cream
  ps.sendKeys(username + ControlKey.TAB + password + ControlKey.ENTER);
  yield wait.forCursor(new Position(5, 1));
  ps.sendKeys(flavor + ControlKey.TAB + scoops + ControlKey.ENTER);
  
  // Mostrar un mensaje al usuario. Utilizando la palabra clave 'yield' enfrente de la llamada bloquea
  // la ejecución de la macro hasta que el usuario hace clic en el botón 'Aceptar'.
  yield ui.message('Orden correcta. Enjoy your ' + scoops + ' scoops of ' + flavor + ' ice cream ' + username + '!');
} catch (error) {
  // Aquí utilizamos el objeto ui para mostrar un mensaje de que ha ocurrido un error
  yield ui.message(error.message);
}
//Fin Macro Generada

});

return macro();