This sample illustrates how to use the provided API methods to prompt the user for input or alert them with a message.
var macro = createMacro(function*(){
'use strict';
// The "ui" object provides functions for prompting the user for information and displaying information
// Declare variables for later use
var username;
var password;
var flavor;
var scoops;
//Begin Generated Macro
var ps = session.getPresentationSpace();
try {
// Prompt the user to enter their name and store it in a variable.
// Note that 'yield' keyword is needed to block execution while waiting for the user input.
username = yield ui.prompt('Please enter your username');
// Prompt the user to enter a value with a default provided to them.
flavor = yield ui.prompt('What is your favorite flavor of ice cream?', 'Chocolate');
// Prompt the user to enter private information by using the 'mask' option and the input field will be masked as they type.
// If a parameter is not used, 'null' can be used to specify that it isn't to be used.
// Here we illustrate that by specifying that we don't need to show a default value .
password = yield ui.prompt('Please enter your password', null, true);
// The prompt function returns null if the user clicks the 'Cancel' button instead of the 'OK' button.
// One way to handle that case is to wrap the call in a try/catch block.
scoops = yield ui.prompt('How many scoops would you like?');
if (scoops === null) {
// This will exit the macro.
return;
// Alternatively could throw an Error and have it be caught in the "catch" below
}
// Use the collected values to order our 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);
// Display a message to the user. Using the 'yield' keyword in front of the call will block
// further execution of the macro until the user clicks the 'OK' button.
yield ui.message('Order successful. Enjoy your ' + scoops + ' scoops of ' + flavor + ' ice cream ' + username + '!');
} catch (error) {
// Here we use the ui object to display a message that an error occurred
yield ui.message(error.message);
}
//End Generated Macro
});
return macro();