Running order guides from workflows

Running an order guide from a workflow is suitable if you include order guides as part of a broader workflow-based process.

For example, an activity within an onboarding workflow for a new employee can automatically run an order guide to order items for that employee.
Note: When order guides run automatically, order guide UI policies are not enforced. Also, options in the Choose Options screen cannot be selected, so make sure that order guide rules define sensible defaults for these options to avoid processing failures.
To run order guides from a workflow, use the Scriptable Order Guideworkflow activity.
Table 1. Running Order Guides from Workflows
Field Description
Order Guide The name of the order guide that this activity processes. For example, Example Employee Onboarding IT.
Script A script passing information to the order guide. This information is sent as a JSON encoded string parameter assigned to the answer variable.
The script must meet these requirements:
  • The names of the variables in the script must match the names used within the order guide. For example, if the order guide uses a department variable in a rule condition, the script must also pass a department parameter.
  • Both opened_by and requested_for parameters must be passed to the order guide, and both must have valid user record sys_id values.

Results

  • Success: the activity successfully processed the order guide. This does not mean a request was created. If a request was created, the request sys_id is added to the workflow scratchpad under the sc_request variable.
  • Failure: while processing the order guide a failure occurred, creating a failure record. If the processing fails, you can view and edit the failure record.

Workflow Example

The Example Employee Onboarding IT Workflow workflow uses this example to generate IT catalog items for a new employee as part of an onboarding process.

The activity uses this script to:
  1. Take a JSON string generated previously from the HR change record.
  2. Append the mandatory opened_by and requested_for parameters to that string.
  3. Submit the new string for processing by the order guide.
var parameters = new JSON().decode(current.payload);
 
// Need to amend the json object to include additional values.
parameters.opened_by = current.opened_by + "";
parameters.requested_for = current.opened_for + "";
 
answer = new JSON().encode(parameters);