Multi-level BOM import

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 FactoryLogix Office remains unchanged. (See Import a BOM and other design files for details about importing BOM files using FactoryLogix Office.)

Using the xTend BOM Import integration service (FLX-XTD-BOM-11), FactoryLogix can import multi-level Bills of Materials (BOMs) containing sub-assemblies. The BOM files you import can be up to 125 levels deep.

Sub-assemblies in a BOM file can be any of the following:

note

Note

The part number and its serial number are part of the Trace genealogy in FactoryLogix (pullers assembly or inline assembly). The serial number must be unique but is not required to be an inventory item in FactoryLogix.

Note

The part number and its serial number are part of the Trace genealogy in FactoryLogix (pullers assembly or inline assembly). The serial number must be unique but is not required to be an inventory item in FactoryLogix.

Single- and multi-level BOM definitions

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.

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

The XML file structure for multi-level BOM files looks like this:

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

Parent assembly Parent Rev. P1Child assembly


When importing multi-level BOM XML data, each assembly or sub-assembly is processed individually.

note

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

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 FactoryLogix Office 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. 

Note the following when the <IsSubAssembly> tag has a value of True:

Processing uses a case-insensitive comparison when validating the value recorded in the <SubAssemblyType> tag.

The FactoryLogix processing flattens any BOM with any inline assemblies and the user interface displays the flattened BOM.

Inline assemblies are identified in a similar way to conventional sub-assemblies in the BOM Viewer in FactoryLogix Office, however the icon for an inline sub-assembly is slightly different:

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

The part number 45-001 is the inline assembly that will be built using four part numbers: 45999-5, 4589632-89-88, 45999-96, and 45263. If line item 6 (the inline assembly) was configured as a conventional sub-assembly (such as line item 13), line items 7-10 would no longer appear on this BOM—their presence is due to the "flattening" of the inline assembly’s BOM.

inline assembly


The quantity displayed for each BOM line item within an inline assembly also factors the quantity of the inline assembly. For example, consider the BOM for Assembly 1:



Assembly 1
  • Assembly 1 has four part numbers.

  • Part X is flagged as an inline assembly.

  • Only one of Part X is required to build Assembly 1.

  • The BOM for Assembly X has 3 part numbers.

Assembly X
  • The "flattened" BOM for Assembly 1.

Assembly 1 flattened
  • If Assembly 1 requires three instances of Assembly X, the "flattened" BOM will reflect the additional materials required.

  • Notice how the quantities for the BOM line items for Assembly X are now tripled.

Assembly X

A BOM line item that is an inline assembly may have zero or more references assigned and may be used in part assignments, however when kitting material, these items—but not their BOM line items—will be omitted from the list of required part numbers.

In the Assembly Genealogy Viewer, an inline assembly is treated the same way as a conventional sub-assembly.

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 XML structure used by the BOM Import integration service, a new <SubAssemblyType> tag is a child of the <BOMItem> tag. This tag is only used when the <IsSubAssembly> tag has a value of True.

When the <IsSubAssembly> tag has a value of True:

The processing uses a case-insensitive comparison when validating the value recorded in the <SubAssemblyType> tag.

When importing a phantom assembly, the BOM line item is flagged as a phantom assembly. The import processing is the same as an inline assembly.

Phantom assemblies are identified like inline assemblies in the BOM Viewer in FactoryLogix Office, but use a different icon: Phantom assembly icon

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. 

In FactoryLogix Office and FactoryLogix Operations, when an inline or phantom sub-assembly is encountered, all BOM line items belonging to that sub-assembly are included in a "flattened" list of BOM line items. Any BOM line item identified as part of an inline or phantom sub-assembly will have a revision mode set to Specific Revision.

Important

No Configure-to-Order (CTO) assembly may be used as an inline or phantom assembly.

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.

When a BOM is flattened, the information contained in the sub-assembly indentation is lost. Consider the following example:

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.

  • sub-assembly

sub-assembly icon
  • inline assembly (published)

inline assembly (published) icon
  • inline assembly (unpublished)

inline assembly (unpublished) icon
  • phantom assembly (published)

phantom assembly (published) icon
  • phantom assembly (unpublished)

phantom assembly (unpublished) icon

Consider an example 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
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.

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

When a BOM is released to production, the parent assembly BOM is locked down and the BOMs of every inline and phantom sub-assembly identified by the parent assembly’s BOM are also locked down.