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