code-pull-requestChange Orders

Change Orders (COs) are the backbone of engineering change management in PLM systems. They provide a structured, auditable process for proposing, reviewing, and implementing modifications to your components. Whether you're updating a component specification, revising a BOM, or making design changes, change orders ensure proper review, approval, and traceability.

Overview

What Are Change Orders?

A Change Order is a formal request to modify one or more components in your library. It captures:

  • What's changing: The affected components and proposed modifications

  • Why it's changing: Description and justification for the change

  • Who approves it: Reviewers assigned to evaluate the change

  • The outcome: Whether the change was approved, rejected, or withdrawn

Change Order Lifecycle

Change orders follow a defined lifecycle:

DRAFT ──────► OPEN ──────► RESOLVED ──────► CLOSED
  │             │              │
  │             ▼              │
  │         ON_HOLD            │
  │             │              │
  └─────────────┴──────────────┘
            (reset)
Status
Description

DRAFT

Initial state. The CO can be modified freely—add items, assign reviewers, fill in details.

OPEN

Submitted for review. Reviewers evaluate and make decisions.

ON_HOLD

Temporarily paused, awaiting additional information.

RESOLVED

Review complete. Check the resolution field for the outcome.

CLOSED

Final state. The change order is complete.

Resolution Types

When a change order is resolved, the resolution field indicates the outcome:

Resolution
Description

PENDING

Still awaiting reviewer decisions

APPROVED

All required approvals obtained

REJECTED

Rejected by one or more reviewers

WITHDRAWN

Creator withdrew the change order


Required Headers

All change order operations require these headers:

Header
Required
Description

x-api-key

Yes

Your API authentication token

x-organization

Yes

Organization slug (e.g., @acme-corp)

x-library

Yes

Library slug (e.g., @acme-corp/main-library)

Content-Type

Yes

Must be application/json


Querying Change Orders

List Change Orders

Query change orders with optional filtering and pagination:

Filter Options

Field
Type
Description

ids

[ID!]

Filter by specific UUIDs

sequentialIds

[Int!]

Filter by sequential IDs (e.g., CO-001, CO-002)

status

[ChangeOrderStatus!]

Filter by status (DRAFT, OPEN, RESOLVED, CLOSED, ON_HOLD)

resolution

[ChangeOrderResolution!]

Filter by resolution (PENDING, APPROVED, REJECTED, WITHDRAWN)

assigneeId

ID

Filter by assigned reviewer

stageId

ID

Filter by current stage


Getting Available Templates

Before creating a change order, query the available templates for your library:

Templates define the workflow structure including:

  • Custom fields to capture change information

  • Approval stages and their decision methods

  • Default reviewers and notification settings

See Change Order Workflows for creating custom templates.


Creating a Change Order

Create a new change order in DRAFT status:

Example Response


Adding Items to a Change Order

Add components to the change order to indicate what will be modified:

Setting Proposed Changes

You can specify what the component will become after the change order is approved:

Removing Items


Setting Custom Field Values

If your template defines custom fields (like "Impact Assessment" or "Change Category"), set their values:

circle-info

The contentId comes from the contents array in the change order response. Each content field has a unique ID.


Adding Reviewers to Stages

Assign users to review each approval stage:

Removing Reviewers


Configuring Stage Decision Methods

Each stage can use different approval logic:

Method
Description

UNANIMOUS

All reviewers must approve

MAJORITY

More than 50% must approve

MINIMUM

At least N reviewers must approve


Submitting for Review

When your change order is ready, submit it for review. This transitions the status from DRAFT to OPEN:

circle-exclamation

Check Submission Readiness


Making Review Decisions

Reviewers approve or reject their assigned stages:

Approving

Rejecting

circle-info

When a stage meets its decision criteria (based on the decision method), the change order automatically progresses to the next stage or resolves.


Completing Change Orders

Closing an Approved Change Order

If approvalRouterOption is MANUAL_CLOSE, you need to explicitly close the change order:

Withdrawing a Change Order

The creator can withdraw a change order at any time:

Resetting to Draft

Reset a change order back to DRAFT to make modifications and resubmit:

circle-info

When to Reset: Use reset after a rejection to modify the change order and resubmit, or after withdrawal if you want to revive the change order.


Complete Workflow Example

Here's a complete example showing the typical happy path:


Handling Rejection

When a change order is rejected:

  1. Review the rejection notes to understand what needs to change

  2. Reset to DRAFT using the reset mutation

  3. Make necessary modifications (update items, content, etc.)

  4. Resubmit using submitForReview


Best Practices

Planning

  • Use descriptive names: Include an identifier (e.g., "ECO-2024-001") and brief description

  • Choose the right template: Select a template that matches your change type

  • Complete all required fields: Fill out custom content fields before submission

Items and Scope

  • Include all affected components: Add every component that will be modified

  • Specify correct versions: Reference the specific version being changed

  • Keep scope focused: One change order should address one logical change

Review Process

  • Add appropriate reviewers: Ensure all required stakeholders are included

  • Provide context in notes: When approving or rejecting, include detailed notes

  • Check canSubmit before submitting: Avoid submission errors

Workflow Management

  • Don't skip states: Follow the proper lifecycle transitions

  • Close completed COs promptly: Move approved COs to CLOSED when changes are implemented

  • Document rejection reasons: Provide actionable feedback when rejecting


Next Steps

Last updated

Was this helpful?