Variant configuration enables the manufacturing of complex products that also have many variants. Often, new variants are created
by modifying existing product designs as the order is processed and reacting quickly to customers' requirements is also necessary.
With variant configuration, the customer or a salesperson can also determine features of a product, collect and document
specifications for the product and ensure that the product can be produced with those specifications while productions costs are
automatically calculated. The product configuration also improves information exchange between sales, engineering, and production.
Variant Configuration is integrated with or has interfaces to the following modules:
CA-CL | Classification |
---|---|
LO-MD-BOM / LO-MD-MM | Material Master, Bill of Material |
PP | Routings, MRP, Production order |
PP-PI | Master Recipes |
SD | Sales, Conditions |
MM | Purchasing |
CO | Costing |
Additionally, interfaces to CRM (IPC) and APO are also provided.
It is possible to configure:
- Materials
- Standard networks in the Project System
- PM General maintenance task lists
- Model service specifications
The master data of a configuration model comprises materials, bills of material (BOMs), classes, characteristics,
dependencies, and configuration profiles.
In the material master, the MARA-KZKFG indicator determines whether a material is configurable. Before a material
can be configured, at least one valid configuration profile and one variant class (standard class type 300) must be
assigned to the material.
The realization of a product's Bill of Materials / routings is controlled by the configuration model and its dependency knowledge
which is modeled and designed by the user.
The following steps are required to be able to configure objects and simplify and automate the production process:
Most important configuration tables:
Table | Description |
---|---|
MARA | General material data |
CUCO | Master data table for configuration profiles |
INOB | Assignment of internal number to object |
MAST | Assignment: material to BOM |
KSSK | Assignment: object to class |
CUOB | Assignment: object to dependencies |
STPO | BOM items |
CABN | Characteristic master data |
KLAH | Class header master data |
KSML | Assignment: characteristics to classes |
CAWN | Characteristic value master data |
CUEX | Dependency source code - compilation |
CUKB | Administrative information for dependency maintenance |
CUKN | Dependencies for variants / configuration Database |
Configuration Profile
The configuration profile contains the main dependency logic for the configurable material, controls how
BOM explosion is processed and allows further specifications for the BOM. Additionally, the class assignment
can also be maintained here.
For BOM processing, the following options are available:
- Planned/Production Order
- Sales Order (SET)
- Order BOM
1.Planned/Production Order
When the level of BOM explosion (none, single level, multi-level) in the sales order is selected, the following
processes apply:
- All configurable items are configured in the sales order
- Sales relevant items are copied to the sales order as sales items
- Value assignments are stored on the data base for each configurable material
2.Sales Order (SET)
- Products are supplied together, but not assembled together (Its just a grouping)
- Only sales relevant BOM items are exploded
- 11, 12, and 13 have their own BOM, can be sold separately, not only in group 1
3.Order BOM
Order BOM is used for customer specific adjustment of the BOM and the value assignment is done in SD,
but not in BOM explosion.
Two types of order BOM can be choosen:
- Result oriented (saves the final result with manual changes)
- Knowledge based (saves the Super BOM , manual changes, dependency knowledge)
Generally, the BOM explosion is controlled by the BOM usage, the BOM application and the BOM filters.
Dependency Knowledge
The following type of dependencies are used in variant configuration:
Dependency Type | Where it is attached | What it is used For | Processing order |
---|---|---|---|
Preconditions | Characteristic value | Hide a value | Preconditions are processed after the value has been set (by pressing enter) |
Selection condition | Characteristic | Make a characteristic required | Selection conditions are processed after the value has been set (pressing enter) |
Procedure | Characteristic Value | Infer values, send values from root material to subcomponents | Procedures are processed in sequential order after the value has been set (pressing enter) |
Constraint | Configuration Profile | Infer values top down and vice versa | Processing order of constraints is not fixed |
The objects in the BOM can be called by either: $SELF , $PARENT or $ROOT depending on the level on which the object can be found.
Low level and high level configuration
High Level
On high level, every interactive configuration and all dependencies are processed.
Low level
Low level configuration refers to background explosion of BOM, production order creation and MRP restrictions of the selection condition,
the procedures changing master data and the class nodes replacements.
In low level configuration, processing of dependcies is limited and some syntax such as $set_pricing_factor is not read.
Class Nodes
Class nodes can be created by using classes as nodes instead of setting multiple BOM items in a following manner:
Database storage
The main anchor where the configuration of an object in an application is stored is TABLE_APPLICATION-CUOBJ
Table | Description |
---|---|
AFPO | Production order |
PLAF | Planned order |
RESB | Reservations |
VBAP | Sales orders |
MARA(CUOBF) | Plant independent material variants |
MARC(CUOBJ/V) | Plant specific material variants |
EQUI | Equipments |
SER00 | Serial numbers |
EBAN | Purchase requisitions |
LIPS | Deliveries |
EKPO | Purchase orders |
VBRP | Invoices |
BGMP | Master Warranty Item |
ESLH | Service packages |
PBED | Independent requirement data |
Use CUOBJ and go to transaction CUTABLEINFO .
There you get all relevant configuration data stored in different tables on the data base on one screen.
Table | Description | Important fields |
---|---|---|
IBIB | Basic data | Ibase, objnr |
IBIN | Instance | Instance (=ibase+1) |
IBINOWN | Owner of instance | Inttyp, (obtab), objkey |
IBINVALUES | Characteristic values of an instance | Sybmol_id, ataut |
IBSYMBOL | Char-value combinations | Atinn, atwrt, atflv |
Communication with other applications
Very important is the pricing Reference characteristic to SDCOM-VKOND
Very common is changing master data via dependencies e.g. number of components in the BOM
Reference characteristic STPO-MENGE
The following fields can be changes by variant configuration.
Reading access to sales order data
Table | Description |
---|---|
VBAK | Header data |
VBAP | Item data |
MAEPV | Material master fields |
MAAPV | Material master fields |
VBKD | Sales document: commercial data |
VBPA_AG | Partner: sold-to party |
VBPA_WE | Partner: ship-to party |
VBPA_RE | Partner: bill-to party |
VBPA_RG | Partner: payer |
Changing access by using VCSD_UPDATE Structure
Table | Description |
---|---|
BRGEW | Gross weight of item |
NTGEW | Net weight of item |
GEWEI | Unit of weight |
VOLUM | Volume |
VOLEH | Volume unit |
KWMENG | Item quantity |
VRKME | Sales unit of measure |
ZMENG | Target quantity |
ZIEME | Target quantity unit |
ARKTX | Article description |
You moreover have the possibility to change master of BOM, routing and master recipes
Table | Description |
---|---|
STPO | Bill of Material (BOM) |
POTX1 | Item text |
POTX2 | Item text |
ROMS1-3 | Variable-size item sizes 1-3 |
ROANZ | Number of variable-size items |
ROMEN | Variable-size item quantity |
MENGE | Component quantity |
Table | Description |
---|---|
PLPOD | Task list and master recipe |
LAR01-06 | Activity types |
VGW01-06 | Standard values |
VGE01-06 | Unit of measure |
ARBPL | Work center |
LTXA1 | Operation description |
LTXA2 | Operation description |
Table | Description |
---|---|
PLFLD | Sequence of operations |
LOSVN | Lot size from |
LOSBS | Lot size to |
Table | Description |
---|---|
PLFHD | Production resources/tools |
MGVGW | Quantity |
MGFORM | Quantity formula |
EWVGW | Required quantity |
EWFORM | Required quantity formula |
Important function modules / programs
Standard function module for interactive processing (high level)
ce_c_processing
Standard function modules for low level configuration BOM explosions
CUBX_CONFIGURE_MDSP
CUBX_CONFIGURE_OBJECT
CUBX_CONFIGURE_STPOB
CUKO_DDB_HAS_COMPONENTS (SD)
CUBX_MDSP_HAS_CONFIGURATION (multi-level)
CUBX_STPOB_HAS_CONFIGURATION (multi-level)
Standard reading configuration from data base vc_i_get_configuration (with dependency knowledge)
vc_i_get_configuration_ibase (without dependency knowledge)
External value set (BAPI/IDOC) Use transaction BAPI
--> Sales and distribution
--> Sales
--> Sales Order
Relevant function module cei0_ddb_set_values_for_idoc
Performance issues
- Number BOM explosions (SAPLCUKO)
- Perform BOM_EXPLOSION CHECK_UNPROCESSED_DDB_MSGS in function group cuko
- Procedure and Constraints run too often • Procedure may be turned into constraints
- Reduce the amount stored values on data base • SDCOM_VKOND with $set_pricing_factor
- SCREEN_DEP-INVISIBLE
- Do not use actions
- Reduce the amount of values, may be check tables/function modules
- Do not use Overwritten characteristic
- Do not use class hierarchies / intersections
- Use class items instead of many selection conditions
- Make use of SAP_PRICNG
- Avoid empty fields in variant tables
- Do not assign small variant tables to data base tables (10chars*10000lines)
- Use Dependencies instead of manual conditions to set values SDCOM-VKOND
- Note 736268