Run Controls

This page covers intent settings that apply during the run lifecycle — from creation through step execution to intent updates and inspection runs.

Required at Run Create

Setting key: requiredAtRunCreate

What it does

Required at Run Create forces users to specify an intent designation when creating a run. Without this setting, intent is optional at run creation.

This ensures that every run starts with a clear quality designation, which downstream settings like Run Intent Side Effect can then use to automatically stamp intent onto inventory.

You can apply this requirement to all runs or scope it to specific procedure types.

When it runs

At run creation time — when a user submits the new run form.

Configuration options

Field
Possible Values
Description

enabled

true / false

Turns the check on or off. Default: false

procedureTypes

Procedure type identifiers

Limits enforcement to the listed procedure types. Leave empty to apply to all run types.

Notes

When procedureTypes contains specific values, only runs of those procedure types require intent. All other run types remain optional.

Example scenario

Your organization only requires intent on Build procedure types. Set enabled: true and procedureTypes: ["build"]. Users creating a Build run must select an intent. A user creating an Inspection run will not be required to select an intent.


Required at Run Step Start

Setting key: requiredAtRunStepStart

What it does

Required at Run Step Start prevents a technician from starting a run step unless the run has an intent designation set. If the run's intent field is empty, the step start action is blocked until intent is assigned.

This setting is useful when intent might not be required at run creation but must be confirmed before any active work begins. It serves as a second enforcement point — catching cases where a run slipped through creation without intent.

When it runs

When a user attempts to start a run step — the check occurs at the moment the step start action is triggered.

Configuration options

Field
Possible Values
Description

enabled

true / false

Turns the check on or off. Default: false

procedureTypes

Procedure type identifiers

Limits enforcement to the listed procedure types. Leave empty to apply to all run types.

Notes

This setting can be used in combination with requiredAtRunCreate for layered enforcement, or independently as a fallback check.

Example scenario

Your organization creates runs from work orders that may be auto-generated, so intent is not always set at creation. You still want to ensure intent is confirmed before a technician begins working. Enable requiredAtRunStepStart so that when a technician tries to start Step 1 of a run, ION checks for intent. If it is missing, the technician sees a prompt to set it before proceeding.


Required on Run Intent Update

Setting key: requiredOnRunIntentUpdate

What it does

Required on Run Intent Update prevents users from clearing or unsetting the intent on a run after it has been set. Once intent is assigned to a run, it cannot be removed — it can only be changed to a different intent value.

This ensures that runs always carry a valid intent designation once one has been applied. Without this setting, a user could inadvertently (or intentionally) remove intent from a run mid-execution, losing the quality designation for that work order.

When it runs

When a user updates the intent field on a run — the check fires at the point of saving the update.

Configuration options

Field
Possible Values
Description

enabled

true / false

Turns the check on or off. Default: false

procedureTypes

Procedure type identifiers

Limits enforcement to the listed procedure types. Leave empty to apply to all run types.

Notes

This setting only blocks clearing intent. Changing from one intent value to another is still permitted.

When procedureTypes is empty and enabled is true, the restriction applies to all runs.

Example scenario

A Flight-grade run is in progress. A user accidentally attempts to clear the intent designation while editing the run details. With requiredOnRunIntentUpdate enabled, the update is rejected and the run retains its Flight designation. The user can change it to a different intent (e.g., Qualification) but cannot leave it blank.


Run Intent Side Effect

Setting key: runIntentSideEffect

What it does

Run Intent Side Effect automatically propagates the run's intent designation to the run's inventory — the inventory record that represents the unit being built by the run.

When a run has intent set, this setting ensures the assembly inventory it produces carries that same intent, without requiring a separate manual update.

When it runs

When intent is updated on a run — the run's assembly inventory is updated to match.

Configuration options

Field
Possible Values
Description

enabled

true / false

Turns the check on or off. Default: false

downgradeInventoryOnMismatch

true / false

When the run's intent is lower quality than the assembly inventory's intent, downgrade the inventory to match the run. Default: true

Mismatch behavior

Situation
Behavior

Assembly inventory has no intent

Run intent is copied to the inventory.

Run intent is higher quality than inventory intent

Blocked — an error is raised. You cannot assign a higher-quality intent to the run than the assembly inventory already has.

Run intent is lower quality than inventory intent

Controlled by downgradeInventoryOnMismatch (see below).

downgradeInventoryOnMismatch behavior (applies only when run intent is lower quality than inventory intent)

Value
Behavior

true

The assembly inventory is downgraded to match the run's lower intent.

false

The assembly inventory intent is left unchanged. No side effect is applied.

Example scenarios

Scenario 1 — Run creates new assembly inventory

A Development run is created to build a prototype unit. At run creation, ION creates a new assembly inventory record for that unit with no intent set. With runIntentSideEffect enabled, the new inventory is immediately stamped with Development intent. No manual step is needed.

Scenario 2 — Existing Flight-grade inventory is assigned to a Development run

A Development run is started, but the assembly inventory associated with the run was previously designated Flight. The run's intent is lower quality than the inventory's intent, so the block does not apply. Instead, downgradeInventoryOnMismatch controls the outcome:

  • With downgradeInventoryOnMismatch: true: the assembly inventory is downgraded from Flight to Development to match the run.

  • With downgradeInventoryOnMismatch: false: the assembly inventory retains its Flight designation. No side effect is applied.

Scenario 3 — Blocked attempting to set run intent above inventory intent

A Development assembly inventory is on the run and a user attempts to set the run's intent to Flight. Because Flight is a higher quality tier than Development, this is blocked with a validation error. The run's intent cannot exceed the quality of its assembly inventory.


Is Inspection Run Required

Setting key: intentOption.isInspectionRunRequired

What it does

When a part is added to a receipt, ION automatically creates inspection runs for any inspection procedures associated with that part.

This setting controls whether those inspection runs are required for a given intent option.

When inventory is added to a receipt, ION checks the inventory's intent:

  • If the inventory has no intent set, inspection runs are created.

  • If the inventory's intent has isInspectionRunRequired: true, inspection runs are created.

  • If the inventory's intent has isInspectionRunRequired: false, inspection runs are not created.

Unlike the other intent settings in this section, this one is configured per intent option rather than globally. That allows you to require inspection runs for some intents while skipping them for others.

Notes

This setting applies at the intent option level, not at the run level.

If inventory has no intent assigned, inspection runs are still created by default.

This setting only affects whether inspection runs are automatically created during receipt. It does not prevent users from creating inspection runs manually later if needed.

Example scenarios

Scenario 1 — Flight inventory requires inspection

A receipt includes an ASME pressure fitting, which has an associated inspection part procedure. The received inventory is assigned the Flight intent, and that intent option has isInspectionRunRequired: true.

When the PO line is added to the receipt, ION automatically creates the inspection run.

Scenario 2 — Development inventory does not require inspection

A receipt includes ASME pressure fitting PN, which has the same associated inspection part procedure. The received inventory is assigned the Development intent, and that intent option has isInspectionRunRequired: false.

When the PO line is added to the receipt, ION does not automatically create an inspection run.

Last updated

Was this helpful?