Working with the Orchestration Job Node

Overview of the Orchestration Job Node

You can add an Orchestration Job node to a Flow tab in an orchestration job to run an external SAS Visual Process Orchestration flow when the node executes. The node requires that the name of the workflow job be specified as input. This job becomes the inner, or embedded job. When it executes, the inner job is loaded into the workflow engine and executed as a job.
You can set job-level input or output variables on an embedded job that enable it to be more useful. When the job is embedded, the variables designated as input are published in the discovery in the Orchestration Job node. The outer job can map these values. They then become valid when the inner job runs. The output designation allows the embedded job to set values which then become available as output on the outer job. From the perspective of the inner job, these variables are just regular job level variables and are not special in any way. It should also be noted that this input or output designation is used when workflow jobs are run as services.

Inputs and Outputs to the Orchestration Job Node

The Orchestration Job node can take the inputs and outputs listed in the following table:
Inputs and Outputs to the Orchestration Job Node
Name
Description
Inputs:
FILENAME
The name of the SAS Visual Process Orchestration workflow job
SAS_FOLDER_PATH
The SAS folder path of the SAS Visual Process Orchestration workflow job
Inputs and Outputs to the Orchestration Job Node
Outputs:
No unique outputs

Using the Orchestration Job Node

You can add an Orchestration Job node to a Flow tab in an orchestration job to run embedded orchestration jobs. For example, you can create an orchestration job that uses two levels of Orchestration Job nodes to create a three-level job.
The following display shows the base-level orchestration job:
Base-Level Orchestration Job
Base-Level Orchestration Job
This base-level job is opened in the properties window for the Orchestration node in the middle-level job, which is shown in the following display:
Middle-Level Orchestration Reference
Middle-Level Orchestration Reference
The following display shows the inputs for the Expression node in the base-level job:
Base-Level Expression
Base-Level Expression
Note that the ref_refinput variable from the middle-level job is picked up here.
The Variable Read Write node in the base-level job enables you to specify a job variable. You can write the job’s output to this variable, as shown in the following display:
Base-Level Read or Write Variable Settings
Base-Level Read or Write Variable Settings
The following display shows the middle-level orchestration job:
Middle-Level Orchestration Job
Middle-Level Orchestration Job
This middle-level job is opened in the properties window for the Orchestration node in the top-level job, which is shown in the following display:
Top-Level Orchestration Job Reference
Top-Level Orchestration Job Reference
The following display shows the settings for the middle-level orchestration job:
Middle-Level Orchestration Job Settings
Middle-Level Orchestration Job Settings
You must enter a filename and path for the job. You also need to create a source binding for the variable associated with the job.
The input and output variables created for the top-level orchestration job are shown in the following display:
Middle-Level Orchestration Job Variables
Middle-Level Orchestration Job Variables
Note that the refinput variable from the top-level job is picked up here.
The Variable Read Write node in the middle-level enables you to specify a job variable. You can write the job’s output to this variable, as shown in the following display:
Middle-Level Read or Write Variable Settings
Middle-Level Read or Write Variable Settings
For information about Variable Read Write node, see Working with the Variable Read Write Node.
The following display shows the top-level orchestration job:
Top-Level Orchestration Job
Top-Level Orchestration Job
The following display shows the settings for the top-level orchestration job:
Top-Level Orchestration Job Settings
Top-Level Orchestration Job Settings
Just as you did with the middle-level job, you must enter a filename and path for the job. You also need to create a source binding for the variable associated with the job.
The input variable created for the top-level orchestration job is shown in the following display:
Top-Level Orchestration Job Variables
Top-Level Orchestration Job Variables
The following display shows the expression created in the Expression node included in the top-level job:
Top-Level Expression
Top-Level Expression
This expression generates a text file that summarizes the output from the nested orchestration jobs.
You can verify that this sample job ran successfully by checking the variable input, which should be ORCHREF_3Levels a Success! Variable input = mainValueTopLevelJob 3 levels.