Skip to Content

Data Warehouse InfoObjects can be defined as the data elements to populate the Data Warehouse layer of your Enterprise Data Warehouse. Please refer for a conceptual overview to my blog Introducing Data Warehouse InfoObjects – Part 1: Conceptual Overview. For SAP source systems it is advisable to take advantage of the structured and comprehensive ABAP Data Dictionary to generate these Data Warehouse InfoObjects. Please refer for more technical details to my blog Introducing Data Warehouse InfoObjects – Part 2: Technical Details.

I created an ABAP program to generate Data Warehouse InfoObjects for SAP source systems’ DataSources. This blog series explains how to use the program. In Part 1 we will have a look at the program, the application log, and the generated InfoObjects, Template DataStore Object (DSO) and Mapping Rules.

The blog series consists of the following blogs in addition to this blog:

I published the following 3 documents with detailed technical instructions how to create the ABAP program and all related objects:

Starting the Program

You can start the program by using t/code YIOBJ.

Figure_1_Selection_Screen.jpg

Figure 1: Selection Screen

Select a DataSource and Source System on the selection screen. You can use the F4 search help functionality. The program will check the input afterwards and gives an error message in case of any incorrect input. Press the Execute pushbutton to start processing.

Note that the program will check on authorization object YBWDWHIOBJ. Please make sure that an appropriate authorization role is assigned to your user-id. This will be explained in Part 3 of the blog series.

Analyzing the Application Log

As the last processing step the program will display an application log.

Figure_2_Application_Log_1.jpg

Figure_2_Application_Log_2.jpg

Figure 2: Application Log

The program collects all messages issued during processing and adds them to the application log. Here you can obtain an overview of all InfoObjects that have been generated as well as the Template DSO and the Mapping Rules. If applicable any error messages can be found here. The various processing blocks can be identified by the “Start of processing” and “End of processing” messages.

Note that you can always review previous application logs retrospectively via t/code SLG1.

Make sure to fill in appropriate selection criteria such as Object YBW , Sub Object YBWDWHIOBJ, date/time and user-id to narrow down the search results.

Figure_3_Analyze_Application_Log.jpg

Figure 3: Analyze Application Log

Generated InfoObjects

The program analyzes the ABAP Data Dictionary objects of the DataSource. The processing order is as follows:

  1. Basic Characteristics;
  2. Characteristics with Reference;
  3. Units;
  4. Key Figures.

The program checks the Metadata Repository if an InfoObject already exists for the respective domain or data element. If yes, then it will proceed by skipping this domain or data element. Otherwise it will generate a new InfoObject that will be appended to the respective Metadata Repository table and adds it to the appropriate InfoObject Catalog.

Figure_4_InfoObject_Catalogs.jpg

Figure 4: InfoObject Catalogs for Generated InfoObjects

Generated Template DSO

After the processing of the InfoObjects the program generates a so-called Template DSO.

Figure_5_Template_DSOs.jpg

Figure 5: Generated Template DSOs

This Template DSO acts as a container for all InfoObjects and can be used as a template for creating other objects such as DSOs and InfoSources.

Generated Mapping Rules

Last but not least, the program generates so-called Mapping Rules.

Figure_6_Mapping_Rules.jpg

Figure 6: Generated Mapping Rules

The generated Mapping Rules can be reused by the Mapping Services’ ABAP building block which is used for dynamically mapping DataSource Fields with InfoObjects. Please refer to my blog Mapping Services – Inbound Mapping of DataSource Fields to InfoObjects for more information.

Conclusion

In this blog I introduced the ABAP program to generate Data Warehouse InfoObjects. We had a look at the program, the application log, and the generated InfoObjects, Template DSO and Mapping Rules. In Generating Data Warehouse InfoObjects – Part 2: Metadata Repository we will discuss the Metadata Repository. The customizing is subject of Generating Data Warehouse InfoObjects – Part 3: Customizing. Generating Data Warehouse InfoObjects – Part 4: Optimizing Results explains how to optimize the results.

To report this post you need to login first.

10 Comments

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

  1. Suman Chakravarthy K

    Hi Mr.Sander,

    I am trying to follow your blog to create infoobjects in a mass manner. Can you give me the ABAP code to create program called YIOBJ?

    Regards,

    Suman

    (0) 
    1. Sander van Willigen Post author

      Hi Suman,

      Thanks for your comment and nice to hear that you are interested to try out the program.

      As you can read in my blog I promised to publish documents with detailed technical instructions how to create the ABAP program and all related objects. In the meantime I have been very busy with 2 LSA related projects with limited spare time to work out the documentation. So it is still pending.

      Just to give you an idea, it’s not just a program that you have to create. The implementation consists of 13 steps in the BW system and 3 steps in every SAP source system. Please find below a list of activities.

      The following steps have to be carried out in the BW system:

      Step 1: Create a number range object

      Step 2: Create an application log object and subobject

      Step 3: Create 2 domains

      Step 4: Create 2 data elements

      Step 5: Create 2 search helps

      Step 6: Create 8 tables

      Step 7: Create 5 lock objects

      Step 8: Create an authorization object class and object

      Step 9: Create a message class

      Step 10: Create an exception class

      Step 11: Create a class

      Step 12: Create a program

      Step 13: Create a transaction code -> i.e. YIOBJ

      The following steps have to be carried out in every SAP source system:

      Step 14: Create 4 line structures

      Step 15: Create 4 table types

      Step 16: Create a function group with 2 function modules

      I’m currently working on it and I hope to publish it a.s.a.p. Please have a bit more patience.

      If you really cannot wait, then I can send you some “preliminary” documentation and source code in advance. Please let me know what you prefer.

      Best regards,

      Sander

      (0) 
      1. Suman Chakravarthy K

        Hi Sander,

        Thanks for your detailed explanation with the steps. Actually, I have developed couple of datasources and replicated them in BW. Now, I have to create respective infoobjects in BW. Thus, I am looking for some tool to create mass infoobjects. I tried with CTBW_META t-code. But I am not successful. Can you help me in a simpler way?

        Looking for your reply.

        Thanks & Regards,

        Suman

        (0) 
        1. Ranganath Korata

          Hi Suman,

          I had the following document bookmarked long ago for future reference. I understand that the following document works differently from Sander’s approach, and there is manual work such as creation of the spreadsheet with IO properties. Until Sander completes the documentation, the following might help you.

          http://scn.sap.com/docs/DOC-12249

          Sander, your blog is very interesting, and would like to test it once the code is ready and shared. Thanks for your contribution.

          Thanks,

          Ranga

          (0) 
  2. Sander van Willigen Post author

    Hi Suman, Ranga & Others,

    Please be informed that today I published the first of 3 documents re. implementing Data Warehouse InfoObjects: Implementing Data Warehouse InfoObjects – Part 1: ABAP Dictionary Objects. The documents provide detailed technical instructions on how to create the ABAP program and all related ABAP Workbench objects.

    Part 2 and Part 3 will follow soon.

    Thanks again for your patience and please let me know your feedback.

    Best regards,

    Sander

    (0) 
  3. Filip Ghysens

    Hello Sander

    I would like to try to implement this on our system.
    Will the code work when using non oltp datasources ?  We are in need to create infoobjects for external datasources (Data Services)
    Your code is not longer available as attachment on PArt 3 of the implementation blogs.

    Best regards
    f

    (0) 
    1. Sander van Willigen Post author

      Hi Filip,

      Thanks for your comment and sorry for my late reply.

      The implementation blogs (part 2 and part 3) contain a link to a tiny Q&A. Here you can find the attachments which were lost during the migration. The documentation should be complete.

      Re. your other question, the program only works for SAP DataSources, e.g. SAP ECC and SAP CRM. It will not work for non-SAP DataSources, e.g. Data Services).

      Best regards,

      Sander

      (0) 
  4. Mamata Swamy

    Hello Sander

    Hope you are doing well.

    We are trying to automate the process of Info Object creation. Is you documentation complete with all the steps now? Can you please share it in this form if it is?

    I also wanted to know if there is a way to get the data of all existing Info Objects downloaded in an excel?

    Will your report take care of capturing all info objects data in current system?

    This same data can be used to create the Info Objects in the target system.

     

    Awaiting your reply.

    Regards

    Mamata JS.

     

     

     

    (0) 
    1. Sander van Willigen Post author

      Hi Mamata,

      The implementation blogs (part 2 and part 3) contain a link to a tiny Q&A. Here you can find the attachments which were lost during the migration. The documentation should be complete.

      Re. your other question, I strongly recommend to only use the program to generate InfoObjects in the Development system. As a next step I suggest to collect all newly created InfoObjects using the Transport Connection. A regular transport is the best practice way to promote your developments to subsequent systems (e.g. QA or Production system).

      Best regards,

      Sander

      (0) 

Leave a Reply