aBOM (As-built Bill of Materials)

The As-built Bill of Materials is a tree-like structure that allows you to keep track of how parts are installed across multiple levels of your assembly.

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 a 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.

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

Editing build requirements

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

To add a build requirement:

mutation CreateBuildRequirement($input: CreateBuildRequirementInput!) {
  createBuildRequirement(input: $input) {
    buildRequirement {
      fixedQuantityPerBuildRequirement
      id
      madeOnAssembly
      originMbomItemId
      partId
      partInventories {
        id
      }
      quantityPerParentPartInventory
    }
  }
}

To edit a build requirement:

mutation UpdateBuildRequirement($input: UpdateBuildRequirementInput!) {
    updateBuildRequirement(input: $input) {
        buildRequirement {
            fixedQuantityPerBuildRequirement
            id
        }
    }
}

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

Last updated