Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
varma_narayana
Active Contributor
16,860

Applies to:

SAP BW 3.5, SAP BI 7.0 and above

Summary

In various scenarios it would become essential to identify all the impacted objects before implementing any changes to an object in BW. Obtaining a list of programs such as transformations, user exits in which a look up is performed on an info object, DSO or a Database table, helps us in analyzing the impact and take necessary steps.

SAP BW Look-Up Finder Tool would enable the user to search for the list of transformations, user exits and other routines where the given info object, DSO or a database table being looked up. It would give all the essential details of the code location, such as the transformation name, info package etc. along with the source info provider, target info provider, line number, location (start routine, end routine or field level routine) and the field name. Based on these details the BW developers can assess the impact of the proposed changes and implement the changes consistently. This tool would be very much useful in the BW upgrade projects, since it facilitates the impact analysis by providing where used list.

Author(s):    Narayana Varma Sree Vatsavayi

Company:    Deloitte Consulting

Created on:  04 June 2012

Author Bio

Narayana Varma is a SAP Certified Business Intelligence Consultant with overall 8 years of experience, including SAP BI and ABAP. He is currently working for Deloitte Consulting as a SAP BI Consultant. His experience includes both implementation and support projects along with mentoring and competency development activities.

Table of Contents

Steps to Implement the BI Look Up Finder Tool 3

User Interface. 3

Selection Screen. 3

Information Furnished. 4

Case 1 - Search for Transformations: 4

Case 2 - Search for Info package selection and DTP filter routines: 5

Case 3 - Search for User Exits: 5

BI Look Up Finder Tool – Program Code. 6

Related Content 18

Copyright 19

Steps to Implement the BW Look Up Finder Tool

BI Loop Up Finder tool is implemented as an ABAP Report that can be readily deployed into any SAP BI system by following the simple steps given below.

  1. Create a new ABAP Program – Example: ZBW_LOOKUP_FINDER
  2. Copy the source code – Provided in section “BI Look Up Finder - Program Code”
  3. Save and Activate the program
  4. Maintain the Text Elements as given below

User Interface

  1. Execute the Program: Example - ZBW_Lookup_Finder
  2. In the below selection screen enter the desired object name and choose the respective search criteria.

Selection Screen

Information Furnished

Based on user input and search criteria, various details are displayed to identify the exact location of the code where a particular info object, DSO or Database table being looked up.

Sample run - Search for Transformations:

To search for list of transformations and update rules for a given info object

Search results:

BI Look Up Finder Tool – Program Code

REPORT  zbw_lookup_test_v3 NO STANDARD PAGE HEADING LINE-SIZE 140.

TYPE-POOLS slis.

DATA: g_repid TYPE sy-repid.

DATA it_fcat TYPE slis_t_fieldcat_alv.

DATA : wa_fcat LIKE LINE OF it_fcat.

DATA : objname(40) TYPE c,

       objfrom(75) TYPE c,

       ind TYPE sy-tabix,

       v_iobj(40).

DATA: it_ipak TYPE TABLE OF rsldprule,

      wa_ipak LIKE LINE OF it_ipak.

SELECTION-SCREEN: BEGIN OF BLOCK a WITH FRAME TITLE text-t01.

PARAMETERS : p_obj LIKE objname.

PARAMETERS : r_iobj RADIOBUTTON GROUP abc,

             r_dso RADIOBUTTON GROUP abc.

PARAMETERS: r_tab RADIOBUTTON GROUP abc.

SELECTION-SCREEN: BEGIN OF BLOCK b WITH FRAME TITLE text-t02.

SELECTION-SCREEN: BEGIN OF LINE.

PARAMETERS: r_trn RADIOBUTTON GROUP xyz.

SELECTION-SCREEN: COMMENT 5(15) text-c01 FOR FIELD r_trn.

PARAMETERS:   r_ipak RADIOBUTTON GROUP xyz.

SELECTION-SCREEN: COMMENT 25(20) text-c02 FOR FIELD r_ipak.

PARAMETERS:   r_exit RADIOBUTTON GROUP xyz.

SELECTION-SCREEN: COMMENT 50(15) text-c03 FOR FIELD r_exit.

SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: END OF BLOCK b.

SELECTION-SCREEN: END OF BLOCK a .

TYPES : BEGIN OF ty_rstran,

        tranid TYPE rstran-tranid,

        sourcename TYPE rstran-sourcename,

        targetname TYPE rstran-targetname,

        startroutine TYPE rstran-startroutine,

        endroutine TYPE rstran-endroutine,

        expert TYPE rstran-expert,

        END OF ty_rstran,

        BEGIN OF ty_fldrout,

        tranid TYPE rstransteprout-tranid,

        ruleid TYPE   rstransteprout-ruleid,

        stepid TYPE  rstransteprout-stepid,

        codeid TYPE rstransteprout-codeid,

        END OF ty_fldrout,

        BEGIN OF ty_rsaabap,

        codeid TYPE rsaabap-codeid,

        line_no TYPE rsaabap-line_no,

        line TYPE rsaabap-line,

        END OF ty_rsaabap,

        BEGIN OF ty_rsupdrout,

        updid TYPE rsupdrout-updid,

        codeid TYPE rsupdrout-codeid,

        END OF ty_rsupdrout,

        BEGIN OF ty_rsupdinfo,

        updid TYPE rsupdinfo-updid,

        infocube TYPE rsupdinfo-infocube,

        isource TYPE rsupdinfo-isource,

        END OF ty_rsupdinfo,

        BEGIN OF ty_op,

        tranid TYPE rstran-tranid,

        sourcename TYPE rstran-sourcename,

        targetname TYPE rstran-targetname,

        line_no TYPE rsaabap-line_no,

        location(20) TYPE c,                    "Start / End / Field routine etc..

        fieldname TYPE rstranfield-fieldnm,

        END OF ty_op.

DATA : it_rstran TYPE STANDARD TABLE OF ty_rstran,

       wa_rstran TYPE ty_rstran,

       it_fldrout TYPE TABLE OF ty_fldrout,

       wa_fldrout TYPE ty_fldrout,

       it_fieldmap TYPE TABLE OF rstranfield,

       wa_fieldmap TYPE rstranfield,

       it_output TYPE STANDARD TABLE OF ty_op,

       wa_output TYPE ty_op,

       it_rsaabap TYPE STANDARD TABLE OF ty_rsaabap,

       t_rsaabap TYPE STANDARD TABLE OF ty_rsaabap,

       wa_rsaabap TYPE ty_rsaabap,

       wa1_rsaabap TYPE ty_rsaabap,

       it_updrout TYPE STANDARD TABLE OF ty_rsupdrout,

       wa_updrout TYPE ty_rsupdrout,

       it_rsupdinfo TYPE STANDARD TABLE OF ty_rsupdinfo,

       wa_rsupdinfo TYPE ty_rsupdinfo.

AT SELECTION-SCREEN.

  IF p_obj IS INITIAL.

    MESSAGE 'Enter valid object name' TYPE 'E'.

  ENDIF.

START-OF-SELECTION.

  g_repid = sy-repid.

  CASE  'X'.

    WHEN r_dso.

      CONCATENATE '*FROM*A' p_obj '00' '*'  INTO objfrom.

      CONCATENATE '*A' p_obj '00' '*'  INTO objname.

    WHEN r_iobj.

      v_iobj = p_obj+1(39).

      CONCATENATE '*FROM*P' v_iobj '*' INTO objfrom.

      CONCATENATE '*P' v_iobj '*' INTO objname.

    WHEN r_tab.

      CONCATENATE '*FROM*' p_obj '*' INTO objfrom.

      CONCATENATE '*' p_obj '*' INTO objname.

  ENDCASE.

  TRANSLATE objname TO UPPER CASE.

  IF r_ipak = 'X'.

    PERFORM display_ip_selections .

    SKIP 2.

    PERFORM display_dtp_selections.

    EXIT.

  ENDIF.

  IF r_exit = 'X'.

    CASE 'X'.

      WHEN r_iobj.

        PERFORM display_exits USING v_iobj.

      WHEN r_dso OR r_tab.

        PERFORM display_exits USING p_obj.

    ENDCASE.

  ENDIF.

**To fetch field start / end/ expert routines in transformations

  SELECT tranid sourcename targetname startroutine

    endroutine expert FROM rstran INTO TABLE it_rstran

    WHERE objvers = 'A'.

  DELETE it_rstran WHERE startroutine IS INITIAL

  AND endroutine IS INITIAL AND expert IS INITIAL.

**To fetch field level routines in transformations

  SELECT tranid ruleid stepid codeid

    FROM rstransteprout INTO TABLE it_fldrout

    WHERE objvers = 'A' .

*    and KIND = 'NORMAL'.

*   Select from Update Rule Tables************

  SELECT updid codeid FROM rsupdrout INTO TABLE it_updrout

  WHERE objvers = 'A' AND routine = '9998'.

  IF it_updrout[] IS NOT INITIAL.

    SELECT updid infocube isource FROM rsupdinfo INTO TABLE it_rsupdinfo

    FOR ALL ENTRIES IN it_updrout WHERE updid = it_updrout-updid

    AND objvers = 'A'.

    SELECT codeid line_no line FROM rsaabap

    INTO TABLE t_rsaabap FOR ALL ENTRIES IN it_updrout

    WHERE codeid = it_updrout-codeid AND objvers = 'A'.

    APPEND LINES OF t_rsaabap[] TO it_rsaabap[].

  ENDIF.

  CLEAR t_rsaabap[].

  REFRESH t_rsaabap[].

  IF it_rstran[] IS NOT INITIAL.

    SELECT codeid line_no line FROM rsaabap

    INTO TABLE t_rsaabap FOR ALL ENTRIES IN it_rstran

    WHERE codeid = it_rstran-startroutine AND

    objvers = 'A'.

    APPEND LINES OF t_rsaabap TO  it_rsaabap.

  ENDIF.

  CLEAR t_rsaabap[].

  REFRESH t_rsaabap[].

  IF it_rstran[] IS NOT INITIAL.

    SELECT codeid line_no line FROM rsaabap

    INTO TABLE t_rsaabap FOR ALL ENTRIES IN it_rstran

    WHERE codeid = it_rstran-endroutine AND

      objvers = 'A'.

    APPEND LINES OF t_rsaabap TO  it_rsaabap.

  ENDIF.

  CLEAR t_rsaabap[].

  REFRESH t_rsaabap[].

  IF it_rstran[] IS NOT INITIAL.

    SELECT codeid line_no line FROM rsaabap

    INTO TABLE t_rsaabap FOR ALL ENTRIES IN it_rstran

    WHERE codeid = it_rstran-expert AND

      objvers = 'A'.

    APPEND LINES OF t_rsaabap TO  it_rsaabap.

  ENDIF.

  CLEAR t_rsaabap[].

  REFRESH t_rsaabap[].

  IF it_fldrout[] IS NOT INITIAL.

    SELECT codeid line_no line FROM rsaabap

    INTO TABLE t_rsaabap FOR ALL ENTRIES IN it_fldrout

    WHERE codeid = it_fldrout-codeid AND

      objvers = 'A'.

    APPEND LINES OF t_rsaabap TO  it_rsaabap.

    SELECT * FROM rstranfield INTO TABLE it_fieldmap

      FOR ALL ENTRIES IN it_fldrout

      WHERE tranid = it_fldrout-tranid

      AND objvers = 'A'

*      and stepid = it_fldrout-stepid

      AND ruleid = it_fldrout-ruleid .

  ENDIF.

  CLEAR t_rsaabap[].

  REFRESH t_rsaabap[].

  CLEAR ind.

  LOOP AT it_rsaabap INTO wa_rsaabap.

    TRANSLATE wa_rsaabap-line TO UPPER CASE.

    IF wa_rsaabap-line CP objname.

      IF sy-tabix NE 1.

        ind = sy-tabix - 1.

        READ TABLE it_rsaabap INTO wa1_rsaabap INDEX ind.

        IF sy-subrc EQ 0.

          IF wa_rsaabap-line CP objfrom OR wa1_rsaabap-line CP

          '*FROM*'.

****************** Read for Update Rules

            READ TABLE it_updrout INTO wa_updrout WITH KEY codeid = wa_rsaabap-codeid.

            IF sy-subrc EQ 0.

              READ TABLE it_rsupdinfo INTO wa_rsupdinfo WITH KEY updid = wa_updrout-updid.

              IF sy-subrc EQ 0.

                wa_output-sourcename = wa_rsupdinfo-isource.

                wa_output-targetname = wa_rsupdinfo-infocube.

                wa_output-line_no = wa_rsaabap-line_no.

                wa_output-tranid = wa_updrout-updid.

                wa_output-location =  'Update Rules'.

                APPEND wa_output TO it_output.

              ENDIF.

            ENDIF.

            READ TABLE it_rstran INTO wa_rstran WITH KEY startroutine = wa_rsaabap-codeid.

            IF sy-subrc EQ 0.

              MOVE-CORRESPONDING wa_rstran TO wa_output.

              MOVE-CORRESPONDING wa_rsaabap TO wa_output.

              wa_output-location = 'START Routine'.

              APPEND wa_output TO it_output.

            ELSE.

              READ TABLE it_rstran INTO wa_rstran WITH KEY endroutine =  wa_rsaabap-codeid.

              IF sy-subrc EQ 0.

                MOVE-CORRESPONDING wa_rstran TO wa_output.

                MOVE-CORRESPONDING wa_rsaabap TO wa_output.

                wa_output-location = 'END Routine'.

                APPEND wa_output TO it_output.

              ELSE.

                READ TABLE it_rstran INTO wa_rstran WITH KEY expert = wa_rsaabap-codeid.

                IF sy-subrc EQ 0.

                  MOVE-CORRESPONDING wa_rstran TO wa_output.

                  MOVE-CORRESPONDING wa_rsaabap TO wa_output.

                  wa_output-location = 'EXPERT Routine'.

                  APPEND wa_output TO it_output.

                ENDIF.

                READ TABLE it_fldrout INTO wa_fldrout WITH KEY codeid =   wa_rsaabap-codeid.

                IF sy-subrc EQ 0.

                  MOVE-CORRESPONDING wa_fldrout TO wa_output.

                  MOVE-CORRESPONDING wa_rsaabap TO wa_output.

                  wa_output-location = 'FIELD Routine'.

                  READ TABLE it_fieldmap INTO wa_fieldmap WITH KEY tranid = wa_fldrout-tranid

                                                                   ruleid = wa_fldrout-ruleid.

                  IF sy-subrc = 0.

                    wa_output-fieldname = wa_fieldmap-fieldnm.

                  ENDIF.

                  APPEND wa_output TO it_output.

                ENDIF.

              ENDIF.

            ENDIF.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDLOOP.

END-OF-SELECTION.

  PERFORM build_fieldcatalog_1.

  PERFORM display_list_1.

*&---------------------------------------------------------------------*

*&      Form  BUILD_FIELD_CATALOG

*&---------------------------------------------------------------------*

FORM build_fieldcatalog_1 .

  wa_fcat-fieldname = 'TRANID'.

  wa_fcat-tabname = 'IT_OUTPUT'.

  wa_fcat-ref_fieldname = 'TRANID'.

  wa_fcat-ref_tabname = 'RSTRAN'.

  wa_fcat-seltext_l = 'Transformation ID'.

  wa_fcat-seltext_m = 'Transformation'.

  wa_fcat-seltext_s = 'Trans ID'.

  APPEND wa_fcat TO it_fcat.

  wa_fcat-fieldname = 'SOURCENAME'.

  wa_fcat-tabname = 'IT_OUTPUT'.

  wa_fcat-ref_fieldname = 'SOURCENAME'.

  wa_fcat-ref_tabname = 'RSTRAN'.

  wa_fcat-seltext_l = 'Source Info Provider'.

  wa_fcat-seltext_m = 'Source InfPro'.

  wa_fcat-seltext_s = 'Src InfoPrv'.

  APPEND wa_fcat TO it_fcat.

  wa_fcat-fieldname = 'TARGETNAME'.

  wa_fcat-tabname = 'IT_OUTPUT'.

  wa_fcat-ref_fieldname = 'TARGETNAME'.

  wa_fcat-ref_tabname = 'RSTRAN'.

  wa_fcat-seltext_l = 'Target Info Provider'.

  wa_fcat-seltext_m = 'Target Infoprov'.

  wa_fcat-seltext_s = ' Tgt InfPrv'.

  APPEND wa_fcat TO it_fcat.

  wa_fcat-fieldname = 'LINE_NO'.

  wa_fcat-tabname = 'IT_OUTPUT'.

  wa_fcat-ref_fieldname = 'LINE_NO'.

  wa_fcat-ref_tabname = 'RSAABAP'.

  wa_fcat-seltext_l = 'Line Number'.

  wa_fcat-seltext_m = 'Line No'.

  wa_fcat-seltext_s = 'Line No'.

  APPEND wa_fcat TO it_fcat.

  CLEAR wa_fcat.

  wa_fcat-fieldname = 'LOCATION'.

  wa_fcat-tabname = 'IT_OUTPUT'.

  wa_fcat-seltext_l = 'Location'.

  wa_fcat-seltext_m = 'Location'.

  wa_fcat-seltext_s = 'Location'.

  wa_fcat-outputlen = 20.

  APPEND wa_fcat TO it_fcat.

  CLEAR wa_fcat.

  wa_fcat-fieldname = 'FIELDNAME'.

  wa_fcat-tabname = 'IT_OUTPUT'.

  wa_fcat-ref_fieldname = 'FIELDNM'.

  wa_fcat-ref_tabname = 'RSTRANFIELD'.

  wa_fcat-seltext_l = 'Field/Info Obj'.

  wa_fcat-seltext_m = 'Field/Info Obj'.

  wa_fcat-seltext_s = 'Field/IObj'.

  APPEND wa_fcat TO it_fcat.

  CLEAR wa_fcat.

  1. ENDFORM.                    " BUILD_FIELD_CATALOG

*&---------------------------------------------------------------------*

*&      Form  DISPLAY_LIST_1

*&---------------------------------------------------------------------*

FORM display_list_1 .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTING

      i_callback_program = g_repid

      it_fieldcat        = it_fcat

    TABLES

      t_outtab           = it_output

    EXCEPTIONS

      program_error      = 1

      OTHERS             = 2.

  IF sy-subrc <> 0.

    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

  ENDIF.

  1. ENDFORM.                    " DISPLAY_LIST_1

*&---------------------------------------------------------------------*

*&      Form  DISPLAY_EXITS

*&---------------------------------------------------------------------*

FORM display_exits USING l_object.

  DATA: it_sel TYPE TABLE OF rsparams,

          wa_sel TYPE rsparams.

  wa_sel-selname = 'SSTRING'.

  wa_sel-kind = 'S'.

  wa_sel-sign = 'I'.

  wa_sel-option = 'EQ'.

  wa_sel-low = l_object.

  APPEND wa_sel TO it_sel.

  CLEAR wa_sel.

  SUBMIT rs_abap_source_scan

*  VIA SELECTION-SCREEN

  WITH SELECTION-TABLE it_sel

  WITH repname CP 'ZX*'

  AND RETURN.

  LEAVE LIST-PROCESSING.

  1. ENDFORM.                    " DISPLAY_EXITS

*&---------------------------------------------------------------------*

*&      Form  DISPLAY_IP_SELECTIONS

*&---------------------------------------------------------------------*

FORM display_ip_selections .

*Fetch info package selections code

  SELECT

    logdpid

    objvers

    fieldname

    lnr

    iobjnm

    line

    FROM rsldprule

    INTO TABLE it_ipak

    WHERE objvers = 'A'.

  FORMAT COLOR COL_HEADING.

  WRITE: 'Info Package',

        35 'Field name',

        50 'Line No',

        70 'Code'.

  FORMAT COLOR OFF.

  LOOP AT it_ipak INTO wa_ipak.

    IF wa_ipak-line CP objname.

      WRITE:/ wa_ipak-logdpid,

            35 wa_ipak-fieldname,

            50 wa_ipak-lnr,

            70 wa_ipak-line.

    ENDIF.

  ENDLOOP.

  1. ENDFORM.                    " DISPLAY_IP_SELECTIONS

*&---------------------------------------------------------------------*

*&      Form  DISPLAY_DTP_SELECTIONS

*&---------------------------------------------------------------------*

FORM display_dtp_selections .

  TYPES: BEGIN OF ty_dtp_output,

  dtp TYPE rsbkdtp-dtp,

  objvers TYPE rsbkdtp-objvers,

  source TYPE rsbkdtp-src,

  target TYPE rsbkdtp-tgt,

  line TYPE rsaabap-line,

  END OF ty_dtp_output.

  DATA: l_r_rsbk_dtp TYPE REF TO cl_rsbk_dtp.

  DATA: l_r_rsbc_filter TYPE REF TO cl_rsbc_filter.

  DATA: lt_dtprule TYPE mch_t_sourcecode.

  DATA: ls_dtprule TYPE mch_s_sourcecode.

  DATA: lt_dtps TYPE TABLE OF rsbkdtp.

  DATA: ls_dtp TYPE rsbkdtp.

  DATA: lt_dtp_out TYPE TABLE OF ty_dtp_output.

  DATA: ls_dtp_out TYPE ty_dtp_output.

  SELECT dtp objvers src tgt FROM rsbkdtp

  INTO CORRESPONDING FIELDS OF TABLE lt_dtps

  WHERE objvers = 'A'

  OR  objvers = 'M'.

  FORMAT COLOR COL_HEADING.

  WRITE: AT 1 'DTP Tech Name',

         AT 35 'Version',

         AT 45 'Source and Target',

         AT 80 'Field name',

         AT 100 'Line No'.

  FORMAT COLOR OFF.

  LOOP AT lt_dtps INTO ls_dtp.

    l_r_rsbk_dtp = cl_rsbk_dtp=>factory( ls_dtp-dtp ).

    l_r_rsbc_filter =

    l_r_rsbk_dtp->if_rsbk_dtp_display~get_obj_ref_filter(  ).

    lt_dtprule[] = l_r_rsbc_filter->n_t_dtprule[].

    LOOP AT lt_dtprule INTO ls_dtprule.

      IF ls_dtprule-line CP objname.

        ls_dtp_out-dtp = ls_dtp-dtp.

        ls_dtp_out-objvers = ls_dtp-objvers.

        ls_dtp_out-target = ls_dtp-tgt.

        ls_dtp_out-source = ls_dtp-src.

        CONCATENATE ls_dtp-src '->' ls_dtp-tgt INTO ls_dtp_out-line.

        NEW-LINE.

        WRITE: AT 1 ls_dtp-dtp, AT 35 ls_dtp-objvers,

        AT 45 ls_dtp-src(15),

        '->', ls_dtp-tgt(15),

        AT 80 ls_dtprule-field,

        AT 100 ls_dtprule-line_no.

      ENDIF.

    ENDLOOP.

  ENDLOOP.

ENDFORM.                    " DISPLAY_DTP_SELECTIONS

-----------------------------END OF PROGRAM LOGIC-------------------------------------

Related Content

Tables for Transformation Rules:

http://wiki.sdn.sap.com/wiki/display/BI/Transformation+tables

Program to Activate Transformation & DTP

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/d02513b2-7fb6-2c10-3a8b-887fc115d...

Where-Used list for function modules in BW transformations

http://wiki.sdn.sap.com/wiki/display/ABAP/Where-used+list+for+function+Modules+in+BW+Transformation

Copyright

© Copyright 2012 SAP AG. All rights reserved.

No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice.

Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors.

Microsoft, Windows, Excel, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation.

IBM, DB2, DB2 Universal Database, System i, System i5, System p, System p5, System x, System z, System z10, System z9, z10, z9, iSeries, pSeries, xSeries, zSeries, eServer, z/VM, z/OS, i5/OS, S/390, OS/390, OS/400, AS/400, S/390 Parallel Enterprise Server, PowerVM, Power Architecture, POWER6+, POWER6, POWER5+, POWER5, POWER, OpenPower, PowerPC, BatchPipes, BladeCenter, System Storage, GPFS, HACMP, RETAIN, DB2 Connect, RACF, Redbooks, OS/2, Parallel Sysplex, MVS/ESA, AIX, Intelligent Miner, WebSphere, Netfinity, Tivoli and Informix are trademarks or registered trademarks of IBM Corporation.

Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.

Adobe, the Adobe logo, Acrobat, PostScript, and Reader are either trademarks or registered trademarks of Adobe Systems Incorporated in the United States and/or other countries.

Oracle is a registered trademark of Oracle Corporation.

UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group.

Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc.

HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C®, World Wide Web Consortium, Massachusetts Institute of Technology.

Java is a registered trademark of Oracle Corporation.

JavaScript is a registered trademark of Oracle Corporation, used under license for technology invented and implemented by Netscape.

SAP, R/3, SAP NetWeaver, Duet, PartnerEdge, ByDesign, SAP Business ByDesign, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and other countries.

Business Objects and the Business Objects logo, BusinessObjects, Crystal Reports, Crystal Decisions, Web Intelligence, Xcelsius, and other Business Objects products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of Business Objects S.A. in the United States and in other countries. Business Objects is an SAP company.

All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary.

These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.

5 Comments
Labels in this area