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.