Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Multi-level BOM import

Info

Important

The multi-level BOM import functionality described in this topic only applies to the xTend BOM Import integration service (FLX-XTD-BOM-11)—importing BOM files in the FactoryLogix Office client application remains unchanged. (See Import a BOM and other design files for details about importing BOM files using the FactoryLogix Office client application.)

...

  • A phantom (a phantom has a part number that is simply a grouping of part numbers—no serial number is assigned to the phantom's part number).

Single- and multi-level BOM definitions

  • A single-level BOM defines the materials for a parent assembly and identifies each sub-assembly as just another part number.

    There is no difference in the XML data between a component and a sub-assembly except that a sub-assembly can be identified using the <IsSubAssembly> tag. If the BOM for a sub-assembly needs to be imported, it is done using a separate XML file.

  • A multi-level BOM defines the materials for a parent assembly and any child sub-assemblies.

    The XML data delineates the parts for each sub-assembly from those of other sub-assemblies and the parent, effectively encapsulating multiple BOMs in one structure/file.

xTend BOM Import integration service (FLX-XTD-BOM-11)

You use the xTend BOM Import integration service (also known as FLX-XTD-BOM-11) to import an XML file containing one single-level BOM. The service also has extended functionality that allows you to import one multi-level BOM per XML file. The XML structure used by the BOM Import integration service for multi-level BOMs includes an <Assembly> tag within the <BOMItem> tag.

Info

Important
The <Assembly> tag may appear zero or once per <BOMItem> tag in the XML file, but not more than once.

XML file structure for multi-level BOMs

Using the following structure, you can define an XML file with as many sub-assembly levels as you need. (Optionally, you can define each sub-assembly with its own BOM.)

...

<?xml version="1.0" encoding="utf-8"?>
<Assemblies>
     <Assembly>
          <Customer/>
          <Name/>
          <Revision/>
          <Configurable/>
          <BOMItems>
               <BOMItem>
                    <AML>
                         ...
                    </AML>
                    <AltIPN>
                         ...
                    </AltIPN>
                    <Assembly>
                         ...
                    </Assembly>
                    <ConfigurationOption/>
                    <ConsolidatedReferences/>
                    <CustomerPartNumber/>
                    <CustomFields>
                         ...
                    </CustomFields>
                    <Description/>
                    <InternalPartNumber/>
                    <IsSubAssembly/>
                    <ItemNumber/>
                    <Manufacturer/>
                    <OptionCode/>
                    <Package/>
                    <PartLabel/>
                    <PartRevision/>
                    <PartType/>
                    <Polarized/>
                    <Quantity/>
                    <Reference/>
                    <ResourceTypes>
                         ...
                    </ResourceTypes>
                    <RevisionMode/>
                    <Socket/>
                    <SubAssemblyType/>
                    <UnitOfIssue/>
               </BOMItem>
          </BOMItems>
     </Assembly>
</Assemblies>

Multi-level BOM example

Consider an XML file with a parent assembly named Parent Rev P1.

...

Note

The number of sub-assemblies and sub-assembly levels in an XML file is unlimited, but the XML file itself is limited to a single parent assembly (that is, a single <Assembly> tag within the <Assemblies> tag).

Inline and phantom assemblies

An operator working in the FactoryLogix Office client application can mark a part number as a sub-assembly in an unpublished BOM—this functionality remains unchanged. A BOM line item may only be flagged as an inline assembly or a phantom assembly by the xTend BOM Import integration service FLX-XTD-BOM-11.

Inline assemblies

An inline assembly is built as a distinct, yet integral part of the parent assembly build process. A conventional sub-assembly is built in its own build process (and in its own batch) outside of the parent assembly build process and batch. To achieve this, the BOM line items of the inline assembly are promoted to the parent assembly, effectively "flattening" the two BOMs. In addition, when placements are recorded for items on the parent assembly or the inline sub-assembly, the placements are recorded against the parent assembly.

Only BOM line items that identify a part number that is marked as an assembly in the FactoryLogix Part Library may be identified as an inline assembly.

<SubAssemblyType> tag

In the XML structure used by the xTend BOM Import integration service (FLX-XTD-BOM-11), a new <SubAssemblyType> tag can be introduced as a child of the <BOMItem> tag. This tag should only be utilized when the <IsSubAssembly> tag has a value of True. 

...

  • conventional sub-assembly

conventional sub-assembly icon
  • inline sub-assembly

inline sub-assembly icon

Inline assembly example

In the following illustration, the inline assembly is highlighted in red. Note the grouping of the BOM line items that comprise the components within the inline assembly—they are not indented, but do have a "parent" indicator.

...

If you want to assign a serial number to an inline assembly after it has been built and you want that serial number to be captured as part of the parent assembly genealogy, you must use the Capture Sub-Assembly activity and ensure that the Requires Known Units option remains unselected.

Phantom assemblies

Like an inline assembly, a phantom assembly is a sub-assembly in a BOM. However, unlike an inline assembly, a phantom assembly is not intended to be assigned a unique serial number once it is built so that serial number can be captured and recorded in the assembly genealogy as a sub-assembly of its parent. The actions required to record the assembly genealogy do not form part of an assembly definition within FactoryLogix; instead they are defined in the process definition. As a result, the BOM Import integration service treats both the same way except that a sub-assembly BOM line item identifies the type of sub-assembly: conventional, inline, or phantom.

...

In the following illustration, the phantom assembly is highlighted in red. Note the grouping of the BOM line items in the phantom assembly are not indented but can include a level or parent indicator. In this example, the phantom assembly consists of 4 part numbers: 45999-5, 4589632-89-88, 45999-96, and 45263).

phantom assembly

Multi-level BOM behavior

A new service configuration setting allows imported BOMs to be released to Production automatically. 

...

  • When a parent assembly is released to Production, all inline and phantom sub-assemblies are locked and no longer editable.

  • The CAD-BOM data source in FactoryLogix Analytics includes a column for each new property added to the BOM Line Item table by this project.

  • The xTend BOM Export integration service (FLX-XTD-BOM-07) includes the <SubAssemblyType> tag to include reporting inline assembly and phantom assembly entries. The BOM Export integration service does not include the <Assembly> tag within the <BOMItem> tag, and will continue to provide only single-level BOM XML data.

BOM line items

To preserve the assembly information imported when using FLX-XTD-BOM-11, a new BOM Line Item property is added to a BOM line item definition. The property identifies a sub-assembly BOM line item as a conventional, inline, or phantom sub-assembly. By default, a sub-assembly is identified as conventional. (The BOM Line Item property value only has meaning for BOM line items that are identified as sub-assemblies.)

Flatten a multi-level BOM

When flattening a multi-level BOM, the resulting list of BOM line items includes the sub-assembly part number and the BOM line items that comprise that sub-assembly when the sub-assembly is either an inline or phantom assembly.

...

Assembly A has three part numbers
  • Assembly A has three part numbers: B, L, and M.

    • B is an inline assembly that has part numbers C, D, E, and K.

  • Sub-assembly E is a phantom assembly with three part numbers: F, G, and J.

    • G is an inline assembly that has part numbers H and I.

  • Part numbers I and L are conventional sub-assemblies—their BOM line items are not included in the flattened BOM.

Flattened assembly

When flattened, the information that helps identify which assembly a BOM line item relates to is lost, making it impossible to determine (in this example) which assembly or sub-assembly part J belongs to.


The new column value identifies the line item number of the BOM line item's immediate parent

A new column encodes this information in the flattened BOM—the new column value (shown in the illustration on the left) identifies the line item number of the BOM line item's immediate parent.

View unpublished inline or phantom sub-assembly BOM line items

When reviewing the BOM for an assembly with an inline or phantom sub-assembly where the BOM is not published, the BOM line items aren't displayed in the flattened BOM. In this situation, the inline or phantom sub-assembly line item icon indicates that the sub-assembly’s BOM is not published and that its BOM line items are not visible in the parent assembly’s flattened BOM.

...

Example BOM

If all of the inline and phantom sub-assembly BOMs are published, the flattened BOM for the parent Assembly A will look like this:


Flattened BOM

If the BOM of inline Sub-assembly B is unpublished, the flattened BOM for the parent Assembly A will look like this:


Flattened BOM for parent assembly A

Note
Note that the icon for the inline Sub-assembly B is highlighted and its BOM line items are not displayed because the BOM is unpublished.

BOM lock down

In FactoryLogix a published BOM is locked down when the first process associated with the assembly revision is in Released to Production status. (Without modification, this behavior would allow the BOM of an inline or phantom sub-assembly to be modified after the parent assembly’s BOM was locked down. For a conventional sub-assembly, this is not an issue, but for an inline or phantom sub-assembly this is an issue because a change to an inline or phantom sub-assembly BOM would affect the flattened BOM of the parent assembly.)

...