Variant Tables
Variant Tables
Variant Tables
Welcome to the new version of SAP Community Wiki: Learn What's New? and what has changed.
Pages / … / Tutorials
Variant Tables
Created by Former Member, last modified by Former Member on Mar 14, 2017
Table of Contents
1. Overview
2. Example Model
3. Variant Table Structure (CU61, CU62, CU63)
4. Maintaining Variant Table Entries (CU60, CU60E)
4.1 Table Maintenance CU60
4.2 Excel-Import CU60E
5. Linking Variant Tables to Database Tables
6. Variant Tables in Dependencies
1. Overview
Variant tables are used to store combinations of characteristic values. They can be referenced in dependencies to infer,
check and restrict values. More specifically, they are used in:
selection conditions, preconditions, constraints and procedures to check the consistency of the values entered,
procedures and constraints to infer values,
constraints to restrict values for a characteristic.
One advantage of using them is that you only need to change the variant table, if the interdependencies between
characteristics change, and not the dependencies. This greatly simplifies the maintenance tasks when a model changes.
The relevant transactions for variant tables are the following:
Transaction Description
Remark: In order to delete a variant table, you need to first remove all the lines in the CU60 and then the table itself is
deleted in the CU62. However, once a variant table was maintained with a change number, the table can no longer be
deleted.
2. Example Model
In order to discuss the various features of variant tables is a concrete manner, we will use a very simple example model,
which describes the properties of a Personal Computer (PC). It consists of 4 single-valued characteristics with the following
values:
CH_PCTYPE (OFFICE, MEDIA, GAMING)
CH_PROCESSOR (3GHz, 4GHz, 5GHz)
CH_MEMORY (8GB, 16GB, 32GB)
https://wiki.scn.sap.com/wiki/display/PLM/Variant+Tables 1/10
1/7/2020 Variant Tables - Product Lifecycle Management - Community Wiki
CH_HARDDISK (1TB, 2TB, 3TB)
Using a variant table we will build the following combinations of characteristic values:
OFFICE 3 GHz 8 GB 1 TB
MEDIA 4 GHz 16 GB 2 TB
GAMING 5 GHz 32 GB 3 TB
As you can see, each column in a variant table represents a characteristic and every row corresponds to an allowed
combination of characteristic values. In this particular example, an Office-PC has a 3 Gigahertz Processor, 8 Gigabytes
of Memory and a 1 Terabyte Harddisk. Similarly, the properties of a Media- and Gaming-PC are displayed in the
corresponding rows of this table.
In the field Date the current date is entered by default, so you don't need to worry about that. In the next screen you need to
enter a description for the variant table. Note that the Status is currently 0(In Preparation) - this needs to be changed later on.
https://wiki.scn.sap.com/wiki/display/PLM/Variant+Tables 2/10
1/7/2020 Variant Tables - Product Lifecycle Management - Community Wiki
As you can see, in this screen there exists also the possibility to link the variant table to a database table. This functionality
will be discussed in section 5.
After pressing on Characteristics you enter the following screen:
https://wiki.scn.sap.com/wiki/display/PLM/Variant+Tables 3/10
1/7/2020 Variant Tables - Product Lifecycle Management - Community Wiki
Here you can enter the characteristics that you want to use in the variant table. We set the characteristic CH_PCTYPE as
a Key Field. This means that each entry in the column CH_PCTYPE must be unique. By using dependencies we will use
this characteristics later on to infer values for CH_PROCESSOR, CH_MEMORY and CH_HARDDISK in section 6.
Remark: Marking a characteristic as a Key field is only relevant if you want to infer values using dependencies.
After pressing Back(F3) you return to the previous screen.
https://wiki.scn.sap.com/wiki/display/PLM/Variant+Tables 4/10
1/7/2020 Variant Tables - Product Lifecycle Management - Community Wiki
There you need to change the Status to 1(Released). Finally, confirm everything by pressing Save(Ctrl+S).
In the transactions CU62 the variant table structure can be changed and in the CU63 it can be displayed.
https://wiki.scn.sap.com/wiki/display/PLM/Variant+Tables 5/10
1/7/2020 Variant Tables - Product Lifecycle Management - Community Wiki
https://wiki.scn.sap.com/wiki/display/PLM/Variant+Tables 6/10
1/7/2020 Variant Tables - Product Lifecycle Management - Community Wiki
Here we have already entered the characteristic values for our model according to the table from section 2.
By using the Check (Shift+F4) functionality, you can make sure that your variant table complies with the standard (Key Field
entries are unique, no empty entries etc.). For the table maintenance the properties of the used characteristics (single/multi-
valued,
restictable, entry required) are irrelevant.
Remark: In order to enter multiple values in a multi-valued characteristic you need to double-click on a field in the table
maintenance CU60. In the pop-up that appears, you can select the characteristic values using radio-buttons. Note that this
representation is not IPC-compatible. However, there exists the possibility to normalize a variant table with multiple values
by navigating to Table → Untag. As a result, a row of the form
01 AA, BB
is converted to
01 AA
01 BB
In this representation the variant table is IPC-compatible again. Also note that this normalization should be used cautiously
in conjunction with Key Fields, as this might result in errors during the variant table Check (Shift + F4).
Alternatively to the Standard View of the CU60, there exists the possibility to display the allowed value combinations in a
matrix form. By selecting Table → Decision table → Presentation: Matrix, the following screens appears:
Each column in this matrix corresponds to an a priori possible value combination. Since our variant table contains 4
characteristics,
with 3 values each, there 3·3·3·3=81 columns. The variant table restricts this list to 3 combinations - these are the green
columns
in the table. In this matrix representation these 3 value combinations are marked with a red X. This way one can view and
maintain
allowed value combinations very quickly.
In addition this matrix form, there is the possibility to select Presentation: Number of combinations under Table as a
presentation style.
This provides a list view of all possible combinations - the allowed combinations are marked with a + sign.
After you have prepared your Excel-file, you need to enter the name of the variant table and the location of the file in the
transaction CU60E:
After pressing Execute(F8) the content of the Excel-file is transfered to the variant table.
Remark: Note that the CU60E does not support a change-import - when an Excel-file is uploaded, all entries in the variant
table
are deleted and replaced by the values from the Excel-file. In particular, a change-import using change numbers is not
supported in the CU60E.
A more detailed documentation for the CU60E can be found in the attachment of note 516885.
In order to do that, you need to first create the characteristics which are supposed to be the columns of the variant table later
on. Note that you don't need to rebuild all of the columns of the DB table using characteristics. Creating the characteristics
that
you eventually use is sufficient. Next you create the variant table structure in the CU61 with the characteristics that you have
created. After entering the DB table name in the field Database Table of the CU61, the link between the DB table and the
variant table is active.
In order to do that, you need to create a DB table, whose column fields have a format which is "suitable" for the
characteristics
of the variant table - for example, if the characteristic is a five-digit numerical value, then the DB field must be NUM(5) - but
NUM(6) or larger would also be fine. You just have to make sure that the DB field is large enough, so that parts of the
characteristic
values are not cut off. Once the DB table was created in the SE11, you switch to the CU62 were you enter the DB table name
in the
Basis Data of the variant table. After saving, these two objects are linked. In order to actually transfer the data from the
variant table
to the DB table, you need to execute to the transaction CU59, where you just enter the name of the variant table.
Now, whenever the variant table is called in dependency knowledge, the DB table is called instead - you don't need to make
any
adjustments in the dependencies for this to work. Note that all the maintenance tasks must now be done in the DB table -
changes
to the variant table content in the CU60 do not have any effect.
It is initialized with the keyword table, followed by the name of the variant table. In parenthesis you start a column-name
and
set it equal to some characteristic in your dependency - the various column-characteristic pairs are separated by commas.
Note
that you do not have to use all the columns from the variant table. As an example, let's consider our example model for a PC.
The following call
table VT_PC
( CH_PCTYPE = $self.CH_PCTYPE,
CH_PROCESSOR = $self.CH_PROCESSOR,
CH_MEMORY = $self.CH_MEMORY,
CH_HARDDISK = $self.CH_HARDDISK
)
can be used in a procedure. Once the characteristic CH_PCTYPE is entered in the configurator, the other characteristics
CH_PROCESSOR, CH_MEMORY and CH_HARDDISK are inferred, according to the table from section 2. This works
because CH_PCTYPE is a Key-Field in the variant table.
Note that in procedures, the characteristics in the dependency must have the $self, $root or $parent prefix.
Characteristics
https://wiki.scn.sap.com/wiki/display/PLM/Variant+Tables 9/10
1/7/2020 Variant Tables - Product Lifecycle Management - Community Wiki
which are inferred must have the $self prefix.
lovc_vtvf
https://wiki.scn.sap.com/wiki/display/PLM/Variant+Tables 10/10