Block a status transition based on a related collection
Stops an issue from moving to In Review while any of its redlines sit on a step that isn’t complete or canceled. The technique: read a related collection from the context and require every record in it to be in an acceptable state.| Field | Value |
|---|---|
| Title | Open redlines prevent moving issue into In Review |
| Target | ISSUE |
| Event | UPDATE |
Restrict an action to specific roles
Blocks moving an issue back to In Review from a resolved state unless the acting user holds a quality role. The technique: branch on the acting user’s roles fromcurrentUser, and read the prior value from changes to detect the reopen.
| Field | Value |
|---|---|
| Title | No permission to reopen a closed issue |
| Target | ISSUE |
| Event | UPDATE |
Check a custom attribute
Stops a part from being added to a kit when itsOn CAPA? attribute is set. The technique: scan a list of { key, value } attributes on a related object for a specific key.
| Field | Value |
|---|---|
| Title | Cannot add CAPA part to kit |
| Target | PARTKITITEM |
| Event | CREATE |
Require a field on every item in a collection
Blocks moving a procedure to In Review when any step has no upstream or downstream dependency. The technique: gate on a status change read fromchanges, then iterate the object’s child collection and require a field on each.
| Field | Value |
|---|---|
| Title | Check if step has dependencies |
| Target | PROCEDURE |
| Event | UPDATE |
Match records across a nested collection
For a Build procedure, blocks the move to In Review until reviewers from the Responsible Engineer, Production, and Mission Assurance teams have been added. The technique: flatten a nested collection (reviewers, then their teams) and confirm every required value is present.| Field | Value |
|---|---|
| Title | Procedure requires the correct teams to review |
| Target | PROCEDURE |
| Event | UPDATE |
Require a field before a status change
Blocks a purchase order line from moving to Requested when it has no need date. The technique: gate on a status change read fromchanges, then require a scalar field on the object.
| Field | Value |
|---|---|
| Title | Purchase line items must have a need date |
| Target | PURCHASEORDERLINE |
| Event | UPDATE |
To enforce purchase order approval levels, use the built-in purchase order approvals instead of an ION Action. It’s easier to configure and maintain.
Require multiple fields on creation
Blocks creating a part of type Part until the required fields are filled in. The technique: run on theCREATE event, guard on the object’s type, then check a list of required fields at once.
| Field | Value |
|---|---|
| Title | Required fields for part creation |
| Target | PART |
| Event | CREATE |