aBOM (As-built Bill of Materials) | ION Factory OS

The manual for the New ION Experience has been released.

For the complete documentation index, see llms.txt. This page is also available as Markdown.

An As-built Bill of Materials (aBOM) tracks the build process of parts in a hierarchical tree structure. The aBOM will track which part instances and lots are used within the creation of parts, subsystems, and systems. The aBOM can be thought of as a more intricate copy of the mBOM, with relations to physical inventory objects rather than parts. See here for more info on aBOMs.

Setup: Part inventory

Creating Part Instances and Lots

To create an aBOM, you will need an inventory. See the Part Inventory API for details on creating inventory. A part with inventory will have a part number, and that part should have an mBOM. This mBOM will be used to create the aBOM.

When it is first created, the part inventory will have only empty build requirements. Build requirements define the parameters for what parts can be installed.

Installing parts

Installing a part is done via creating an aBOM installation. aBOM installations link inventories to buildRequirements. Conversely, uninstalling a part is done by deleting aBOM installations.

Create aBOM installation

Inputs

mutation CreateABomInstallation($input: CreateABomInstallationInput!) {
    createAbomInstallation(input: $input) {
        abomInstallation {
            buildRequirementId
            buildRequirementReferenceDesignatorId
            partInventoryId
            quantity
        }
    }
}
{
    "input": {
        "buildRequirementId": 1,
        "partInventoryId": 3,
        "quantity": 1
    }
}

Editing build requirements

You can add additional build requirements to an inventory that don't originate from the mBOM.

To add a build requirement:

Create build requirement

Inputs

mutation CreateBuildRequirement($input: CreateBuildRequirementInput!) {
  createBuildRequirement(input: $input) {
    buildRequirement {
      fixedQuantityPerBuildRequirement
      id
      madeOnAssembly
      originMbomItemId
      partId
      partInventories {
        id
      }
      quantityPerParentPartInventory
    }
  }
}
{
  "input": {
    "partId": 1,
    "partInventoryId": 484,
    "quantityPerParentPartInventory": 5,
    "fixedQuantityPerBuildRequirement": 0,
    "madeOnAssembly": false
  }
}

To edit a build requirement:

Update build requirement

Input

mutation UpdateBuildRequirement($input: UpdateBuildRequirementInput!) {
    updateBuildRequirement(input: $input) {
        buildRequirement {
            fixedQuantityPerBuildRequirement
            id
        }
    }
}
{
  "input": {
    "id": 1031,
    "etag": "dca4e886ecce4a499d15411006a6d82a",
    "quantityPerParentPartInventory": 8
  }
}

In this example, the quantityPer of the buildRequirement is changed, but you could also change the fixed quantity, MOA designation, substitutes, and reference designators.