Skip to Content

Migrate BW on HANA to BODS on HANA using ODP Sources

Introduction : Scrap the BW system then pull the data using ODP concept to SAP BODS to HANA.

The delta queues used in SAP BODS systems are a new framework which enables multiple subscribers to replicate data from a set of queues of a provider. A queue serves as a pass-through data store for data changes.

The BW DataSources of a system are available as queues of the provider “BW DataSource” for subscribers of type “Search and Analysis” and “SAP Business Objects Data Services”. In parallel the same DataSources can be connected to a SAP BW and SAP BODS system via the old BW delta queues in RSA7

Subscribers can request a data snapshot (full or one-off request). This is supported by almost any BW DataSource and does not require a subscription.

Subscribers can request data changes (delta request). This requires creating a subscription first (delta initialization) and usually to transfer the initial data. Initial delta without data transfer. This is supported only by some BW DataSources, in one of the following two ways: The application pushes data into the delta queue.

The delta queue pulls data into the delta queue via an extractor as show below.

Delta and Historical load (Full load)

Use sap function sap_extractor_delta_initialize(‘DS_SAP_ECC’,’0FI_GL_14’, $G_EXT) for Init without data transfer mechanism.

Monitor the delta query’s in ODQMON  t.code while jobs trigged in the SAP BODS system.

Activate data sources to ODQ.

  • Use the standard program to expose the OLTP Sources (Datasources) /1BCDWB/DBROOSATTR
  • Provide the OLTPSource name and Expose_External as ‘X’ then execute the program

In case of any Obstruction to run the standard programs write Custom program for ODQ expose as specified below code.

REPORT YROOSATTR.
tables : ROOSATTR .
TYPES : BEGIN OF t_roosattr,
OLTPSOURCE type  ROOSOURCER,
EXPOSE_EXTERNAL   type ROFLAG,
end of t_roosattr .
data: it_roosattr type STANDARD TABLE OF t_roosattr,
it_roosattr1 type STANDARD TABLE OF t_roosattr,
wa_roosattr type t_roosattr,
wa_roosattr1 type t_roosattr,
oltp_sr type string VALUE ”,
oltp_sri type string value ”,
v_lines type i .
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
select-OPTIONS : S_OLTpsr  for roosattr-OLTPSOURCE  ,
so_expf  for roosattr-EXPOSE_EXTERNAL .
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION .

LOOP AT s_oltpsr where option = ‘EQ’ and sign =’I’.
READ TABLE so_expf with key option = ‘EQ’
sign =’I’ .
wa_roosattr-OLTPSOURCE = S_oltpsr-low .
wa_roosattr-EXPOSE_EXTERNAL = so_expf-low .
insert wa_roosattr INTO TABLE it_roosattr .
UPDATE roosattr from wa_roosattr .
IF sy-subrc eq 0.
CONCATENATE oltp_sr ‘,’ wa_roosattr-oltpsource into oltp_sr .
else .
insert into roosattr VALUES wa_roosattr .
IF sy-subrc eq 0.
CONCATENATE oltp_sri ‘,’ wa_roosattr-oltpsource into oltp_sri .
endif.
ENDIF.
COMMIT work.
clear wa_roosattr .
ENDLOOP.

if oltp_sr ne space .
skip 2.
write: ‘Updated’ , oltp_sr , ‘Succesfully’ .
endif.
if oltp_sri ne space .
skip 2.
write: ‘Inserted’ , oltp_sri , ‘Succesfully’ .
endif.
IF  oltp_sr eq space and oltp_sri eq space .
skip 2 .
write: ‘Nothing is Updated/Inserted’ .
ENDIF.

Go to se11 T.code run table “ROOSOURCE” check your data source extractor is expose to external system.

Data source is visible in the table, then it indicates your extractor is ready for extraction.

Extract data sources from SAP ECC to BODS system:

Create New Datastore for SAP_ECC system, provide Datastore type and Database Server Name. Provide server credentials to login.

After connection import the ODP objects to BODS system.

Imported the ODP objects to

Data filter/restriction need to maintain in ODP Object level, it improves performance while data loads.

Create DELTA extractor and FULL extractor in data flows

Write the script before start dataflow, for run different loads depend upon time.

Print(‘Fisper Start_Date: {$G_FISCPER_ST}’);

Print(‘Fisper Start_Date: {$G_FISCPER_EN}’);

PRINT(‘GV_FI_ST_DT————-{$GV_FI_ST_DT}’);

if ($v_from_dtm <=  $G_NULL_DT)

begin

$G_L_0FI_GL_14_DELTA=’Yes’;

sap_extractor_delta_initialize(‘DS_SAP_ECC’,’0FI_GL_14′, $G_EXT);

print( $G_EXT);

print (‘Running Data flow for INIT WITHOUT DATA Transfer’);

$v_run_type = ‘W’;

end

else

begin

$G_L_0FI_GL_14_INIT = ‘No’;

print (‘Running Data flow for DELTA Load’);

end

Source as ODP object, query and Target design in Dataflow.

Source ODP object design two separate flows one is Delta and another for Full/Historical load .

In target Auto correct load must be YES, because of Delta loads.

BW logic implemented in the next new Job/new Data flow.

To report this post you need to login first.

Be the first to leave a comment

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

Leave a Reply