Shared Jobs

Shared Jobs


This article is the head of a series on Shared Jobs. Related articles are given below.
Manage Shared Jobs | Incremental Load Tools


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:

toplevel.nesteda.nestedb

This would specify the package 'nestedb' inside package 'nesteda' inside package 'toplevel'.

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.

The 'Required' setting can be enabled/disabled for each variable and all variables are Required by default. When a shared job is created and used, all Required Variables must have a value set for the Shared Job to validate successfully. Parameters not marked as 'required' will be permitted to be empty. For Shared Jobs that predate this feature, all parameters are be assumed to be required.
 

Using Shared Jobs


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



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.