Working with Impellers




Impellers are components that queue a job for execution by the pasUnity Processor Agent.  Impellers do not execute jobs - they only enqueue them.  This is important to note because a considerable period of time may elapse between when a job is enqueued and when it is executed.  The pasUnity application architecture is broken down into a set of constituent Windows Service processes that work independently of one another.  The task of the pasUnity Processor Agent is to execute jobs but it is the task of the other services to enqueue work for future processing.


Impellers not only queue work but also have the ability to control how it executes.  This is accomplished by defining new parameters or overriding existing parameter definitions.


Once work is enqueued it remains in the queue until it has been successfully processed.  After enqueued work has been successfully processed it is removed from the queue and an entry is written into the job history.  If an enqueued item fails to process correctly the work remains in the queue and, depending on the type of work, may be put into a hold status that requires end user intervention.  If work in the queue cannot be successfully processed, for whatever reason, it may be removed from the queue by deleting the work entry from the data grid on the Activity > Work node.  Work that is in a hold status may be executed again by toggling the Hold check box on this same grid.  You can also mark work as complete if it was externally resolved by clicking the Complete button for the entry in the data grid on the Activity > Work node.


If an impeller is enabled, it will continue to enqueue work even if the job that it is under is not enabled.  Once the job is enabled the enqueued work can process.  Alternatively, the interactive user can execute work for disabled jobs manually from the Work queue.


Creating Impellers


In the navigation tree view select and expand a job node and you will see the Impellers collection.  Right-click the impellers collection and select Add New Impeller... which will prompt you for the type of impeller to add and the name of the impeller.  Upon creation of the impeller the impeller editor will appear in the context pane for further customization of the impeller.


Editing Impellers


To edit an impeller, select the impeller node in the tree view navigation pane to open the impeller editor in the context pane.


Impellers vary in type but all have the following common attributes which can be modified through the editor and always appear at the top of the editor control:

Impeller Name: The name of the impeller.  Impeller names must be unique by job.  Impeller names can be changed at any time and changes will be immediately reflected in the UI but not in job history.

Impeller Type: This is a read-only property which tells you the type of impeller you are working with.  It cannot be changed.

Enabled for Processing: By default, an impeller is not enabled and must manually be enabled.  If an impeller is not enabled, it cannot enqueue a job for execution.  If an impeller is enabled, it still will enqueue jobs for execution but those jobs will not execute unless both the job and agent to which it belongs are also enabled.

Submit Work on Hold: By default, when new work is queued from an impeller it is submitted for immediate processing.  I some circumstances you may want to submit work to the queue but then either manually process the work or manually remove the hold for processing to occur.

Immediately below the common attributes is a button palette that provides the following common functionality:

Update: Pressing this button will validate and save the contents of the editor and all job steps to the database.

Macros: Pressing this button will provide a list of all of the macro functions that may be used in the impeller.

Conceal: Pressing this button will generate macro-safe encrypted and encoded values for sensitive information in macro commands and parameters.

Immediately below the button palette is a tab control that provides the following functionality:

General tab:

This tab contains the custom impeller configuration UI and will vary by impeller type.

Parameter Overrides tab:

Parameters are name/value pairs which can be accessed using the <PARAMETER> macro function at run time.  Parameter values set at the Job level may be overridden by parameter values set at the Impeller level.  Parameter values set at the Job or Impeller level may be overridden by the parameter values set at the Job Step - Parameter Editor level.

Key Value Pairs tab:

The Key Value Pairs tab is storage for values associates with key names unique at the object and level where they are defined and allow for value persistence between job executions.

Key: The unique key name used to locate and/or manipulate values on the object scope where they are defined.  For example, a job can only have one key/value pair with the name Counter but the same name could be used on other jobs or on impeller of the same job for instance.  Key names are not case sensitive.  Key names are limited to 256 characters in length.  Key names cannot be changed once created without adding a new key/value pair and deleting the old value.

Value: The value associated with the unique Key.  The value has no maximum length.  You can store macro expressions in the key/value pairs but you will still need to parse them.

Refresh:  Will refresh the display with the latest values from the database (also F5 can be used).

Add: Allows you to provide the Key portion of a new key/value pair which will be added to the database with a blank value.

Delete: Allows you to remove a key/value pair from the database.

Permissions tab:


The Permissions tab will only be visible if pasPortal Integrated Security is enabled during System Configuration.  For a detailed list of the available permission types available at this level refer to the Permissions topic.

After making changes, be sure to press the Update button to save your changes.


In addition to the properties listed above each impeller type introduces unique properties into the editor below the button palette on the General tab.


Copying Impellers


To copy an impeller between jobs, drag an impeller from one job and drop it on the Impellers collection on another job.  You will be prompted for a new name for the impeller which must be unique within the job.

Cloning Impellers

To copy an impeller within a job right-click the impeller and choose the Clone option.  You will be prompted for a new name for the impeller which must be unique within the job.  Additionally, you can drag an impeller from any job to the Impellers folder on any other job or the same job to perform the same cloning action.

Deleting Impellers

To remove an impeller, select and then right-click the impeller node in the tree view navigation pane and choose Delete... to remove it from the user interface and mark it as disabled.  It can be restored using the Recycle Bin.


Mass Enabling/Disabling Impellers


To enable or disable all impellers in a job select and then right-click the impellers node in the tree view navigation pane and from the context menu choose either Disable All Impellers or Enable All Impellers.

Manually Executing Jobs

Interactive Execute: To manually execute a job on the current machine select and then right-click the impeller node in the tree view navigation pane and choose Interactive Execute... to execute the job and view trace data and messages in the trace pane at the bottom of the user interface.  This option will not be available unless you are logged on to the agent machine.  If you are working remotely you must use the Background Enqueue... option instead.

Background Enqueue: To enqueue a job for immediate execution by the pasUnity Processor Agent right-click the job node in the tree view navigation pane and choose Background Enqueue... to create a temporary impeller and add the job to the work queue.


NOTE: Impeller types that are based on system events may not be activated using this method - only the system event which they monitor can be used.


Remove Hold on Work

To remove all work that might be on hold for an impeller, select and then right-click on the impeller name in the tree view navigation pane and select Remove Hold on Work from the context menu.


Copyright © 2023 pasUNITY, Inc.


Send comments on this topic.