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:

 

Overview of Variant Configuration_sed

 

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

Overview of Variant Configuration_Variant_02

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:

  1. Planned/Production Order
  2. Sales Order (SET)
  3. 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

Overview of Variant Configuration_sed_03

 

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

Overview of Variant Configuration_sed_04

 

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:

  1. Result oriented (saves the final result with manual changes) 
  2. 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. 

Overview of Variant Configuration_Variant_05

 

 

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
Characteristic

Hide a value
Hide a characteristic

Preconditions are processed after the value has been set (by pressing enter)

Selection condition

Characteristic
BOM/Routing

Make a characteristic required
Select components

Selection conditions are processed after the value has been set (pressing enter)

Procedure

Characteristic Value
Characteristic
Configuration Profile
BOM/Routing

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

 

Overview of Variant Configuration_Variant_06

 

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.

Overview of Variant Configuration_Variant_07

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:

Overview of Variant Configuration_Variant_08

 

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)
In_recno (internal uni identif)
Valfrom, valto, cuco (profile)

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