What was true about Generic Article and Variants in SAP ECC 6.0 has changed from top-to-bottom.
With SAP S/4HANA, in keeping with SAP’s movement of Industry to Core, the implementation of the SAP Retail concept of Generic Article and Variants dramatically changed to align with concepts found in standard Variant Configuration (LO-VC). The result is significant technical change, but also significant business process change, as one would reasonably expect when master data concepts are rearranged.
Context: Article Categories
When creating a Product in SAP Retail, an Article Category (MARA-ATTYP) must be chosen. Choose carefully, because your decision is final; Article Category cannot be changed.
Article Categories in SAP Retail
The mandatory choice of Article Category indicates the intended structure of the Product being created.
To relate this to SAP standard, consider that a Single Article is the equivalent of a standard Material, but enriched for Retail business processes. Then there are several so-called Structured Article Categories that can roughly be understood as a Material with an associated Bill of Materials (BOM).
But the concept of Generic Article and Variants is unique to SAP Retail.
If you’re an SAP expert, but not familiar with SAP Retail, then SAP Retail for SAP (non-Retail) Experts is a recommended read for a quick overview of how it differs from standard.
Pros and Cons
A decision to adopt the master data concept of Generic Article and Variants isn’t as clear cut as it might seem. Just because Color or Size are relevant attributes for your products, don’t assume that Generic Article and Variants is right for your use case. It’s a trade-off. Making a decision requires understanding your specific data and the concept’s pros and cons.
Generic Article and Variants is a data-maintenance-saving concept for representing a group of Products that vary only — or mainly — by one or a few characteristics. The classic example given is a shirt, which varies by Color and Size. If we imagine that the shirt is available in all combinations of 10 colors and 5 sizes, then that’s 50 variations of one “shirt.”
Rather than create 50 Products individually, it’s possible to create one Generic Article (representing the shirt), select the relevant characteristic values (the color and size combinations), and the system generates 50 Variant Articles, one for each selected color and size combination. What’s more, most data maintenance can be performed for the Generic Article only and changes will flow down to each Variant Article. Data-maintenance-savings, indeed!
The ideal use case for Generic Article and Variants is clear: a Generic Article with no data differences between it and its Variant Articles, except for the variant creating characteristics (e.g. color and size). The price you’ll pay for enabling the concept is orchestration and maintenance of supporting master data. You’ll introduce some complexity and a requirement for more training, but with the expectation that these costs are profitably offset by reduced data maintenance efforts.
The more your use case deviates from the ideal, the less sense it makes to pay the ongoing cost of implementing the concept.
For example, if your product varies by Size, but also by many other attributes, then it typically makes no sense to use Generic Articles to create Variant Articles by Size. After creating the Variant Articles, each would have to be maintained with other attribute values. The data-maintenance savings substantially evaporates in this case, but the ongoing cost of implementing the concept remains.
That’s why it’s important to understand your specific field-level data requirements before choosing to use the Generic Article and Variants concept. What’s more, there are constraints to consider.
There is a technical limit of 999 Variants for a Generic Article (see SAP Note 2459614 – Maximum of 999 value assignments allowed for a multi-value characteristic). But it’s strongly recommended that your design stop far short of the technical limit, for performance reasons.
For example, Fashion retailers typically create Generic Articles to represent a Product with a combination of Style and Color, and only use Size as a variant creating characteristic. The result is a necessary nod to performance, and practical manageability of an infinite number of color values, while still accruing data-maintenance savings for Variants Articles based on Size.
Master Data Building Blocks
As described in The Essence of SAP Retail Master Data, in SAP Retail we use master data to create master data. The concept of Generic Article and Variants is a case in point.
Generic Article and Variants top to bottom.
Compared with SAP Retail in ECC 6.0, requisite master data has been simplified.
Characteristic Profiles (Class Type 026), strictly assigned to Merchandise Categories to control user’s choices of variant creating characteristics by Merchandise Category, are no longer considered for Variant creating characteristics. These are replaced by Configuration Classes (Class Type 300), which are not assigned to Merchandise Categories. Users are now free to choose any Configuration Class when creating a new Generic Article, regardless of Merchandise Category.
This relaxation of controls, by design, is touted as a feature because it removes significant constraints in Article Reclassification. In SAP S/4HANA, there is no longer a requirement that characteristics and characteristic values align between merchandise categories when performing Article Reclassification. In practice, you’re left with otherwise guiding users — who now have discretion, and responsibility — in choosing the correct Configuration Class when creating a Generic Article.
In outline form, the process of creating a Generic Article is comprised of the following steps:
- Create one or more Characteristics to be used as variant creating characteristics.
- Create a Configuration Class (Class Type 300).
- Assign one or more Characteristics to the Configuration Class.
- Create a Generic Article, specifying the Configuration Class on the initial screen.
- Specify (via Characteristic value selection) possible Variants to be created, based on Characteristic Values.
- Specify (via Grid) the Variant Articles to be created now, based on Characteristic Values.
- Save the Generic Article; the Variant Articles are created in addition to the Generic Article.
The first three steps are usually performed by a centralized master data team, under governance, not by ordinary users. You’ll have to design the number of Characteristics with assigned Characteristic Values, and number of Configuration Classes with assigned Characteristics, based on your business requirements.
The resultant data is stored not only in standard material master and classification tables, as was the case in SAP ECC 6.0, but also in I-Base (Installed Base Management) tables. These complex structures are used for standard Variant Configuration (LO-VC) and are pressed into service for Generic Article and Variants in SAP S/4HANA. This includes storing the characteristics and characteristic values assigned to Variant Articles, which are no longer represented in Classification.
There is also a limited possibility to redundantly save characteristics and characteristic values in the basic data table (MARA) for each Variant Article. Details on that to follow, but this can be important for building reporting and interfaces without incurring the performance penalty of querying complex structures.
Generic Article and Variants Step-by-Step
1 – Create Characteristics (to be used as Variant Creating Characteristics)
Use T-Code CT04 – Create Characteristic MDA_COLOR002
- Data Type: CHAR 10
- Value Assignment: Single Value
Maintain values using T-Code CT04 or set the Value Check in CT04 to use Function Module WRF_CHECK_CHAR_VAL, then use T-Code WRFCHVAL to maintain the values (i.e. use New Characteristic Value Storage).
Color Characteristic
Use T-Code CT04 – Create Characteristic MDA_SIZE1002
- Data Type: CHAR 10
- Value Assignment: Single Value
Maintain values using T-Code CT04 or set the Value Check in CT04 to use Function Module WRF_CHECK_CHAR_VAL, then use T-Code WRFCHVAL to maintain the values (i.e. use New Characteristic Value Storage).
Size Characteristic
2 – Maintain Characteristic Type
T-Code WRFCHVALTYPE to designate the Characteristic Type of each Characteristic.
Maintain Characteristic Type
It’s this step that causes the system to redundantly save characteristics and characteristic values in the basic data table (MARA) for each Variant Article.
For a given Characteristic, you can choose 1 of 3 “Types” that align with fields in table MARA:
TYPE | MARA CHARACTERISTIC | MARA CHARACTERISTIC VALUE |
0 – Color | COLOR_ATINN | COLOR |
1 – Size 1 (Main) | SIZE1_ATINN | SIZE1 |
2 – Size 2 (Secondary) | SIZE2_ATINN | SIZE2 |
3 – Create Configuration Class
T-Code CL02 to create Configuration Class MDA_CGF003 of Class Type 300.
Configuration Class with 2 Characteristics.
4 – Create Generic Article
T-Code MM41 to create Generic Article.
Create Article – Initial Screen
5 – Choose possible Variants
Select characteristic values for 4 possible variants
Create Article – Choose possible variants.
6 – Choose Variants to Create
Create Article – Choose variants to create now.
7 – Maintain Generic Article Data
- Save Generic Article.
- Variant Articles are created in addition to the Generic Article.
Generic Article and Variants Data Model
Where is the data put away?
Table CABN indicates Internal Identifier: ATINN.
Table MARA includes Characteristic and Value for Variant Articles.
Of note in table MARA:
- There is 1 row for the Generic Article and a row for each Variant Article.
- Default material number for the Variant Articles is Generic material number plus three consecutive digits. Generic Article 51 has Variant Article numbers 51001, 51002, and 51003. Material number for the Variant Articles can be influenced by using
- MGW00002 – Influencing how article numbers are assigned.
- EXIT_SAPLMGNK_003 – Customer Exit: Variant Number Assignment
- MARA-KZKFG is set as X for the Generic Article. It is “configurable.”
- MARA-SATNR for each Variant Article points to the material number of the Generic Article.
- MARA-ATTYP is 01 for the Generic Article.
- MARA-ATTYP is 02 for each Variant Article.
Installed Base Management (I-Base) Tables
- MARA General Material Data
- MAKT Material Descriptions
- IBINOWN IB: Owner of an IBase Component
- IBIN IB: IBase Components – Condition
- IBINVALUES IB: IBase Components – Condition Characteristic Evaluation
- IBSYMBOL IB: Characteristic Value Assignment
- CABN Characteristic
- CABNT Characteristic Descriptions
It’s not easy to understand the data model from the documentation. I usually find it useful to visually query sample data and check the results. MDA Workbench makes it possible to do that easily.
Using MDA Workbench, I was able to quickly download data from an SAP system to a Microsoft Access database for the above list of tables. Then I visually created a query in the local system database created by MDA Workbench (a Microsoft Access database).
Here’s a link to the project file named MDA_VARIANTS_20201105.zip that you can open with MDA Workbench and try this for yourself.
Here’s the Microsoft Access query across the tables:
Query – inner join on I-Base tables.
Here’s the query result for the sample Generic Article and Variants:
Query result from I-Base tables
Generic Article and Variants Data
- There is a standard class that provides rich access to classification/configuration data for Generic Articles and Variants: CL_MAT_CLASSIFIC_RT. This class is described in SAP Note 2381429 – S/4HANA data model changes In Retail Generic Article.
- A classic function module also works: MATERIAL_READ_CLASSIFIC_RT.
Reference
- help.sap.com – Retail and Fashion – Generic Article and Variants
- SAP Note 2459614 – Maximum of 999 value assignments allowed for a multi-value characteristic
- SAP Note 2381429 – S/4HANA data model changes In Retail Generic Article
Includes an attachment (PDF) with very detailed functional and technical explanations.
- SAP Note 2922115 – Incorrect behavior in module MATERIAL_READ_CLASSIFIC_RT
Notes and Asides
- In this document, I use the term SAP Retail as shorthand to mean both SAP S/4HANA Retail for Merchandise Management and SAP S/4HANA for Fashion and Vertical Business.
Okumaya devam et...