Sepasoft MES Module Suite
Batch Command Signature - Perspective
Description
The Batch Command Signature component is a minimized Batch command toolbar for custom Perspective screens. It issues recipe-level Batch commands (Start, Pause, Resume, Hold, Restart, Stop, Reset, and Abort) against a single configured Batch Queue Entry, and can require a Signature Template per command before the command is sent.
Use this component when you need a compact command bar on an operator screen and want to gate selected commands with e-signature authorization—independently of the full Batch Controller or Batch List.
Installed with the Production module (Batch Procedure).
Find this component under the Ignition Designer Perspective Component Palette in the Batch category, named Batch Command Signature.
|
Version specific: In 3.81.13 SP1 and 4.83.3 SP1 and later. |
How signature gating works
For each command the operator selects:
- If props.signatureTemplates.<command> is set to a Signature Template name, that template is required.
- If that property is blank, the component falls through to the built-in / global Batch command Signature Template for that command (if one is configured with an expression).
- If neither applies, the command is sent using normal Batch command behavior (no component-defined authorization challenge).
When a Signature Template applies, the component does not send the Batch command immediately. Instead, it creates a pending authorization challenge. After the challenge is approved (for example from an MES Auth Challenge List on the same or another session), the original command is sent to the Batch engine for the same Batch Queue Entry. If the challenge is rejected, the command is not sent.
|
Important: Place an MES Auth Challenge List on the view (or another screen operators/supervisors use) so pending challenges can be acknowledged and completed. Batch Command Signature creates the pending request; it does not open the authorization dialog on the clicker’s session. |
Existing Batch Controller and Batch List behavior is unchanged when this component is not used on a screen.
Batch Command Signature Component Properties
Properties are provided that can be set to affect the operation and look of the component. They can be set through the Perspective Property Editor in the Designer or through scripting. Note that the section prefix is included before the property name (props, position, custom, or meta).
Example
JSON |
self.getSibling("BatchCommandSignature").props.batchId = selectedBatchId |
Name | Scripting | Property Type | Description |
|---|---|---|---|
Batch ID | batchId | String | Batch Queue Entry ID targeted by all command actions from this component. The component controls one Batch Queue Entry at a time. Leave blank until a batch is selected; command buttons remain disabled until a Batch ID is set. |
User | user | String | Name of the user recorded in the EBR for commands that do not require a signature. When a signature requirement is fulfilled, the approving signer(s) are recorded instead (comma-separated for multi-signer approvals). If blank and no signature applies, the Perspective session user is used when available. |
Signature Templates | signatureTemplates | Object | Per-command Signature Template names (plain strings). See Signature Templates below. A blank string means unset and falls through to the built-in/global template for that command, or to no signature. |
Enable Play | enablePlay | Boolean | Controls whether the contextual Start / Play command is allowed from this component. Defaults to true. The command is still subject to Batch state enablement and a configured Batch ID. |
Enable Pause | enablePause | Boolean | Controls whether the Pause command is allowed. Defaults to true. |
Enable Hold | enableHold | Boolean | Controls whether the Hold command is allowed. Defaults to true. |
Enable Stop | enableStop | Boolean | Controls whether the Stop command is allowed. Defaults to true. |
Enable Reset | enableReset | Boolean | Controls whether the Reset command is allowed. Defaults to true. |
Enable Abort | enableAbort | Boolean | Controls whether the Abort command is allowed. Defaults to true. |
Style | style | Style Object | Perspective style applied to the command toolbar. Refer to the Ignition Style Reference for classes, colors, fonts, and related settings. |
Signature Templates
props.signatureTemplates holds one optional template name per command. Enter the name of an existing Signature Template (as configured in MES), not a UUID or object link.
Name | Scripting | Property Type | Description |
|---|---|---|---|
Start | signatureTemplates.start | String | Signature Template name for Start. Blank = unset. |
Pause | signatureTemplates.pause | String | Signature Template name for Pause. Blank = unset. |
Resume | signatureTemplates.resume | String | Signature Template name for Resume. Blank = unset. |
Hold | signatureTemplates.hold | String | Signature Template name for Hold. Blank = unset. |
Restart | signatureTemplates.restart | String | Signature Template name for Restart. Blank = unset. |
Stop | signatureTemplates.stop | String | Signature Template name for Stop. Blank = unset. |
Reset | signatureTemplates.reset | String | Signature Template name for Reset. Blank = unset. |
Abort | signatureTemplates.abort | String | Signature Template name for Abort. Blank = unset. |
|
Blank or missing means: use the built-in Batch command Signature Template if configured; otherwise send the command without a component-defined challenge. A non-blank name that does not resolve to a valid Signature Template blocks the command and shows an error. The command is not sent and no authorization challenge is created. Custom (user) Signature Templates used here can appear in the MES Auth Challenge List and can be approved from another Perspective session. Configure templates in the MES Signature Template Manager. |
Position, Custom, and Meta Properties
Position — Component layout properties. Refer to Ignition Perspective Component Properties for details.
Custom — New user-defined custom properties can be created in this section. Best practice: if user-defined properties are required, create them here rather than under Meta.
Meta — Contains the name and visibility properties for the component.
Runtime Behavior
Binding a Batch
Set props.batchId to the ID of a queued Batch Queue Entry (often bound from a Batch List or Batch Selector selection).
The toolbar updates enablement from the current Batch state for that entry.
When the Batch state changes (including changes made outside this component), the toolbar updates to match the bound Batch.
If batchId is blank, command buttons stay disabled. If a command is attempted with a missing or mismatched Batch ID, the command is rejected with an error and no authorization challenge is created.
Toolbar commands
The toolbar provides Play, Pause, Stop, Hold, Abort, and Reset.
Play issues a contextual command based on Batch state:
Batch state | Play issues |
|---|---|
Paused | Resume |
Held, Complete, or Running | Restart |
Other states (for example Idle) | Start |
|
Each button is enabled only when all of the following are true:
|
Typical state enablement for the dedicated toolbar buttons (when the matching enable* property is true):
Command | Enabled when Batch state is |
|---|---|
Pause | Running |
Stop | Running, Pausing, Paused, Holding, Held, Restarting |
Hold | Running, Pausing, Paused, Restarting |
Abort | Running, Holding, Held, Pausing, Paused, Stopping, Stopped, Restarting |
Reset | Idle, Stopped, Aborted, Complete |
Play follows those same availability rules for the command it will issue (Start, Resume, or Restart). Configure signatureTemplates.start, signatureTemplates.resume, and signatureTemplates.restart for whichever Play command you expect operators to use on that screen.
After authorization is completed, the Batch engine still validates the command against the current Batch state. If the Batch state changed while a challenge was pending, the engine applies normal lifecycle rules and may reject a command that is no longer valid.
Authorization flow
Operator selects an enabled command.
If no Signature Template applies (component property blank and no built-in expression), the command is sent immediately. The EBR change-by value uses props.user when set; otherwise the session user when available.
If a Signature Template applies:
A pending authorization challenge is created.
The Batch command is not sent yet.
The initiating session does not automatically open an authorization dialog.
An authorized user acknowledges and completes the challenge (typically from MES Auth Challenge List), including from another workstation when the template allows it.
When all required signatures are approved, the original command is sent for the same batchId. Approving usernames are recorded in the EBR change-by field (comma-separated when multiple signers approve).
If a required signer rejects the challenge, the command is not sent.
Multiple gated commands may be pending at the same time. Approving one challenge releases only that command.
Pending authorization challenges are held in gateway memory for the running Gateway. They are not retained across a Gateway restart.
Errors operators may see
Situation | Result |
|---|---|
Signature Template name does not exist or cannot be resolved | Error dialog; command not sent; no pending challenge |
Batch ID blank or does not match the configured batchId | Error dialog; command not sent; no pending challenge |
Signer authenticated but does not satisfy the template expression | Error dialog; command not sent |
Challenge rejected | Command not sent |
Configuration Examples
Example 1 — Compact command bar with no extra signatures
Use a Batch List (or Selector) to choose a batch, and bind the command bar to the selection. Leave all signatureTemplates blank so commands follow built-in / default Batch signature behavior only.
JSON |
# Batch List selection → Batch Command Signature self.getSibling("BatchCommandSignature").props.batchId = self.props.selectedBatchID |
Property | Example value |
|---|---|
batchId | Bound to selected Batch Queue Entry ID |
signatureTemplates.* | (blank) |
enablePlay / enablePause / … | true as needed for the screen |
Example 2 — Require a supervisor template only for Stop and Abort
Create or select Signature Templates in the MES Signature Template Manager (for example SupervisorStop and SupervisorAbort). Set those names on the component; leave other commands blank.
Property | Example value |
|---|---|
batchId | Bound to the active Batch Queue Entry |
signatureTemplates.stop | SupervisorStop |
signatureTemplates.abort | SupervisorAbort |
signatureTemplates.start (and others) | (blank) |
Also add an MES Auth Challenge List to the operator or supervisor view so Stop/Abort challenges can be approved.
Example 3 — Operator initiates; supervisor approves on another session
On the operator screen: Batch Command Signature with signatureTemplates.abort set to a multi-role or supervisor template, plus a minimized MES Auth Challenge List (optional for the operator).
On the supervisor screen: MES Auth Challenge List (Standalone or Minimized).
Operator selects Abort → a pending authorization appears for the supervisor.
Supervisor approves from their session → Abort runs against the original batchId.
Example 4 — Record a fixed operator name for unsigned commands
Property | Example value |
|---|---|
user | Line1Operator |
signatureTemplates.* | Blank for commands that should not require a signature |
Commands without a signature record Line1Operator in the EBR when set. Commands that complete a signature record the approving signer(s) instead.
Related Components
Component | Use with Batch Command Signature |
|---|---|
Acknowledge and complete pending authorization challenges created by gated commands. | |
Create and maintain the Signature Template names referenced by signatureTemplates.*. | |
Provide the Batch Queue Entry ID to bind to props.batchId. | |
Full Batch control surface; existing behavior is unchanged when Batch Command Signature is not used. |
Sepasoft MES Module Suite