Skip to Content

Standardization is a key aspect of SAP BW Layered, Scalable Architecture (LSA), SAP’s best practice in Enterprise Data Warehousing. One of the ways to realize standardization in the data staging process is developing generic, reusable ABAP building blocks with a comprehensive interface.

From an Enterprise Data Warehousing perspective, the process of Data Unification can be classified as a modeling pattern. The Data Unification Services’ ABAP building block and central control tables are designed to standardize and facilitate this process.

In my blog Data Unification Services – Supplementing Administrative Characteristics I discussed Data Unification Services, the concept behind it and how to use it in the transformation.

I developed a working version of the Data Unification Services which I would like to share via this document. It covers all details on creating the ABAP Objects classes, including the source code and all necessary ABAP Workbench objects.

Please have a look here to download the attachments.

Step 1: Create Domains

SAP Menu: Tools > ABAP Workbench > Development > ABAP Dictionary

T/code: SE11

 

Create Domains YBWDOMAIN and YBWORGUNIT as shown in the screenshots.

 

Figure_01_Domain_Data_Domain_1.jpg

Figure 1: Domain for Data Domain (1)

 

Figure_02_Domain_Data_Domain_2.jpg

Figure 2: Domain for Data Domain (2)

 

Note that this is just an example. The value list is entirely dependent on your organization’s data management framework.

 

Figure_03_Domain_Organizational_Unit_1.jpg

Figure 3: Domain for Organizational Unit (1)

 

Figure_04_Domain_Organizational_Unit_2.jpg

Figure 4: Domain for Organizational Unit (2)

 

Note that this is just an example. The value list is entirely dependent on your organization’s data management framework.

Step 2: Create Data Elements

SAP Menu: Tools > ABAP Workbench > Development > ABAP Dictionary

T/code: SE11

 

Create Data Elements YBWDOMAIN and YBWORGUNIT as shown in the screenshots.

 

Figure_05_Data_Element_Data_Domain.jpg

Figure 5: Data Element for Data Domain

 

Figure_06_Data_Element_Organizational_Unit.jpg

Figure 6: Data Element for Organizational Unit

Step 3: Create Search Helps

SAP Menu: Tools > ABAP Workbench > Development > ABAP Dictionary

T/code: SE11

 

Create Search Helps YBW_DSFIELD and YBW_IOBJFNM as shown in the screenshots.

 

Figure_07_Search_Help_DataSource_Fields.jpg

Figure 7: Search Help for DataSource Fields

 

Figure_08_Search_Help_InfoObject_Field_Name.jpg

Figure 8: Search Help for InfoObject and Field Name

Step 4: Create Tables

SAP Menu: Tools > ABAP Workbench > Development > ABAP Dictionary

T/code: SE11

 

Create Tables YBWADMIN, YBWUNISRC, YBWUNIVAL and YBWUNIREF as shown in the screenshots.

 

Note: The following Delivery and Maintenance properties apply for all tables.

 

Figure_09_Delivery_Maintenance_Properties.jpg

Figure 9: Delivery and Maintenance Properties

 

Figure_10_Control_Table_Administration_Settings.jpg

Figure 10: Control Table – Administration Settings

 

Note: Insert a new parameter record in the table with object DOMAIN_PARTITIONING and value X in order to activate the domain partitioning functionality.

 

Figure_11_Control_Table_Domain_Driving_Source_Field_DataSource_1.jpg

Figure 11: Control Table – Domain Driving Source Field DataSource (1)

 

Figure_12_Control_Table_Domain_Driving_Source_Field_DataSource_2.jpg

Figure 12: Control Table – Domain Driving Source Field DataSource (2)

 

Figure_13_Control_Table_Domain_Driving_Source_Field_DataSource_3.jpg

Figure 13: Control Table – Domain Driving Source Field DataSource (3)

 

Figure_14_Control_Table_Domain_Driving_Source_Field_DataSource_4.jpg

Figure 14: Control Table – Domain Driving Source Field DataSource (4)

 

Figure_15_Control_Table_Domain_Driving_Source_Field_DataSource_5.jpg

Figure 15: Control Table – Domain Driving Source Field DataSource (5)

 

Figure_16_Control_Table_Value_Assignments_1.jpg

Figure 16: Control Table – Value Assignments (1)

 

Figure_17_Control_Table_Value_Assignments_2.jpg

Figure 17: Control Table – Value Assignments (2)

 

Figure_18_Control_Table_Value_Assignments_3.jpg

Figure 18: Control Table – Value Assignments (3)

 

Figure_19_Control_Table_Reference_Domain_Driving_Characteristic_1.jpg

Figure 19: Control Table – Reference Domain Driving Characteristic (1)

 

Figure_20_Control_Table_Reference_Domain_Driving_Characteristic_2.jpg

Figure 20: Control Table – Reference Domain Driving Characteristic (2)

Step 5: Create Message Class

SAP Menu: Tools > ABAP Workbench > Development > Programming Environment > Messages

T/code: SE91

 

Create Message Class YBWUNI as shown in the screenshots.

 

Figure_21_Message_Class_1.jpg

Figure 21: Message Class (1)

 

Figure_22_Message_Class_2.jpg

Figure 22: Message Class (2)

 

Refer to the attached file YCX_BW_UNIFICATION_and_YBWUNI_v1.txt (part 1 – Message Class YBWUNI) for an overview of all messages with their short text.

Step 6: Create Exception Class

SAP Menu: Tools > ABAP Workbench > Development > Class Builder

T/code: SE24

 

Create class YCX_BW_UNIFICATION as shown in the screenshots. Make sure that you flag checkbox With Message Class.

 

Figure_23_Exception_Class_1.jpg

Figure 23: Exception Class (1)

 

Furthermore, specify on the Properties tab Message Class YBWUNI.

 

Figure_24_Exception_Class_2.jpg

Figure 24: Exception Class (2)

 

Refer to the attached file YCX_BW_UNIFICATION_and_YBWUNI_v1.txt. From here you can quite easily build up the class using copy & paste:

  • Public Section: the source code can be found in Part 2 of the attached file;
  • Method CREATE_LOG_REC: the source code can be found in Part 3 of the attached file;
  • Method CREATE_MONITOR_REC: the source code can be found in Part 4 of the attached file;
  • Description of Title, Attributes, Methods and Parameters can be found in Part 5 of the attached file.

Step 7: Create Class

SAP Menu: Tools > ABAP Workbench > Development > Class Builder

T/code: SE24

 

Create class YCL_BW_UNIFICATION as shown in the screenshot.

 

Figure_25_Class.jpg

Figure 25: Class

 

Refer to the attached file YCL_BW_UNIFICATION_v1.txt. From here you can quite easily build up the class using copy & paste:

  • Source code can be found in Part 1 of the attached file;
  • Description of Title, Attributes, Methods, Parameters, Types and Text Symbols can be found in Part 2 of the attached file.

Step 8: Create Administrative Characteristics

SAP Menu: Modeling > Data Warehousing Workbench: Modeling

T/code: RSA1

 

Create the Characteristics according to the following specifications.

 

Characteristic

Description

Data Type

Length

Reference

Characteristic

XDOMAIN

Data Domain

CHAR

1

XORGUNIT

BW Organizational Unit

CHAR

4

XORIGIN

Origin Source System

0LOGSYS

XREQUID

Data Request (GUID)

0TCTREQUID

XTIMESTMP

Load Timestamp (YYYYMMDDhhmmss)

0TCTTIMSTMP

 

Note:

  • You might want to choose for different technical InfoObject names. However, you should realize that you will have to adapt the source code accordingly in this case;
  • It makes sense to activate and maintain texts for the InfoObjects XDOMAIN and XORGUNIT.

Step 9: Create ABAP Patterns (optional)

SAP Menu: Tools > ABAP Workbench > Development > ABAP Editor

T/code: SE38

 

The functionality to create ABAP Patterns is a bit hidden in the ABAP Editor. You have to open the source code of any program (display mode will do) and go to the menu path:

Utilities > More Utilities > Edit Pattern > Create Pattern

 

Here you can create the ABAP Patterns which I suggest to use:

  • YBW_END_UNI – Execute Data Unification Services – End Routine;
  • YBW_END_UNI_X – Execute Data Unification Services – End Routine (Domain ‘X’);
  • YBW_EXPERT_UNI – Execute Data Unification Services – Expert Routine;
  • YBW_EXPERT_UNI_X – Execute Data Unification Services – Expert Routine (Domain ‘X’).

 

Refer to the attached file ABAP_Patterns_v1.txt for the source code to be inserted in the respective ABAP Pattern.

To report this post you need to login first.

1 Comment

You must be Logged on to comment or reply to a post.

Leave a Reply