Skip to Content
Personal Insights

SAP EAM Data Migration Part 3 – Characteristics and Classes

Hello All,

This is Part 3 in the series on the migration of SAP Plant Maintenance data from SAP ERP Central Component (ECC) to SAP S/4HANA® Cloud. In this blog post, I will review the characteristic and classes objects and the key table relationships, tricks, tips and processes for migrating your data using the files approach.

Part 1 – Introduction can be found with this link Part 1

Part 2 – Work Centers can be found with this link Part 2

Part 4 – Functional Locations and Equipment can be found with this link Part 4

Characteristics and Classes

Definition

A characteristic is an object that describe a property that serves to identify and differentiate between objects. Examples: length, color, weight, counters, and so on. The characteristic can be numeric, character, date/time, currency, or user defined. Characteristics are created centrally and used in various classes.

Additional Characteristic Information – SAP Help

A class groups together similar objects described by the same characteristics. The class types determine which objects can be assigned.

Additional Class Information – SAP Help

Characteristic values are then assigned to the specific characteristics in a class for the specific object, i.e. Functional Location, Equipment, Materials, etc. Needs to be a separate conversion so that the values are correctly assigned to the specific object.

Data Relationship Diagrams

In this series, I have included diagrams to explain some of the key relationships between the tables. The legend for the diagrams is as follows:

Data%20relationship%20Legend

References 

SAP Blog Post on Links for Classification Tables

Data Relationships between Tables and Objects – Characteristics and Classes

Characteristics%20and%20Classes

Steps To Extract The Tables And Prep The Load Files

Characteristics Tables

CABN – Characteristics

  1. Use SE16N to download based on KSML valid Characteristic (KSML-IMERK = CABN-ATINN) Table contains the property of the Characteristic. It contains the type, description of the characteristic.
  2. Some of the Field names are slightly different so be careful when mapping field to the load file. for example, MSEHI (unit of measure) is split into two fields MSEHI_1 (Base unit of measure ISO format) and MSEHI_2 (Currency key ISO Format.
  3. Join between CABN, AUSP and other tables can be as follows:
    • AUSP-ATINN = CABN-ATINN
    • CABNT-ATINN = CABN-ATINN

CABNT – Characteristics Descriptions

  1. Use SE16N to download based on KSML valid Characteristic ((KSML-IMERK = CABNT-ATINN).
  2. Table contains the property of the Characteristic. It contains the type and description of the characteristic.
  3. Key is ATINN.
  4. Can also be used if there are different languages in use (SPRAS).
  5. Do a VLOOKUP to put the characteristic description in CABN using the ATINN between boith files.

CAWN – Characteristics Values

  1. Contains the allowed values for characteristics. (ATFLV for values and ATWRT for text) ATZHL is the item or position number in the list,
  2. Key is ATINN.
  3. Use for the load file as applicable

CAWNT – Characteristics Values Text

  1. Text Values for the characteristics
  2. Key is ATINN.

Class Tables

Since Classes are groups of Characteristics that can be assigned to Technical Objects and other master data objects in SAP. In SAP Plant Maintenance, this Customer used Classes primarily on Functional Locations, Equipment. Task Lists, Materials, and Notifications. Classes were created specific to a Class Type (001, 300, 200 for Materials, 002 for equipment, 003 for functional locations  and 015 for notifications). There are many other Class types, this is just the ones we used for this project.

There were two separate load files for classes where some classes for class type 002 – equipment were duplicated with class type 003 – functional location.

KLAH – Class

  1. In SE16N, Table KLAH, select by Class Type to get concise list
  2. Create INDEX if there are Classes used by more than one Class Type (If equipment and functional locations use the same classes) Concatenate the fields CLINT and KLART to identify the specific classes and class types.
  3. KLAH-CLINT = SWOR-CLINT VLOOKUP between these two tables can get the Key Words with corresponding language key
  4. Insert Column to right of CLINT, call it CLINT2 and copy/paste CLINT as values to get rid of leading zeros. Easier it look up other values.

KLAT – Class Text

  1. In SE16N, select values based on the Clint from KLAH
  2. Download to excel
  3. VLOOKUP with SWOR to find the class Key Words based on the CLINT

KSML – Characteristics assigned to Class

  1. Use SE16N and use the Classes from KLAH can be used to find the Characteristics that need to be created for the characteristics load file
  2. Create INDEX if there are Classes used by more than one Class Type (If equipment and functional locations use the same classes) Concatenate the fields CLINT and KLART to identify the specific classes and class types.

Load File Template for Characteristics and Classes

Used the SAP S/4HANA Version 1709 Data Migration Workbench for the loading of the Characteristics and Classes in different template load files.

For the Characteristics Load file we needed to separate out the allowed values to separate tabs in the spreadsheet by Character, Numeric or Currency as necessary for the load file template tabs.

Do VLOOKUPS between the table extract s and the Load file tabs to find where the field names have changed and which tables fields are pulled from. In the Characteristic load templates, some of the field names are different than the legacy field names. POSNR is an internal counter for the load program and other fields need to be reviewed to identify the proper origin.

Align the fields in the extract files with the fields in the load file template as needed. Not all fields from the extracts are needed for the load file.

In the Characteristics Load file template, there  are 9 separate Tabs for Attributes (header info),  Descriptions, Allowed character based values, Allowed numeric values, Allowed currency based values, Description for character based values, Check table for references, Attributes additional data and Restrictions to class type.

In the Classes Load file template there are 4 tabs, General data, Descriptions and key words, Long text and Characteristics.

The Load files for Classes were separated into different load files for Class 002 – Equipment, 003 – Functional locations and 015 – Notifications

Current versions may have more fields and functionality so it is important to always use the up to date templates.

For additional information about migration templates, see the SAP Help Portal (currently available for SAP S/4HANA Cloud only): https://help.sap.com/s4hana. Choose <your release> → Product Assistance → English → Data Migration →  SAP S/4HANA Migration Cockpit  → Migration Objects for SAP S/4HANA  → Available Migration Objects.

Remember to pay attention to the validity dates and make sure they are coordinated with the objects that the class and characteristics are relevant for.

Characteristic Values Assigned to Objects

Where Classes and Characteristics are assigned to objects, example Equipment or Functional Locations, specific values may have been assigned to Characteristics to specifically identify the properties for that Object. Extracting the values assigned to the Characteristics of an Object can be complex, however SAP does have a way to make if a bit more simple. First a little information on some of the key relationships between the class and characteristics tables.

Make sure and check to see in the class type configuration (transaction O1CL), if the “Multiple Objects Allowed” indicator is set. If set, then you need to go through INOB-CUOBJ to get the corresponding AUSP-OBJEK, If not set, then the values are in AUSP.

When Flag MULTIOBJ is set;

  • INOB-OBJEK = EQUI-OBJNR (If Numeric, 18 Char, remove first two characters “IE”, If has text, then just the EQUNR is used, no leading 0’s.
  • INOB-OBJEK = IFLOT-OBJNR (18 Char. Remove first two characters “IF” + Leading 00 or ?0 if alt label active
  • INOB-OBJEK = MARA/MARC-MATNR (18 Char with leading zeros)
  • INOB-CUOBJ = PLKO-PLNTY+PLNNR+PLNAL

AUSP – Characteristic Values

This table saves the value of characteristic for a single business object (Functional Location, Equipment, Customer , material, etc. ).

  • The AUSP-OBJEK refers to business object key, examples;
    • Material Number from MARA-MATNR).
    • Functional Location Object Number from IFLOT-OBJNR
  • The value of the Characteristic can be found in AUSP-ATWRT (neutral value), AUSP-ATFLV for Date Values.

INOB – Link between Internal number and Object

INOB-CUOBJ = AUSP-OBJEK <<<<Characteristic value can be found here (TPLNR or EQUNR)

  • INOB-CUOBJ = KSSK-OBJEK (Here you need to use the full digit of INOB-CUOBJ including the leading zero to find the KSSK-OBJEK.)
  • To find classes assigned to functional locations or Equipment, get the value of CUOBJ from INOB by entering the functional location label (IFLOT) or the Equipment Record (EQUNR) in the INOB-OBJEK field. Then, look up CUOBJ (with padded zeros) in KSSK-OBJEK and use field CLINT to link to KLAH.
  • To find classes assigned to functional locations or Equipment, get the value of CUOBJ from INOB by entering the functional location label (IFLOT) or the Equipment Record (EQUNR) in the INOB-OBJEK field. Then, look up CUOBJ (with padded zeros) in KSSK-OBJEK and use field CLINT to link to KLAH.
  • If there is a “?” in front of the OBJEK entry as the first character for functional locations, this is a result of alternative labeling being used to change the functional location.
  • You can add the field TPLNR to the INOB spreadsheet by a VLOOKUP with table IFLOT using the OBJEK field to get the TPLNR values.

KSSK – Link of Objects to Classes

  • KSSK-CLINT = KLAH-CLINT <<<<Class name can be found here
  • Refer to KSSKAUSP Below for additional information on getting the actual values assigned to the characteristic.

Table view KSSKAUSP – Brings it all together the easy way

There is a generated view table KSSKAUSP that can be used to get the characteristic values assigned to the technical objects.

It will duplicate the values when multiple classes are assigned, so you need to run for each class type (002 – Equipment, 003 – Functional Location, 015 – Notifications).Using SE16N, create separate files for the processing. (KSSKAUSP_002, KSSKAUSP_003, and KSSKAUSP_015)

You will need to create several indexes.

In KLAH, and KSSKAUSP_XXX, create INDEX that concatenates CLINT +_ + KLART. With leading Zero’s. used for VLOOKUP between KLAH and KSSKAUSP_XXX files to bring CLASS Name (CLASS) and if needed Class Group (KLAGR) into KSSKAUSP_XXX.

In each file KSSKAUSP_XXX, create index “CLINT-IMERK” that concatenates the Internal Class Number and the Characteristic ID CLINT +_+ ATINN  to be used for VLOOKUP between KSSKAUSP_XXX and KSML to get POSNR (Position number) .

Equipment Characteristic Values

In the file KSSK_AUSP_002, insert column for EQUNR to bring in the equipment number from EQUI using the OBJEK in EQUI. Insert field after KLART in KSSKAUSP_002 for EQUNR and use the VLOOKUP to get EQUNR using OBJEK between both tables.

In file KSSKAUSP_002 insert Column for Class after KLART and use the INDEX field to VLOOKUP the Class name between KLAH and KSSKAUSP_002.

In file KSSKAUSP_002 insert Column after ATINN for POSNR and use index CLIT-IMERK to get the POSNR from KSML. Check entries for #N/A to see if relevant or can be deleted.

KSSKAUSP_002 Fields ready for use in load file

CLINT-IMERK CLINT+ATINN
INDEX CLINT+KLART
OBJEK Key of object to be classified
CLINT Internal Class Number
KLART Class Type
CLASS Class Name from KLAH
EQUNR Equipment Number from EQUI
ATINN Internal Characteristic
POSNR Position number from KSML
ATWRT Characteristic Value
ATFLV Internal Floating Point From
ATFLB Internal Floating Point To
MAFID Indicator Object / Class
ATZHL Characteristic Value Counter
STATU Classificaiton Status
ATCOD Code for value dependency
LKENZ Deletion Indicator
AENNR Change Number
ATAWE Unit of Measure
KSSKAENNR Change Number
KSSKLKENZ Deletion Indicator
ATIMB Characteristic number of user-defined type
ATZIS Instance counter
DATUV Valid from date
KSSKDATUV Valid from date

Note: not all of these fields are needed in the load file.

Functional Location Characteristic Values

Bring in Functional Location (TPLNR) using OBJEK in IFLOT. Insert field after KLART in KSSKAUSP_003 for TPLNR and use the VLOOKUP to get TPLNR using OBJEK between both tables.

Create INDEX in KSSKAUSP_003 and in KLAH that combines CLINT + KLART, use to get Class name from KLAH for each entry in KSSKAUSP_003.

Insert a new Column A and create INDEX CLINT-IMERK that combines CLINT + ATTINN, use to VLOOKUP to get POSNR from KSML. Check entries for #N/A to see if relevant or can be deleted.

KSSKAUSP_003 Fields ready for use in load file

CLINT-IMERK CLINT+ATINN
INDEX CLINT+KLART
OBJEK Key of object to be classified
CLINT Internal Class Number
KLART Class Type
CLASS Class Name from KLAH
TPLNR Functional Locaton from IFLOT
ATINN Internal Characteristic
POSNR Position number from KSML
ATWRT Characteristic Value
ATFLV Internal Floating Point From
ATFLB Internal Floating Point To
MAFID Indicator Object / Class
ATZHL Characteristic Value Counter
STATU Classificaiton Status
ATCOD Code for value dependency
LKENZ Deletion Indicator
AENNR Change Number
ATAWE Unit of Measure
KSSKAENNR Change Number
KSSKLKENZ Deletion Indicator
ATIMB Characteristic number of user-defined type
ATZIS Instance counter
DATUV Valid from date
KSSKDATUV Valid from date

Notification Characteristic Values

For this Customer, the notifications, depending on the catalog profile had classes and characteristics assigned for additional data captured as part of the work order closeout process. Since any information already captured was history and to remain in the Legacy system, available to view as needed. Customer did not need to extract and load any of this information into the converted notifications as it would have potentially caused duplicated information when extracted and used by the reliability engineers for analysis.

Generally the same process mentioned above can be followed to extract the information from the generated view of KSSKAUSP for the class type 015.

Load File Template for Characteristic Values Assignment

Used the SAP S/4HANA Version 1709 Data Migration Workbench for the loading of the Characteristic values assigned to equipment and functional locations.

The load file template has 4 tabs, Header, Numerical value allocation, Currency value allocation and Character value allocation.

The Header tab must have one entry per Object, ie  equipment number or functional location. The subsequent value allocation tabs have the Class type, Class name, Object number, Characteristic name, item number (POSNR) and Characteristic value, Characteristic Value Long Text, etc. The Field names in the Load file template may be different so pay close attention to the descriptions and align the extract file fields with the load file template.

The load file template is used for multiple objects, so the MATNR field is equal to the EQUNR and TPLNR fields, differentiated by the class type. (I changed the fields in the load file template for each object and the Data Migration Team changed it back to MATNR.) Check with your Data Migration team to see what the current load file template requires.

In the KSSKAUSP_XXX file, filter ATWRT for Blanks and copy the record lines with values in ATFLV to the load file for the tab Numerical value allocation, Filter ATWRT for non-blanks and copy the records with text in ATWRT to the Character value allocation tab.

For some of the characteristics assigned to Classes, the Characteristic values have been overwritten and other values are assigned to the characteristic. The PIPING Class has the PIPE_INSPECTION_TYPE Characteristic values overwritten. These values will be in field OMERK in KSML. (The characteristics should be added to the base Characteristic values list.)

Closing Comments

We struggled for a while on how to get the specific characteristic values assigned to each object until finding the information on the generated view KSSKAUSP. That made all the difference for us and allowed a quick and efficient method for extracting and preparing the load files. I hope this will help you as well.

Please stay tuned for the next Blog Post in this Series SAP EAM Data Migration Part 4 – Functional Locations and Equipment, coming soon. I look forward to your comments, feedback and engaging conversation. Please follow my profile to get updates as new content is added.

Be the first to leave a comment
You must be Logged on to comment or reply to a post.