Shared Jobs

Shared Jobs allow users to bundle entire workflows into a single custom component and then use those custom components anywhere else in the project. Only Orchestration jobs (and the Transformation jobs they link to) can be shared in this manner. If a job calls another job via Run Orchestration or Run Transform then all jobs will be included in the Shared Job. Indeed, a Shared Job can include as many jobs as the user wishes.

Creating Shared Jobs

To create a shared job, simply right-click on any job in the Explorer panel and click Generate Shareable Job. Since you right-click a job to find this option, there is always a 'Main Job' that this Shared Job is based on.

This will bring up a new dialog to configure the Shared Job. More precisely, this is configuring the new component that will be generated from your selected job(s).

Package: The package name that this job will be listed under. Jobs with identical package names can be found within that package on the Shared Jobs resource tree. May contain only alphanumerics, underscores, single spaces, parenthesis and hyphens.

Nested packages can be specified by separating package names. For example:

Name: The name of the Shared Job. This name must be unique (within the package) and contain only alphanumerics, underscores, single spaces, parenthesis and hyphens.

Description: Give a description for the Shared Job. This description is visible under the Help tab when using the Shared Job on the canvas as well as when inspecting it in the Manage Shared Jobs dialog. The description can be formatted with simple HTML tags.

Icon: Browse to select a PNG for this Shared Job's icon. A default icon is provided if no icon is selected. The current selection will appear as a preview.

Preview: A preview of the selected PNG image as an icon.

Root Job: The job that this Shared Job is based on. When selecting 'Generate Shared Job' from the context menu of a job, that job becomes the Root Job by default, although this can be changed by selecting another job from the dropdown menu. There can only be a single Root Job.

Additional Jobs: Jobs in addition to the Root Job that are packaged within the Shared Job. These should be jobs that the Root Job is expected to call. Jobs called using 'Run Transformation' and 'Run Orchestration' components within the Root Job are automatically entered into this list. Jobs that may be called dynamically from the Root Job should be manually included.

Additional jobs can be added with the + icon.

All additional jobs can be cleared from the list with Clear

The list can be autopopulated with jobs explicitly called from the Root Job with Auto

Additional jobs can be auto-completed by clicking Auto and will include all jobs called by the Main Job. Clear will empty the list and + will allow the user to manually add jobs. Note that only the Main Job and its called jobs will trigger from the Shared Job, regardless of extra additional jobs being included.

Clicking Next will progress the configuration to the Parameter Configuration dialog.

When a Shared Job is used, it comes with a set of configurable parameters that are dictated by the Root Job's job variables. These job variables autopopulate the Parameter Configuration list and have the following properties:

Type: The type of job variable. This will either be 'Variable' or 'Grid'.

Name: The name of this job variable as it exists in the Root Job.

Display Name: The name the parameter created from this job variable. This is editable to give parameters more meaningful or user-friendly names.

Once fully configured, the Shared Job can be created by clicking OK or cancelled by clicking Cancel. Clicking Back will return to the first Generate Shared Job screen with no loss of previous configuration.

Using Shared Jobs

Created Shared Jobs are available from the Shared Jobs panel to the lower-left of the client.

Jobs can be searched for using the field at the top of the panel and the panel itself can be refreshed with the recycle icon, which may be necessary for recently-created Shared Jobs to appear in the list.

Left-clicking and dragging a Shared Job into the canvas of another job will create the component for this Shared Job that will work in the same manner as any other component.

This Shared Job component will have the default name you assigned it when creating the Shared Job. Any Job Variables included in the Main Job will be listed below in the Shared Job component properties and can be assigned values.
The Help tab for this component displays the HTML given during the creation process.

Exporting Variables

It is possible to export the variables used inside Shared Jobs. To do this:

1. Create one or more Shared Job Variables in the job that will become the Shared Job.2. Generate the Shared Job. You may want to include these variables as parameters.3. Create a set of Job Variables in the job that will be including the newly-created Shared Job. You will be using these to store the exported variables so ensure they are of the expected data types.4. Click on the Shared Job and select the Export tab and then Edit.5. Take the variables from the Shared Job in the Source column and export them to variables from the current (calling) job in Target Variable.