Thursday, August 26, 2010

BI 7.0 New Features - Transformation - Object oriented ABAP


 tips and tricks in writing the BW Transformation program. thought of sharing them with the community:
For quick migration of transfer or update rules you can use auto migration ;  right click transfer or update rules and select Additional Function>Create Transformation. All routines will be migrated automatically to the new OO ABAP.
In BI 7.0 environment, transformation (formerly called Update/Transfer rules) requires object oriented ABAP and here are some difference worth noting down between Object oriented ABAP and ABAP which would help you in working with BI 7.0.
 
                BI 3.5

                BI 7.0

Internal Table

DATA: BEGIN OF INT_EBELN OCCURS 0,
 OI_EBELN   LIKE /BI0/POI_EBELN-OI_EBELN,
/BIC/ZMEXPDGRP  LIKE /BI0/POI_EBELN-/BIC/ZMEXPDGRP,
/BIC/ZMPOVERNO  LIKE /BI0/POI_EBELN-/BIC/ZMPOVERNO,
/BIC/ZMPURSTAT  LIKE /BI0/POI_EBELN-/BIC/ZMPURSTAT,
/BIC/ZMPORLSON  LIKE /BI0/POI_EBELN-/BIC/ZMPORLSON,
/BIC/ZMVALD_PO  LIKE /BI0/POI_EBELN-/BIC/ZMVALD_PO,
 END OF INT_EBELN.

It's 2 step process in BI 7.0. 1st step declare the structure and in 2nd step declare Internal table referring to the above structure
TYPES: BEGIN OF INT_EBELN_STRU,
       OI_EBELN   TYPE /BI0/POI_EBELN-OI_EBELN,
       /BIC/ZMEXPDGRP  TYPE /BI0/POI_EBELN-/BIC/ZMEXPDGRP,
       /BIC/ZMPOVERNO  TYPE /BI0/POI_EBELN-/BIC/ZMPOVERNO,
       /BIC/ZMPURSTAT  TYPE /BI0/POI_EBELN-/BIC/ZMPURSTAT,
       /BIC/ZMPORLSON  TYPE /BI0/POI_EBELN-/BIC/ZMPORLSON,
       /BIC/ZMVALD_PO  TYPE /BI0/POI_EBELN-/BIC/ZMVALD_PO,
        END OF INT_EBELN_STRU.
DATA: INT_EBELN TYPE TABLE OF INT_EBELN_STRU.

Reading data from Internal Table

READ TABLE INT_EBELN INTO WA_PO WITH KEY
    OI_EBELN = DATA_PACKAGE-OI_EBELN BINARY SEARCH.
    IF SY-SUBRC = 0.
DATA_PACKAGE-/BIC/ZMVALD_PO = WA_PO-/BIC/ZMVALD_PO.
DATA_PACKAGE-/BIC/ZMEXPDGRP = WA_PO-/BIC/ZMEXPDGRP.
DATA_PACKAGE-/BIC/ZMPORLSON = WA_PO-/BIC/ZMPORLSON.
DATA_PACKAGE-/BIC/ZMPURSTAT = WA_PO-/BIC/ZMPURSTAT.

1st define a Work area and read from there.
WA_PO LIKE LINE OF INT_EBELN  à Work Area
READ TABLE INT_EBELN INTO WA_PO WITH KEY
       OI_EBELN = WA_DATA_PACKAGE-OI_EBELN BINARY SEARCH.
      IF SY-SUBRC = 0.
WA_DATA_PACKAGE-/BIC/ZMVALD_PO = WA_PO-/BIC/ZMVALD_PO.
WA_DATA_PACKAGE-/BIC/ZMEXPDGRP = WA_PO-/BIC/ZMEXPDGRP.
WA_DATA_PACKAGE-/BIC/ZMPORLSON = WA_PO-/BIC/ZMPORLSON.
WA_DATA_PACKAGE-/BIC/ZMPURSTAT = WA_PO-/BIC/ZMPURSTAT.

Data Package
 
Data: DATA_PACKAGE type table of _ty_s_SC_1,
      WA_DATA_PACKAGE LIKE LINE OF DATA_PACKAGE.

Loop  Statement

LOOP AT DATA_PACKAGE.

LOOP AT DATA_PACKAGE INTO WA_DATA_PACKAGE
Some points for consideration
1)      We need to familiarize ourselves with transformation as well as DTP and the integration of both in the process chain.  These are dependent once we perform data loads in production.
2)      Check the validity of the routines generated from the auto transformation. You may also want to improve the existing routines or the overall transformation flow as well.
3)      To debug a transformation routines you can use DTP (Tab: Execute >processing mode> serially in the Dialog Process (for debugging). 
 And Finally, Below is a very useful link from SAP BI help library which describes in a step-by-step how to migrate your data flow to the new concept (transformations and DTP's):


2 comments: