Page tree
Skip to end of metadata
Go to start of metadata

General information

With the BOM Wizard 3 (BOM3), a completely updated logic has been implemented that allows the user to cover a wide range of use cases when deriving a bill of material (BOM).

(warning) This feature is available from S4ECTR 110 SP06

How to videos

How to derive a Bill of Material from a document structure within SAP Engineering Control Center

How to work with phantoms when deriving a Bill of Material in SAP Engineering Control Center


Usage examples

Simple assembly / BOM

Simple one-level derivation of a BOM from a CAD assembly ("Baukasten"), without special settings.


ECTR window


The assembly structure matches the BOM structure.


Multi-level derivation of a simple assembly

Multi-level derivation of a BOM from a CAD assembly, no special settings.

The assembly structure matches the BOM structure.

(warning) Disclaimer: This can take a while for big assemblies (800 components - 45 s).
For very large assemblies, multi-level derivation can lead to a timeout (TSV_TNEW_PAGE_ALLOC_FAILED  "No more memory available to add rows to an internal table."). In this case, the assembly has to be derived level-by-level.



Exclude inclusive children / Exclude and keep children

Behavior of the BOM derivation when setting exclude flags on different levels (document - position - instance):

Object / document level
DRAW-RES4

Position level
STPO-SORTF

Instance level
DMUCAD

Derivation behavior

Component / Instance is used
exclude_incl_childrenexclude_incl_children
exclude_incl_childrenexclude_incl_children
exclude_incl_childrenexclude_incl_childrenexclude_incl_children
exclude_incl_childrenexclude_incl_children
exclude_keep_childrenexclude_keep_children
exclude_keep_childrenexclude_keep_children
exclude_keep_childrenexclude_keep_childrenexclude_keep_children
--exclude_keep_childrenexclude_keep_children
exclude_keep_childrenexclude_incl_childrenexclude_incl_children
exclude_incl_childrenexclude_keep_childrenexclude_incl_children
exclude_incl_childrenexclude_keep_childrenexclude_keep_childrenexclude_incl_children
exclude_keep_childrenexclude_incl_childrenexclude_keep_childrenexclude_incl_children
exclude_keep_childrenexclude_keep_childrenexclude_incl_childrendon't use!

The flag "exclude_incl_children" has an higher priority then "exclude_keep_children".

Ignore positions on object level ("RES4") / Exclude inclusive children

(warning)Disclaimer: Before using the following features, you should enhance the customizing in V_CDESK_C_EXPLFA (SM30) and CAD_SRV_CUS with the needed values.


Via Set Explosion Parameters you can ignore components.

By inserting "WU" in the DRAW-RES4 field, this document can be suppressed (Exclude inclusive children) for any use in assemblies during BOM derivation.



Set the following checkboxes:


Result:


Click "Create / Update"


Result: The component is now absent from the BOM as requested.


Pulling up subcomponents on object level ("RES4") / Exclude an keep children

The following setting leads to sub-components being pulled up and dummy assemblies not being added to the BOM.

By inserting "W" in the DRAW-RES4 field, this document can cause the subcomponents to be pulled up (Exclude and keep children) for any use in assemblies during BOM derivation and this dummy assembly will not end up in the BOM.


Set the following checkboxes:


Result:


Ignoring of positions on position level (STPO-SORTF) / Exclude inclusive children

Via the following setting, the use of the component during BOM derivation can be suppressed (Exclude inclusive children).

By inserting "WU" in the STPO-SORTF field, this usage can be suppressed in the assembly during BOM derivation.


Set the following checkboxes:


Result:


Pulling up subcomponents via position data (STPO-SORTF) / Exclude an keep children

By adding "W" in the field STPO-SORTF, this usage in the assemblies during BOM derivation can lead to subcomponents being pulled up (Exclude and keep children) and these dummy assembly not being added to the BOM.


Set the following checkboxes:


Result:

Similar behavior as MBOM Wizard 2.0 regarding RES4 and SORTF

In MBOM Wizard 2.0 (CDESK_SRV_MBOM_WIZARD) it was not possible to control the feature exclude and keep children via RES4 and SORTF. You can set it per CAD system if such a behavior is also desired for this new BOM Wizard 3.0.



Ignore components via instance attribute "EXCLUDE_INCLUSIVE_CHILDREN" 

In CAD, the instance attributes of a component can be set in such a way that during the BOM derivation this instance is not added to the BOM.

Screenshot from NX example: 

Result: The BOM contains only quantity 1 and not quantity 2 as in the assembly. 



Pulling up components via instance attribute "EXCLUDED_FROM_BOM"

In CAD, the instance attributes of a component can be set in such a way that during the BOM derivation, this instance is not inserted into the BOM and its children are inserted instead.

In the backend, the parameter is called "exclude_keep_children" - in the fronted "EXCLUDED_FROM_BOM".


Result: 



Pulling up components via instance attributes "exclude_keep_children" - multiple levels

In the backend (DMUCAD), the parameter is called "exclude_keep_children" - in the fronted / CAD "EXCLUDED_FROM_BOM".
This also works over multiple levels:

Result:


Variable size item / DE: Rohmaßpositionen

In this example, the assembly 10000017957 has two components with the same material 68293: One with size 222x234 and one with 45x110:


In transaction CS03, it looks like this:


(warning) If such a part is used thousands times in the assembly we recommend to create a dummy assembly for this variable size item to avoid too much entries in DMU tables!


Overwriting the material (component) on the instance level in CAD

It is possible to set an instance attribute in CAD, which leads to a different material being used for this instance than the material linked to the document.

Definition of material on the CAD instance (external material number):


When saving, this leads to the instance data on the document.


The BOM has now two different material positions for the one document position:


Necessary customizing (example for NX):

If necessary, map your attribute name to the key "COMPONENT" via the bod_mapping_section.

Overwriting the Quantity on the instance in CAD

It is possible to set an instance attribute in CAD which leads to the quantity of this instance not being 1 but the entered quantity.
Backend Instance (DMUCAD) - Attribute: "QUANTITY".

If necessary, map your attribute name to the key "QUANTITY" via the bod_mapping_section.

Result:

Overwriting the unit of measure at the instance in CAD

It is possible to set an instance attribute in CAD, which means that the unit of measure for this instance is not taken from the material, but the entered value is used for it.

(warning) Of course, this only works if this entered unit of measure is maintained as "alternative unit of measure" in the material master.

Result:

The base Unit of Measure for this material:

If necessary, map your attribute name to the key "COMP_UNIT" via the bod_mapping_section.

Mixed usage of unit of measure for the same material

For example, if a document is used two times and every instance of it has a different unit of measure in CAD.

Result: 

Define a sequence for the BOM with the component attribute "BOM_ITEM_GROUP"

It is possible to define a sequence in CAD, defining how the items of a BOM are to be positioned. This only works during creation. If the position number is already used, this logic does not change it.

(warning) Disclaimer: BOM_ITEM_GROUP and DMU_BOM_ITEM_GROUP are character fields. This means that they are sorted alphabetically and not numerically. Therefore the recommendation follows that the numbering should always start with two digits (01, 02, 03... 10, 11, ... and not 1,2,3...10,11).

Result:

Split instances with the component attribute "BOM_ITEM_GROUP"

In CAD, it is possible to define that the documents / material numbers in the BOM can be split into different items.

Result:

Mapping instance attributes to component attributes

It is possible to map any CAD instance attributes to any BOM component attributes:  


In this example, the attribute "ZZPFAD" (path) has been added to CAD assembly, which has been defined as "Left Side" for the left instance, "Right side" for the right one, "Above" and "Below" for two others.

For this example the CI_STPO has been created with customer specific component "ZZPFAD". 

This leads to four BOM positions. The text is added to the respective STPO fields.

For this, the configuration has to be defined (see here and here) in such a way that the items can be split if necessary:


Definition of item number (POSNR) in CAD

In CAD, on every item, a component attribute has to be added which fits the customizing.

When saving the BOD, the values for the item number are added to the DMU data. During derivation, the item numbers are added to the BOM.

Result:

(warning)Disclaimer: If you decide in the project to set CAD as leading for an item number, the item numbers for all items should be maintained for all assemblies in CAD. A "mixed operation" can lead to problems.

In the customizing, the ITEM_NO has to be defined:


Adding text positions instead of stock positions

If no material exists for a component in CAD, this component can be added as a text position to the BOM.

In CAD, the value for the keys has to be selected for the respective item:

On derivation, a text item is created:


For this, a mapping has to be created for the item_categ and for the item_text1 - field.

History required BOM  

When deriving a BOM, you can select which change number to use for it:


Behavior when missing material on component

You can configure with transaction /DSCSAG/ECTR_CUS the process when no material is found on component:

E - Derivation process is stopped with an error message (default).
W - Warning is displayed, but process continues to run.
I - Info is displayed, process continues to run.


Changing of some position fields as a user

During derivation, some position fields can be changed by the user. This is only possible for fields which don't use values from the CAD system (This means for fields which uses no source data from cad component). 


Result:


Special aspects of MCAD and ECAD systems

Multi-level virtual instances (e.g. for interface to EPLAN)

If virtual instances are built in the document structure, they are always derived multi-level for the BOM - derivation.

(warning)Disclaimer: The switch "Derive material for all levels" has no effect on virtual instances. They are always derived for all levels.

CAD-Variants used for configurations in SAP ECTR interface to SOLIDWORKS

The relations between CAD-Variants are taken into account in the BOM derivation.

If a CAD variant has no material assigned, an attempt is made to read the material from the parent variant.

CAD-Variants used for model states in SAP ECTR interface to Inventor

The relations between CAD-Variants are taken into account in the BOM derivation.

If a CAD variant has no material assigned, an attempt is made to read the material from the parent variant.

(warning)Disclaimer: Inventor supports instance attributes natively since Inventor 2022.

Not supported features for SAP ECTR interface to CATIA V5

(warning) Disclaimer: As CATIA V5 does not natively support instance attributes, there are some features which are not supported by the CATIA V5 integration:

  • ITEM_GROUP (via DMUCAD)
  • Instance attributes (via DMUCAD)
  • Definition of position number in CAD (ITEM_NO transfer)
  • Ballooning
  • Text positions
  • Overwriting the material (component) on the instance in CAD

The aforementioned restrictions may change in the future.

Prerequisite for SAP ECTR interface to PTC Creo

Required note:  3240967 - Changed: Enabled MBOM Wizard 3.0 for "CAD:PRO" Integration

(warning) Disclaimer: Some special features are currently not supported:

  • Mapping of instance attributes in CAD to component attributes in BOM
  • Definition of position number in CAD (ITEM_NO transfer)
  • Ballooning
  • Text positions

Recommendation for SAP ECTR interface to AutoCAD Mechanical (ACM)

The use of "Mechanical Components" will cause issues when deriving a BOM. We recommend to use "Part References" or "XREFs" instead. 

Configuration / Preparation

Component attributes

(warning) Disclaimer: Only the CAD component attributes of the direct assembly level are taken into account. CAD component attributes assigned across several deeper levels are not covered by the data model.

CAD - (Example for NX)

Transfer of component attributes when saving from NX to SAP ECTR

# ----------------------------------------------------------------------------------  
# 1.23 Part Attributes/Expressions

# Define which component attributes will be read and transferred to SAP
# default functionality is that all component attributes will be written to meta data (first level)

   UGII_D_COMPATTR_TO_SAP             = IGNORE;MENGE;EINHEIT;PTYP;RML;RMB;RME;REPLACE_COMP;USE_MATERIAL;POSI;FUNCTION;EXCLUDE_INCLUSIVE_CHILDREN;EXCLUDED_FROM_BOM;ROMS1;ROMS2;BOM_ITEM_GROUP;UNIT_OF_MEASURE;QUANTITY;ZZPFAD;TEXT1

ECTR bod_mapping_section

For this feature there needs to be set a configuration in the dtype.xml.
dtype.txt

<program_options ... bod_mapping_section= "xyz123" ... />


And an attribute section needs to be configured for the mapping in the attributes-to-sap.xml.
attributes-to-sap.xml

< section name = "xyz123" >
< APPL_ATTRIBUTE name = "EXCLUDED_FROM_BOM" hidden = "false" > <!-- default value of hidden is true: need to set it to false to send attribute to SAP! -->
< APPL_ATTRIBUTE name = "IGNORE_ITEM" /> <!-- get value of EXCLUDED_FROM_BOM attribute (SAP) from IGNORE_ITEM attribute (CAD) -->
</ APPL_ATTRIBUTE >
< APPL_ATTRIBUTE name = "IGNORE_ITEM" hidden = "true" /> <!-- don't send IGNORE_ITEM attribute to SAP →

< APPL_ATTRIBUTE name = "QUANTITY" hidden = "false" > <!-- default value of hidden is true: need to set it to false to send attribute to SAP! -->
< APPL_ATTRIBUTE name = "MENGE" /> <!-- get value of EXCLUDED_FROM_BOM attribute (SAP) from IGNORE_ITEM attribute (CAD) -->
</ APPL_ATTRIBUTE >
< APPL_ATTRIBUTE name = "MENGE" hidden = "true" /> <!-- don't send IGNORE_ITEM attribute to SAP -->
</ section >




default.txt

Usually in the system-default.txt the setting is enabled to write the DMU transformation matrices. So you have to do nothing here. 
But sometimes this switch is off for performance reasons, then you have to switch it on. Together with the DMU transformation matrices the DMUCAD data is saved which is crucial for BOM3. 

# When writing the document structure ECTR will also write the transformation matrices
# needed for synthetic viewing. This can be disabled ...
     plm.docstructure.writeMatrix = true

(warning) BOM 3 does not work if this value is set to false. 

SAP ECTR BOM Mode

Here you can set which technique should be used to create the material BOM.

...\basis\config\system-default.txt
# Configuration how to create the bill of material  
# cdesk - fnc.cdesk.bom.wizard
# advancedBom2 - fnc.derive.mat.bom (default)
# advancedBom3 - fnc.derive.mat.bom3 (S/4 only)

plm.mbom.derive.modus = advancedBom3


The default value for S/4 SAP ECTR 1.1 is "advancedBom3".

...\addons\bomDerive3\basis\config\system-default.txt (S/4 only)
plm.mbom.derive.mode = advancedBom3

If you do an update and want to stay with "advancedBom2" you have to change default.txt and add a line:

...\customize\config\default.txt
plm.mbom.derive.mode = advancedBom2


Transaction SM30 - View V_CDESK_C_EXPLFA

Edit maintenance view V_CDESK_C_EXPLFA and enter all necessary values for RES4 and SORTF.

Example for NX:

RES4    UGS:A    Assembly
RES4    UGS:AG    Assembly Generic
RES4    UGS:AI    Assembly Generic Instance Member
RES4    UGS:AW    Assembly Exclude Keep Children
RES4    UGS:AWU    Assembly Exclude Incl. Children
RES4    UGS:D    Drawing
RES4    UGS:P    Part
RES4    UGS:PG    Part Generic
RES4    UGS:PI    Part Generic Instance Member
RES4    UGS:PW    Part Exclude Keep Children
RES4    UGS:PWU    Part Exclude Incl. Children


SORTF    UGS:C    Component
SORTF    UGS:CD    Component Drawing
SORTF    UGS:CDM    Component Drawing Master
SORTF    UGS:CR    Component and Reference
SORTF    UGS:CS    Component stop
SORTF    UGS:CUW    exclude inclusive children
SORTF    UGS:CW    exclude keep children
SORTF    UGS:CWU    exclude inclusive children
SORTF    UGS:D    Drawing
SORTF    UGS:DC    Component Drawing
SORTF    UGS:DCM    Component Drawing Master
SORTF    UGS:DCR    Component Drawing Reference
SORTF    UGS:DMC    Component Drawing Master
SORTF    UGS:DMR    Drawing Master Reference
SORTF    UGS:G    Generic
SORTF    UGS:I    Generic Instance member
SORTF    UGS:MDC    Component Drawing Master
SORTF    UGS:R    Reference
SORTF    UGS:RC    Component and Reference
SORTF    UGS:Y    Reference

Transaction "/dscsag/ectr_cus"

In this transaction - based on CAD_SRV_CUS - the mapping parameters are defined with which CAD component attributes can be mapped to STPO fields.

The "Attribute name" in the 2nd column is the "target field" in the BOM / STPO. 
The "Determination Parameters" in the 6th column is the "source field" in the DMUTMX_META table which has been written in the save process of the CAD file. 

This configuration is particularly necessary when working with raw dimension positions.

If a checkmark is set for "Split", this means that positions with the same material but different values for this parameter are automatically separated into different BOM positions.

The "Category" column points to the "Category" field in the table DMUTMX_META.


Transaction "cad_srv_cus"

(warning) Mandatory: Maintain the explosion rules for the explosion scenarios "CTX_VIEW" and "CAD_COMP_CONTAINER" and "CAD_LOAD" to see the correct components for the document structure in ECTR UI. Here in most scenarios the SORTF Abbr. "<CAD>:CW" and "<CAD>:CWU" , "<CAD>:CUW" must be added. 

Optional: Maintain the explosion rules for the explosion scenario "BOM_DERIVE" to define which components are used for BOM Derive. This possibility can be used for enhanced customer specific requirements. 

Not maintaining this explosion scenario "BOM_DERIVE" may lead to recursive calls e.g. for link relations.  Prevented  with note 3289860 .

See also: How to configure different load scenarios - Product Lifecycle Management - Support Wiki (sap.com)

SAP ECTR

Menus

Maintenance of classic and versioned bills of materials

                                = fnc.derive.mat.bom3
                                = fnc.derive.mat.bom3(VMBOM)

Display of DMU data on the document (for consultants / admins only):

                                = fnc.api.generic2(CDESK_SRV_DISPLAY_DMUDATA_DOC)


Automatic mode

Possibility to maintain the BOM "silent" during save / checkin:

   <xs:attribute name='maintain_bom_on_checkin_mode' use='optional'>
    <xs:simpleType>
     <xs:restriction base='xs:string'>
      <xs:enumeration value='built-in'/>
      <xs:enumeration value='cdesk'/>
      <xs:enumeration value='advancedBom3'/>       <======================
     </xs:restriction>
    </xs:simpleType>
   </xs:attribute>
<program_options>
...
maintain_bom_on_checkin_mode = "advancedBom3"
...
</program_options>

Architecture

High level full process with BAdIs


Relevant notes: Link

Content


  • No labels