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 1 has the links to the other Blog Posts.
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:
References
SAP Blog Post on Links for Classification Tables
Data Relationships between Tables and Objects - Characteristics and Classes
Steps To Extract The Tables And Prep The Load Files
Characteristics Tables
CABN – Characteristics
- 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.
- 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.
- Join between CABN, AUSP and other tables can be as follows:
- AUSP-ATINN = CABN-ATINN
- CABNT-ATINN = CABN-ATINN
CABNT – Characteristics Descriptions
- Use SE16N to download based on KSML valid Characteristic ((KSML-IMERK = CABNT-ATINN).
- Table contains the property of the Characteristic. It contains the type and description of the characteristic.
- Key is ATINN.
- Can also be used if there are different languages in use (SPRAS).
- Do a VLOOKUP to put the characteristic description in CABN using the ATINN between boith files.
CAWN – Characteristics Values
- Contains the allowed values for characteristics. (ATFLV for values and ATWRT for text) ATZHL is the item or position number in the list,
- Key is ATINN.
- Use for the load file as applicable
CAWNT – Characteristics Values Text
- Text Values for the characteristics
- 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
- In SE16N, Table KLAH, select by Class Type to get concise list
- 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.
- KLAH-CLINT = SWOR-CLINT VLOOKUP between these two tables can get the Key Words with corresponding language key
- 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
- In SE16N, select values based on the Clint from KLAH
- Download to excel
- VLOOKUP with SWOR to find the class Key Words based on the CLINT
KSML – Characteristics assigned to Class
- 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
- 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.