You can set up the Unit Genealogy gadget in an Operator Interface template to allow shop floor operators to replace sub-assemblies during production.
In the Production client application, the Unit Genealogy gadget displays a tree where the topmost item is the parent assembly. Each subsequent item in the tree shows the relationship between a sub-assembly and its parent. Each relationship identifies the barcode (UID) of the sub-assembly, its part number, and an optional reference designator, as shown in the following illustration.
When you select a sub-assembly in the Unit Genealogy gadget then select Replace Selection, the gadget searches for the Sub-Assembly Collection activity used in Production to record the selected parent/sub-assembly relationship. When the activity is found, the shop floor operator can identify a suitable replacement sub-assembly.
Important
When sub-assembly relationships are created by joining the parent and sub-assembly in v7 then migrating it to FactoryLogix or by using the LoadSubAssembly or ReplaceSubAssembly xTend API methods, the Sub-Assembly Collection activity will not be found. When the activity is not found, the Replace Selection feature in the Unit Genealogy gadget is not enabled and the operator will not be able to identify a replacement sub-assembly.
When Replace Selection fails to locate the Sub-Assembly Collection activity in which a sub-assembly is joined to its parent, the gadget uses a generic Sub-Assembly Collection activity to identify the sub-assembly replacement. The configuration of this generic activity is the same as the default configuration of the activity when you add it to a step in an operation in the NPI Process Definition window. The Requires Known Units property must be selected—all other properties are unselected. The replacement sub-assembly must use the same assembly part number as the assembly being replaced or an acceptable alternate part number:
If the sub-assembly being replaced is a BOM part number, the generic Sub-Assembly Collection activity functions as if the part number listed in the activity configuration is that of the BOM line item(s) with the part number of the sub-assembly being replaced.
If the sub-assembly being replaced is an alternate part number for a BOM part number, the generic Sub-Assembly Collection activity functions as if the part number listed in the activity configuration is that of the BOM line item(s) where the part number of the sub-assembly being replaced is a registered alternate part number2.
If the relationship you're modifying includes a reference value and more than one BOM line item is identified, the list of BOM line items is reduced to only those that match the reference value. (If this results in no BOM line items being identified, the filter-by-reference step will be omitted.)
When you configure the generic Sub-Assembly Collection activity and it updates the relationship, only the sub-assembly UID will be modified. The original reference (and location, if recorded) value remains unchanged.
Note
All sub-assembly replacements are actionable through the Unit Genealogy gadget in Production, regardless of how the sub-assembly relationship was created originally.
Manage sub-assembly relationships with the xTend API
The xTend API includes two sub-assembly related methods. Both are in the TrackingServices class within the Production namespace.
LoadSubAssembly method
This method is used to register a new sub-assembly relationship. Currently this call allows the API caller to identify an integer Location to denote where the sub-assembly is loaded within the parent assembly. This is done using the optional position parameter.
public SubAssemblyLoadResult LoadSubAssembly( Guid sessionId, Guid transactionId, Nullable<Guid> parentItemId, Nullable<int> position, Guid subAssyItemId, SubAssemblyLoadVerifications verifications )
This method can be extended to allow the API caller to optionally identify the reference where the sub-assembly is loaded within the parent assembly. This parameter is not cross-referenced with the BOM; this string value is recorded as reported by the API application (like xLink data collection).
ReplaceSubAssembly method
Use this method to replace an existing sub-assembly relationship. This call allows the API caller to identify an integer location to denote where the new sub-assembly is loaded within the parent assembly using the optional position parameter.
public SubAssemblyLoadResult ReplaceSubAssembly( Guid sessionId, Guid transactionId, Nullable<Guid> parentItemId, Nullable<int> position, Guid subAssyItemId, SubAssemblyLoadVerifications verifications )
This method allows the API caller to optionally identify the reference where the new sub-assembly is loaded within the parent assembly. This parameter cannot be cross-referenced with the BOM; this string value is recorded as reported by the API application (like xLink data collection).
Optionally, you can use this method to identify the Id (Guid) of the current sub-assembly to be replaced.