# Conceptual Product Structure

## Key Features Modular BOM

A modular BOM covers all product variants for a given product family. All parts are organized in modules. The modular BOM defines the structure of a BOM down to the level of positions which are then implemented with items. A modular BOM usually has 3-4 levels.

A modular BOM is created by assigning items to the lowest level of the product structure element, called "positions".

The following graphic describes the process to create a modular BOM. Filters and Solutions limit the choice of available items which are then used to define position variants.

### Product Structure Element

The Conceptual Product Structure consists of product structure elements. Each product structure element has a position number and references a parent element - except for the product structure element at the top level. This object represents the top level (entry point) of a conceptual product structure.

A conceptual product structure is linked through such a top level product structure element to a class (which represents a product family or a product variant). A conceptual product structure is hierarchical, so that each position can be identified uniquely (different from an item structure, where each assembly can be reused multiple times and thus can make it impossible to identify a position in a bill of material uniquely).

### Product Component

The product component is the building block for the modular BOM. A top level product component can have its own structure. Each product component can be contained in multiple Conceptual Product Structures (reusability).

A product component has a status. A predefined lifecycle exists with the states "In Work" and "Released". A product component has to be released before it can be used in the Conceptual Product Structure. To modify a released product component, the status has to be set to "In Change". As soon as the modification is completed the status can be set to "Released" again.

It is possible to assign product structure elements to the structure of a product component, even if the product component has been released already. This behavior is customizable!

The product component at the top level is also the basis for the parallel structure.

Key Features Parallel Structures

### Product Component - Class Reference

Product components are related to classes which contain items. This relation can be interpreted in one way:

- A product component can be implemented with the items contained in the corresponding classes. These items represent the solution space for the product component.

It is possible to assign multiple classes to a product component. Only one of these relations will be effective.

### Functions

Functions are used to describe the functional aspects of a product component (e.g. seal, close, etc.), respectively a product structure element. Functions are optional. They have to be unique and should not conflict.

A product component has a rather generic nature and can therefore realize several functions, but a product structure element is assumed to implement only one of the functions assigned to the referred product component.

A function can be used to create a conceptual product structure which initially only defines the intended functional aspects of the product.

To define the functional structure of a product, in a first step a function is selected for each product structure element, but no product component yet. Only in a later phase are the suitable product components selected, based on the selected function. The system will only offer such product components which can realize the required function, thus supporting to translate a functional view on a system level design view. Also, if a product component is selected, only those functions will be selectable that have been defined for this product component.

The Structure tab of the Product Component - Modular mask as well as the Structure tab of the Module mask allow to assign functions to each position before assigning a product component.

Functions can be assigned to a product component, but product components cannot be assigned to a function!

### Product Family / Product Variant

A Product Family is a logical group of similarly structured products (Ball Pen, Fountain Pen, Pointer Pen, ...). Product Variants are a subtype of a product family (Ball Pen Junior, Ball Pen Exclusive, ...).

A product component (top-level element of a modular BOM) is assigned to product families or vice versa.

Specifications and Specification Constraints can be assigned to a product variant too.

The structures of the product family and its variants can be viewed in the Global tab of the browser.

The name of the product variant as well as the name of the product family has to be unique and cannot be changed again! A product variant cannot have the same name as a product family! When attempting to save a product variant with the same name as a product family, the following error message is displayed:

Any changes made to the product family at any time, have to be activated by clicking the Reload function in the context menu. If the Reload function is not used, the changes will not be visible, for example in the product component Module mask (e.g. entries in the Product Variant field).

When using the Change Management module, product families and product variants have to release first before continuing.

Model

A model is defined for a product variant and it represents a product variant with a predefined set of specifications. This limits the level of individual configuration possibilities. The name of a model has to be unique.

Models are defined in the Product Variant mask. The Model mask can be opened by clicking on the respective hyperlink of the model name.

Specifications assigned to a model are automatically assigned to an Order (an order is used to configure an individual BOM) which uses the respective model.

The name of a model has to be unique and cannot be changed again!

### Specifications

Specifications describe individual features or characteristics of a product (e.g. plastic, metal). They are grouped in Specification Categories and are assigned to Product Variants. Once a specification is saved it cannot be renamed!

From each specification category only one specification can be assigned to a product variant.

Specifications must not contain the following special characters: <> '" ^ &: ; + - / # ^

Specifications are the basis for Rules.

Internal / External Specifications

Specifications can be set up internally and externally. Internal specifications are set up by the company while external specifications can represent the naming convention of customers.
Both are shown in the Specification mask where they also can be aligned. External specifications can only be assigned to internal specifications (in the External Specifications mask) and vice versa.
For internal specifications the Internal check box is selected.

In this example, the external specification Furnier was aligned with the internal specification Wood.

Constraints

The combination of specifications is limited by specification constraints. A constraint defines how specifications can be combined. Constraints define possible combinations with inclusions or exclusions.

A constraint always has a "direction" (e.g. a wooden housing does not mean that a Ball Pen Exclusive is mandatory (see example for Inclusions)). Constraints are assigned to one or more product variant and refer to exactly one specification. The scope of a constraint can be limited by a restriction which refers to other specifications. Constraints can be defined in the Specification mask.

Specification Constraints must not contain the following special characters: <> '" ^ &

If a constraint is marked as an inclusion then all referenced specifications in the constraint will be added automatically if they are not yet.

- Exclusions
  Some combinations may be forbidden when a certain specification is selected (e.g. if you order a Ball Pen Junior, it cannot contain a wooden housing).

- Inclusions
  An inclusion defines one or more specifications that must be added (included), when a certain specification is selected (e.g. if you order a Ball Pen Exclusive, it has to contain a wooden housing).

The Constraints tab contains the following fields:

- Restriction:
  The Restriction field contains by default a semicolon ; .
  If the Restriction field contains also a specification (e.g. +plastic;) it will apply to all configurations which contain the main specification AND the specification mentioned in the Restriction field.
- Constraint:
  The Constraint field contains the rule. See Logical Operators for creating Rules.
- Inclusion
  If the check box is selected, it means that the specification mentioned in the constraint rule will be added automatically to the variant, when the order specifications will be verified. If the check box is not selected, the verification of the order specifications will check if the constraint rule is already added to the variant. If not, it will display an error message.

Once a specification constraint has been created, it can be displayed in the Specification Constraint mask. The mask can be opened by clicking on the entry in the Constraint field. All product variants this constraint is assigned to are listed in the Product Variant tab.

### Rules

Rules are based on specifications and define the product configuration in terms of a logical expression, made up of specifications and operators. Rules are used to determine the validity of a solution on a rule basis when the conceptual product structure is used as a "Modular BOM". After the evaluation of all rules, there should remain zero or exactly one position variant / solution per position.

Rules must not contain the following special characters: <> '" ^ &

A rule will be evaluated to be able to evaluate the right position variant for an order.

Logical operators for creating rules:
Every rule has to end with a semicolon!

- +zzz;
  Defines that the specification zzz has to be selected for the corresponding order.
- -zzz;
  Defines that the specification zzz should not be selected for the corresponding order.
- +zzz/yyy;
  Defines that either zzz OR yyy has to be selected for the corresponding order.
- +(zzz/-yyy)-www;
  Defines that the specification within the brackets has to be evaluated before the specification outside the brackets.
- ;
  A semicolon specifies that the rule will apply for all product variants.
- #
  The purpose of this operator is to define the quantity of the corresponding position. This operator is used in combination with position variants to separate two ore more rules (e.g. +zzz#-xxx#+zzz/xxx#...).

Example for the position variants / solution:

Solution | Specification Rule | Description
1 | -yyy+zzz; | If not yyy and zzz
2 | +yyy+zzz; | If yyy and zzz
3 | +yyy-zzz; | If yyy and not zzz

Depending on if the specification yyy and zzz are selected (true) or not selected (false) for an order, the following table shows which position variant /solution was selected.

yyy | zzz | Result
True | True | Solution 2 is selected
True | False | Solution 3 is selected
False | True | Solution 1 is selected
False | False | No solution is selected

If more than one rule applies for the order, only the position variant / solution with the most specific rule is added.

Specification in Order | Solution | Rule
zzz | 4 | ;
| 5 | +zzz;

Solution 5 has a more specific rule, therefore, it will be selected for the order.

Rules can be created. They are not mandatory!

### Defining the Module

The module links a product component to a hierarchical structure and is typically not related to an item. An assigned product component at the lowest level of a modular BOM can be defined in the Module mask. A position is a product component on the lowest level of a modular BOM. Position variants and filters will be assigned to a position of the modular BOM.

The mask can be opened by clicking on the respective Position number in the Structure tab.

The context menu of the Module mask contains functions to move or copy a structure section of the modular BOM into a different section of the same or a different modular BOM and a function to edit multiple records.

Function | Description
Move Structure Element... | Moves a structure section of the modular BOM into a different section of the same modular BOM.
Copy Structure... | Creates a copy of a structure section of the modular BOM and copies it into a different section of the same modular BOM. The original structure section remains as it is. This function also gives the option to copy parallel structure nodes if there are any assigned. Key Features Parallel Structures
Copy Structure to... | Creates a copy of a structure section of the modular BOM and copies it into a different section of a different modular BOM. The original structure section remains as it is.
Multi-record editing of Variants | Shows the Variants mask that allows to edit the assigned variants of this component. Each listed variant includes the information of the next higher component, the component the variant is assigned to, assigned items, etc.

### Assign Filters to Limit the Position Variants

Filters, which are assigned to a position (product structure element), are used to specify more precisely which items are available to implement the product component. These items are part of the classes that are assigned to the product component. The filter criteria depend on the attributes which are defined for these classes.

Filters limit the solution space (based on the classes) and restrain the choice of items available for the position variants / solutions.

Classification

Several filters, which all have to be met, can be defined for one position (product structure element).

The following fields have to be filled when creating a filter:

- The Name field opens a select menu and shows a list of attribute names from the classes of the product component.
- After an attribute is chosen the Title field shows the title of the attribute
- Logical operators and comparison values can be entered in the Value column (e.g. Name: Item Number; Value: >ITM-001). The entered values depend on the data related to the selected attribute name.
  Possible logical operators can be found in the Data View documentation.
  Data View (DTV User's Guide > Masks and Fields > Read Records from the Database (Search, Refresh))

Filters are optional. They don't have to be defined.

### Define the Position Variants (Solutions)

A position variant establishes a link between a position (product structure element) and a specific item. All possible items (parts or assemblies) which are available for a special product component according to the assigned classes are listed. The item for a specific position variant can also be a Neutral Item which is independent from color and surface finish.

Each position in the modular BOM can have several position variants and each position variant can have a specification rule assigned to it.

In some cases it is not possible to uniquely determine a position variant (respectively the associated item) with a specification rule e.g. the correct item can only be determined during the production process. In this case, sub-variants can be defined. Sub-variants are alternative position variants with items that have typically similar properties. The assigned rule has to be identical for all sub-variants.

In connection with the CPS feature, the Item mask will show the in Modular BOMs tab. This tab lists all product families and variants this item is assigned to. A link allows to open the respective product family and therefore the respective product component. It is also possible to open the Module mask directly.

As an improvement for editing Variants easily, the Multi-record editing of Variants function has been added to the context menu of the Module mask. This function will call the Variants mask that displays all assigned variants and allows to edit them.

### Displaying the Solution Space

A list of all items, which are assigned to the classes that are assigned to the corresponding product component (taking into account the filters that my be defined for the module), are displayed in the Solution Space.

The effort for classification and assigning item classes to product components pays off when it comes to derive the BOM. For each module suitable items can be found in the solution space.

Additional fields for the solution space that have been defined in the entity EDB-CPS-CMP-SOL-SLIC have to be defined in the entity EDB-GRP-ART-CPS-SLI as well.

### Create Neutral Items

Neutral items are created as placeholders for a set of final items with the same geometrical attributes but with different color and / or surface finish. Neutral items are independent from surface finish and color and can be recognized by the entry VARATT (a variant placeholder) in the Variant field of the Item mask. The Neutral Item mask can be opened by clicking on the entry VARATT.

It is possible to set up a new neutral item or to convert an existing item into a neutral item and assign final items to it. Each final item can have a rule. The final items can be added to the position variants list.

Neutral items can only be modified in the Neutral Item mask.

The final item, which will be chosen for the order, will be determined by evaluating the entered rule with the specification selected for the order.

The surface finish or color code information of a final item can only be defined in combination with an Alias IDs for this item.
Cooperation Partner

The option Resolve Table will be implemented in a later release!

### Display Structure of a modular BOM

An overview of the modular BOM structure can be displayed by selecting Modular BOM Overview from the context menu of any product structure element - typically it will be opened for the top level product structure element. The selected product structure element is displayed in this list.

The structure overview will only be shown when position variants have been assigned to positions (product structure element).