Skip to Content

Fixed InfoObject

Fixed InfoObjects are those InfoObjects, which have fixed master data values. Conceptually, this is similar to ‘domain with fixed values’ concept in ABAP.

Use of Fixed InfoObjects is recommended only when,

•     master data maintenance can be done directly in BI and number of master data records is in 2 digits or early 3-digits, or

•     when master data maintenance is not required or rarely required in BI.

Features of Fixed InfoObject:

•     Master data and text data extractors not required.

•     Texts for such master data need to be maintained in BI, along with language-dependent texts.

Step-by-Step solution to convert existing InfoObjects to a Fixed InfoObject, using the new method of data access

Example

Let’s take an example, say InfoObject IO_EXAMPLE, which exists in BI system

Fixed InfoObject IO_EXAMPLE uses fixed text table RSIOEXAMPLET (instead of a generated one).

In the step-by-step solution we use this InfoObject to illustrate the conversion to the new data access method.

Please note that the text table needs to have delivery classes C, S or W. Don’t include the client field in the table. Don’t use generated data elements (like /BI0/…)!!!

At first make the table as “display/maint. allowed” (after you have made the table entries with transaction SE16 you can switch back the setting to “display/maint. allowed with restrictions”).

Step 1: Change entries in table RSDCHABAS

Change the 3 entries for InfoObject IO_EXAMPLE in table RSDCHABAS the following way:

CHABASNM = ‘IO_EXAMPLE’

OBJVERS  = ‘A’, ‘D’, ‘M’

Set data fields of this table:

CHATP    = ‘FIX’

MDRCLNM  = ‘CL_RSMD_RS_IO_EXAMPLE’  

The naming convention for the data access class is CL_RSMD_RS_. For this purpose, place the cursor on the method to redefine and press the button ‘Redefine’.

•     Copy the source code exactly from the method IF_RSMD_RS_ACCES~GET_TEXT of the class CL_RSMD_RS_IO_EXAMPLE.

•     Adjust the following source code to the text table of your fixed InfoObject:

:

:

DATA: l_io_example   TYPE rs_io_example,

         l_txtmd        TYPE rs_txtmd,

:

:

************************************************************************

  • Getting the text from the text table of the fixed InfoObject

************************************************************************

      SELECT SINGLE txtmd FROM RSIOEXAMPLET  INTO l_txtmd

  •                        WHERE langu      = o_langu

                         WHERE langu      = sy-langu

                           AND io_example = .

Step 7: Redefine method VALUEGENERATE

•     Use transaction SE24 to redefine method VALUEGENERATE of the new data access class CL_RSMD_RS_. For this purpose, place the cursor on the method to redefine and press the button ‘Redefine’.

•     Copy the source code exactly from the method VALUEGENERATE of the class CL_RSMD_RS_IO_EXAMPLE.

•     Adjust the following source code to the text table of your fixed InfoObject:

:

:

  DATA: l_s_selopt_save    TYPE rsmd_rs_s_selopt,

        l_first            TYPE c VALUE ‘X’,

        l_t_where          TYPE STANDARD TABLE OF lt_long_code,

        l_line             TYPE lt_long_code,

        l_s_chavlinfo      TYPE rsdm_s_chavlinfo,

        l_io_example       TYPE rs_io_example,

:

:

************************************************************************

  • Selection being made on the text table to get the values

************************************************************************

  SELECT io_example FROM RSIOEXAMPLET INTO l_io_example

        UP TO o_maxrows ROWS

        WHERE (l_t_where)

          and langu = sy-langu.

    l_s_chavlinfo-c_chavl = l_io_example.

    l_s_chavlinfo-i_read_mode = rsdm_c_read_mode-text.

    APPEND l_s_chavlinfo TO e_t_chavlinfo.

  ENDSELECT.

ENDMETHOD.

•     Activate class CL_RSMD_RS_ and include the table key entries.

Save it.

To report this post you need to login first.

5 Comments

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

  1. Anonymous
    Hi Nidhi,

    It looks like a lot of work has to be done to convert these infoobjects.

    But the main question that has arised is: what is the practical use of such infoobjects? Could you provide examples of their usage? Is it worth to do this work?

    Best regards,
    Eugene

    (0) 
    1. Dirk Herzog
      Hi Eugene,
      the use of those InfoObjects might be to prevent people to create wrong values by mistake. But you can do the same by creating a specific conversion exit with much less effort.

      Nidhi, some questions:
      1. Can you still maintain attributes for the InfoObjects?
      2. This function is only available with NW 04s, isn’t it? At least I haven’t found the needed fields in BW 3.5.
      3. Will there be a way to maintain these fields in InfoObject maintenance? This would be a bit more useful.

      Best regards
      Dirk

      (0) 
      1. Anonymous
        Dear Eugene and Dirk,
        Responses to your queries:
        1. & 3. If you mean to maintain the values of attributes (i.e. the data records of the master data table corresponding to the InfoObject), the answer is NO.
        If you mean to maintain the attributes theiselves (i.e. the B Content definition of the InfoObject, the metadata), the answer is YES.

        2. Yes, yiu are right. 🙂
        This feature is available in Release NW 2004s, Support Package 6.

        I hope this helps.
        Please let me know if you have further queriies.
        Cheers,
        Nidhi

        (0) 
    2. Anonymous
      Dear Eugene,
      Typical use cases for using this type of data access method are:
      characteristics, which have a very limited number of clearly defined values and texts (e.g. Order Type) or which get their values and texts from code pages (e.g. ISO code for country).
      This how-to document deals with 3 simple use cases, which should cover 90 % of the requirements to characteristics with non-generic text/master data access:
      •     Values and texts of a characteristic are stored in a DDIC domain of the BI system.
      •     Values and texts of a characteristic are stored in a simple DDIC table of the BI system. The simple table only consists of 3 fields and has the following structure:
      o     Language key                     Key field      (optional)
      o     Key field of the characteristic      Key field
      o     Text field                                   (optional)
      •     Values and texts of a characteristic are stored in a more complex DDIC table of the BI system.

      Benefits are:
      1. Master data and test data extractors are not required. (Involves data synchronization, etc, which can be avoided.)
      2. Maintenace of these values is restricted. This would be useful for shipping standard entries, such as SAP-maintained values or Industry-accepted standards.

      (0) 
  2. Matthew Billingham
    You seem to indicate that in the next release of BI, we’ll be able to access (or create? generate?) classes inheriting from CL_RSMD_RS_BW_SPEC, to handle master data in infoobjects.

    I’m currently working on a 3.5 system, and have been considering creating an interface for infoobjects for this same purpose.

    I’m hesitant to do this now, if the framework exists in higher releases, unless I can do so in a manner which will allow me to switch to the standard after upgrade.

    What are your thoughts on this?

    Regards

    (0) 

Leave a Reply