on 05-19-2011 10:00 AM
Hi Experts,
I have a general modeling question: how can I join data without using an InfoSet?
This is the following case:
DataSource 1:
- Business Partner ID
- Business Partner Function
- Ticket ID
DataSource 2:
- Transport Request ID
- Transport Request System
- Transport Request Client
- Ticket ID
DataSource 3:
- Transport Request ID
- Transported Object Name
- Ticket ID
The final report should give information on
- How many transported objects (counter by Transported Object Name)
- per Transport Request
- per Business Partner (Business Partner ID in a certain Busines Partner Function)
- per Transport Request System/Client
So my problem is: how can I model the subsequent data model? Since the DataSources are that heterogenous a InfoCube will not help as well as several InfoCubes within a MultiProvider does also not fulfill the requirements. As far as I can see the only way would be an InfoSet but this is rather slow.
Any suggestions?
Many thanks in advance!
Cheers
Tobias
Hi,
Is Business partner ID someone who raises the ticket? In that case i guess only one person could raise a ticket. If so the solution i gave above should work.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Tobias,
I assume that there is 1:1 relation between ticket id and transport request id (one transport request per ticket) and between ticket id and business partner id. One record exists for a ticket id for datasource1 and datasource2.
DSO1
Key - Ticket ID
Load datasource1 and datasource2 to DSO1.
Cube
Load datasource3 to the cube. Lookup DSO1 by Ticket ID and populate Business Partner ID, Business Partner Function, Transport Request System and Transport Request Client.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Load all 3 in separate DSOs.
Create a infoset on D1 and D3, inner join linking Ticket ID.
You may load this Infoset into a Cube. Add 'Counter' ( = Constant 1) in the Cube. Report on this cube.
For D3, you have 2 options, either make Transport ID as Master Data or lookup D2 when loading from infoset to cube.
On flip side, Infoset load does not support delta. Always full. So u need to do a Delete and Full.
On shine side, reporting on infoset is slow.
Hi,
You can try the following :-
Load from DS 2 and DS 3 into a DSO1 :-
The key fields for this would be Transport Request ID and Ticket ID. Transport Request System, Transport Request Client, Transported Object Name will be the data field. And tehn Load the data into a cube for ease in reporting.
For the DS1 :-
Make it a master data. With Ticket ID as the key and Business Partner ID, Business Partner Function as the navigational attribute.
Then create a multiprovider and report on top of that. The multiprovider will have the Both the cube and the Master data.
Best Regards,
Rahul
Hi Tobias ,
If your ticket id is unique then you can load all data into a single cube via three TRFN from all 3 data sources .Cube will have alll fields :
- Ticket ID
- Business Partner ID
- Business Partner Function
- Transport Request ID
- Transport Request System
- Transport Request Client
- Transported Object Name
and then to populate transport object name for particular transport request ID you can write routine and read from DSO table and populate Transported Object Name.
Sample end routine code for that :
data: it_temp type standard table of <tech name of DSO table> ,
wa_temp type <tech name of DSO table>.
SELECT * FROM <tech name of DSO table> INTO TABLE it_temp
FOR ALL ENTRIES IN RESULT_PACKAGE.
SORT it_temp BY Request_ID Object_Name ASCENDING.
DELETE ADJACENT DUPLICATES FROM it_temp COMPARING Request_ID Object_Name .
LOOP AT RESULT_PACKAGE ASSIGNING <result_fields>.
READ TABLE it_temp INTO wa_temp WITH KEY Request_ID = <result_fields>-Request_ID
BINARY SEARCH.
IF sy-subrc = 0.
<result_fields>-Object_Name = wa_temp-Object_Name.
CLEAR wa_temp.
ENDIF.
ENDLOOP.
Hope this will be helpful .
Regards,
Jaya
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
86 | |
10 | |
10 | |
9 | |
6 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.