Workflow Events
Note
This feature is available in Acuit Pinpoint Workstation version 6.229 or later.
Overview
Workflow events allow defining, via standardized workflow definitions, custom processes that should occur in response to various events raised within Acuit Pinpoint Workstation.
Workflow Event Names
Events are identified by case-insensitive, unique names. General events might have simple names like "UnitLoaded", while events that can be raised for multiple items might have names like "NewTestRequested/Run Test" or "NewTestRequested/Hipot Test" that include the name of the item in the event name.
Workflow Event Handlers
When a custom workflow is configured as a handler for a particular workflow event, the workflow will be executed each time that event is raised.
Every workflow event that gets raised can optionally have a default workflow handler. If there are no custom workflow event handler defined for the event, then the default handler, if it exists, will execute. A custom workflow handler can optionally execute the ExecuteDefaultHandler activity as part of its workflow to execute the default handler (if one exists). This allows custom workflows to augment, instead of replace, the default handler. Also, multiple workflows can be configured for the same event name. When this happens, workflows are registered as handlers in the order they are listed in the configuration, and each workflow added becomes the new default handler for the next workflow.
Context Parameters
Depending on the context within which a workflow event handler executes, the following parameters are available for the workflow to use.
When multiple contexts are active at the same time, their relative precedence is generally in reverse order of when the context became active. For example, if a "UnitSerialNumber" shared parameter is defined in the settings, it will be overridden and hidden by the unit serial number as long as a unit is scanned into the station.
Station Parameters
When the station starts up, the following parameters will be available:
Name | Type | Value |
---|---|---|
LineName |
string | The line name. |
StationTypeName |
string | The station type name. |
StationName |
string | The station name. |
Shared Parameters
When the station starts up, shared parameters defined within SharedParameters Section will be made available for all workflows, in descending order of precedence:
- Parameters defined in the
ParametersOverride
section within SharedParameters Section. - Unit parameters tables: Optionally, one or more Acuit Pinpoint tables can be specified from which
parameter values can be looked up, using the model number alias for the unit at the station as a
key. These are defined via the
UnitParametersTables
collection within SharedParameters Section. - Parameters defined in the
Parameters
section within SharedParameters Section. - Parameters defined in the configuration section specified by the optional
ConfigurationSectionName
setting within SharedParameters Section.
Worker Parameters
When a worker is logged in to the station, the following parameters will be available:
Name | Type | Value |
---|---|---|
Worker |
Worker | The worker. |
WorkerBadgeNumber |
string | The worker badge number. |
WorkerLastName |
string | The worker last name. |
WorkerFirstName |
string | The worker first name. |
ShiftDate |
DateTime | The shift date. |
ShiftNumber |
int | The shift number. |
Unit Parameters
When a unit is active at the station, the following parameters will be available:
Name | Type | Value |
---|---|---|
Unit |
Unit | The unit. |
UnitModelNumber |
string | The unit model number. |
UnitModelNumberAlias |
string | The unit model number alias. |
UnitProductionGroupName |
string | The unit production group name, from the production schedule. If one is not defined for the unit, this parameter will exist, but will be null. |
UnitScanStatus |
UnitScanStatus | The unit scan status. |
UnitSequenceNumber |
int? | The unit sequence number in the production group. If this is not defined for the unit, this parameter will exist, but will be null. |
UnitSerialNumber |
string | The unit serial number. This will not exist at preassembly stations. |
Plug-in-provided Parameters
Plug-ins can provide their own context parameters via the IWorkflowEventManager or IParameterValueProviderRegistry services.
Custom Workflow Events
Plug-ins can define and raise their own custom workflow events via the IWorkflowEventManager injected interface.
Plug-ins that raise their own custom events should include a prefix in the event name to ensure the name will not conflict with any existing or future built-in Acuit Pinpoint events. For example: "MyCompany.MyEvent"
Plug-ins can also provide their own custom contextual parameters via the IWorkflowEventManager injected interface.
Acuit Pinpoint Workstation Workflow Events
The following standard events are raised by Acuit Pinpoint Workstation:
Unit Loaded
- Event name:
UnitLoaded
- Default handler: A standard workflow derived from the station type configuration settings.
- Additional services available to handler:
This is raised when a unit was loaded into the workstation, immediately after a successful unit scan.
New Test Requested
- Event name:
NewTestRequested/{TestTypeName}
- Default handler: None
- Additional parameter value sources available to handler:
The following fixed parameters:
Name Type Value TestTypeName
string The test type name. Custom parameter value providers registered by plug-ins via the ITestParameterValueProviderRegistry service.
- Additional services available to handler:
This is raised when a new test of type TestTypeName has been requested to start (e.g., when the "New Test" button in the test display is clicked).
General Steps
The general steps to create and use custom workflow event handlers with Acuit Pinpoint Workstation include:
- If needed for your custom workflow, create an Acuit Pinpoint Workstation plug-in to contain any custom activities or services for your workflow to use.
- Author your workflow defining the custom process.
- Deploy the files and configure Acuit Pinpoint to use them.
Workflow Parameters
Acuit Pinpoint Workstation provides the following parameter value sources to the workflow, in descending order of precedence: a parameter value is taken from the first provider listed that provides a value for a parameter with that name:
Parameters defined in the
ParametersOverride
section within Workflow Section for the workflow.Unit parameters tables: Optionally, one or more Acuit Pinpoint tables can be specified from which parameter values can be looked up, using the model number alias for the unit at the station as a key. These are defined via the
UnitParametersTables
collection within Workflow Section for the workflow.Parameters defined in the
Parameters
section within Workflow Section for the workflow.Parameters defined in the configuration section specified by the optional
ConfigurationSectionName
setting within Workflow Section for the workflow.The following fixed parameters:
Name Type Value WorkflowEvent
WorkflowEvent (or derived) The workflow event that was raised. All active context parameters. Note that this includes shared parameters defined within SharedParameters Section and custom parameter value providers registered by plug-ins via the IParameterValueProviderRegistry service.
The parameters defined via key/value configuration sections can be configured via any of the methods supported by Acuit Pinpoint, such as the line configuration or in settings.json files.
Just as key/value configuration settings can be grouped into sections, so can parameters, via ParameterGroup.
Deploying and Configuring in Acuit Pinpoint
Workflow event handlers are configured for Acuit Pinpoint Workstation via EventHandler Section. Generally, the following should be done to deploy and configure the authored workflow event handler for use in Acuit Pinpoint Workstation:
- Deploy any necessary custom plug-in(s) to the server.
- Optionally, deploy the XAML workflow definition file to the server (see below).
- For the station type that should use the custom process, use <settings> Element to configure
these settings, choosing one of the following options:
- Reference any custom plug-in(s) via
PlugIns
in Workstation Section. - Choose one of the following options:
- For simple workflows, use the
WorkflowXaml
setting in Workflow Section to specify the XAML workflow definition entirely within the line configuration. - Alternatively, for more complex workflows, or to use external XAML workflow definition files
that can be shared by different station configurations, use the
WorkflowFile
setting in Workflow Section to reference the XAML workflow definition file deployed above.
- For simple workflows, use the
- Reference any custom plug-in(s) via
Example Configuration
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://schemas.acuit.com/pinpoint/5.0/LineConfig.xsd">
<line>
...
<stationTypes>
...
<stationType name="Station Type 1">
<!-- This example embeds the XAML workflow definition: -->
<settings>
<setting name="Workstation:Workflows:EventHandlers:0">
<setting name="EventName" value="UnitLoaded">
<setting name="Workflow:WorkflowXaml">
<value><![CDATA[
<Sequence xmlns="http://schemas.acuit.com/pinpoint/2020/xaml/workflows">
<ScanComponent ComponentTypeName="Component 1" CancelUnitWorkflowIfNoSuccess="true" />
<ScanComponent ComponentTypeName="Component 2" CancelUnitWorkflowIfNoSuccess="true" />
<ReleaseUnit />
</Sequence>]]>
</value>
</setting>
</setting>
</settings>
</stationType>
<stationType name="Station Type 2">
<!-- This example references an external XAML file containing the workflow definition: -->
<settings>
<setting name="Workstation:Workflows:EventHandlers:0">
<setting name="EventName" value="UnitLoaded">
<setting name="Workflow:WorkflowFile" value="C:\ProgramData\Acuit Pinpoint\Acuit.Pinpoint.Server\Workflows\Custom.UnitProcess.1.0.0.xaml" />
</setting>
</settings>
</stationType>
</stationTypes>
</line>
</configuration>