cancel
Showing results for 
Search instead for 
Did you mean: 

Transform DSO to InfoCube - Best Practice

Former Member
0 Kudos

Hi Expert,

I'm new to SAP BW and now is the using version 7.3

I would like to learn the proper way to make use of the DSO to create InfoCube

Below is a case :

Two transactional database tables from the Source System

Table : sales_hdr        (Sales Order Header)

Order No                    (Primary Key)

Customer ID

Order Date

Sales office

Table : sales_dtl        (Sales Order Detail)

Order No                  (Primary Key)

Order line No            (Primary Key)

Item code

Qty

price

Two tables can be joined by the field order no

In this case, should i create two DSOs (one for Sales order header, one for Sales order detail with corresponding infopackage and DTP)

and then joining the DSOs by using Infoset. Finally, create transformation between Infoset and InfoCube?

Or, there is any other standard or proper way to handle two transaction tables.

The required structure of  InfoCube:

Year

Month

Sales Office

Sales Amount     <- key figure with sum aggregate

Kindly, give me some basic knowledge. thanks a lot.

Best Regards,

Keith

Accepted Solutions (1)

Accepted Solutions (1)

RamanKorrapati
Active Contributor
0 Kudos

Hi keith,

Have you checked standard LO data sources(names - 2LIS_11_*) which are related to Sales applications.

check those data source, after that you can look for standard dso/info cube and whole data flow.

if standard dso/cube are not matched then think about custom targets creation.

coming to your question:

You can create view at SE11 by using two tables and create generic data source, load data into single dso and cube.

about Generic extraction, get help from the Google.

Thanks

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi Experts,

Thanks for the reply.

May i further clarify my question.

The source system is Non-SAP system, both sale_hdr and salr_dtl are sybase tables.

Is it necessary to create view to join these two tables inside sybase first and then create a datasource for that database view in BW

Alternatively, if i don't create a database view, so i need to create two data source and two DSOs? then how to join these two DSOs?

Appreciated for your help.

Best Regards,

Keith

anshu_lilhori
Active Contributor
0 Kudos

Hi,

It depends how you are planning to fetch the data from those tables.

May be you can use UD connect method to establish connection between the two servers.

Once it is done then you may create datasources on those table and then load the data separately into DSO's.

Based on your final requirement you may take a call--If you need information at order level and as this is common in both the tables then you can create Multiprovider on top of those DSO's.

Keeping performance factors in mind,Infoset should be avoided.

Regards,

AL

RamanKorrapati
Active Contributor
0 Kudos

Hi,

Am not familiar with your source system.

check with source team consultant, if possible create view and load data into single data target.

if not possible then you need to use two data sources and two targets as you said.

About UD connect to bw, help you can get from google, check for them.

if there is common key between two data sources then you can use multiprovider on top of those targets.

Thanks

former_member185132
Active Contributor
0 Kudos

Hi,

You could go with a design as follows

sales_hdr --> DSO1

sales_itm --> DSO2


Then, in BW, you create another DSO3, which contains all needed fields from DSO1 and DSO2. Create a transformation from DSO2 --> DSO3.


In this transformation, you can get the fields of DSO1 by making use of the transformation rule type "Read from DataStore". There are docs on SCN which explain this feature.


Then from DSO3 you can send the data into a cube (1-1 mappings in the transformation).


Regards,

Suhas

Former Member
0 Kudos

Thanks Suhas,

When using "Read from DataStore" to get the required fields from other DSOs.

In this case, transformation from DSO2 -> DSO3,     DSO1-> DSO3  by using Read from DataStore,

Is the primary the primary key of DSO1 already indexed?

For the complex transformation eg the max or min of DSO1 , is it using routine and writing ABAP?

Your help is much appreicated.

Best Regards,

Keith

former_member185132
Active Contributor
0 Kudos

Hi,

You should not have a transformation from DSO1 --> DSO3. What you should do is this

  1. Create the transformation from DSO2-->DSO3
  2. For the fields that you need to get from DSO1, in the above transformation, map the fields and use "Read from DataStore".

Yes, primary key of DSO1 is automatically indexed. And for getting max/min of DSO1, you will need ABAP.

Regards,

Suhas

Former Member
0 Kudos

Thanks Suhas

Former Member
0 Kudos

Sorry i didn't understand why your using infoset you can create transformation in between dso and cube right on top of that you can create multiprovider.

former_member199945
Active Contributor
0 Kudos

Two tables can be joined by the field order no : create view for these 2 tables based on order no in ECC/R/3 itself.


Create  Generic data source for that  in ECC .


Create Info cube for that data source fields & create Transformation b/w Data source & Info-cube you will get required structure as expected.