cancel
Showing results for 
Search instead for 
Did you mean: 

Is a CompositeProvider in the middle of a dataflow a good idea?

martin_chambers
Participant
0 Kudos

Consider this dataflow -

aDSO -> Transformation end routine with join with another aDSO --> aDSO

Instead of creating a join with two aDSOs in an end Routine, I would prefer to use a Composite Provider. The new dataflow would look like this.

aDSO

-> CompositeProvider -> aDSO

aDSO

Now the join is created by the Composite Provider and not in an end routine.

Questions:

Is this a good idea?

If so , why?

If not, why not?

Any help will be appreciated

Martin

former_member185071
Contributor
0 Kudos

Hi Martin

you can create two ADSO and combined it in a composite provider .

But only consideration is verify whether you have any cumulative keyfigures.

Composite Provider combining two ADSOs

Cheers

K M R

Accepted Solutions (0)

Answers (5)

Answers (5)

martin_chambers
Participant
0 Kudos

Hi Abhishek,

I don't know about preferred design. That's why I posted this question.

As far as I have heard, you can only do full data loads from a CompositeProvider. I haven't tried it myself yet.

SAP started with BW 7.4 SP8. Now BW 7.5 SP6 (=7.4 SP14) is available. I would expect the basic features to work. Not sure what happens when you try a semantically partitioned aDSO or an aDSO for planning.

Former Member
0 Kudos

Hello Martin/Donnie,

If you connect a composite provider to an aDSO but is it preferred design?How do you manage delta to the aDSO then?

Also I believe there wont be any performance lag if we use transformation and go with AMDP

Also I was told SAP is still trying to figure out fixes for all the existing issues with usage of aDSO! Am I misinformed?

Thanks

Abhishek Shanbhogue

martin_chambers
Participant
0 Kudos

Hi Donnie,

Thanks for your reply. Your short description is correct and much clearer than mine.

I still have a few questions.

I know that it is possible to connect a CompositeProvider to an aDSO using a transformation. But I have been advised against doing it without getting a clear reason why. Do you know what the disadvantages could be, except the Eclipse message you mentioned?

  • Could there be a performance issue? Is the data access slower for a join in a CompositeProvider than for a join defined in a transformation routine? Are there other reasons why it could be a bad idea?
  • I haven't come accross the term QueryProvider. Could you provide more Details?
donnie_burhan
Participant

Hi Martin,

Basically, the join and union on the CompositeProvider are executed on the Analytic/OLAP engine, so if you load the data using Transformation/DTP, the data may not come out correctly as intended.

QueryProvider is a BEx query which you can use as source of transformation. Because it's a BEx query, you can use it to make sure that the data coming from CompositeProvider will come correctly. You can set a BEx query as a QueryProvider by going to RSRT > Properties, then check the Query is used as InfoProvider.

There are several condition for this checkbox can be used, you can click the information button in the right side if it's disabled.

martin_chambers
Participant
0 Kudos

Hi Donnie

You can include 2 aDSOs as sources in a CompositeProvider and create a join between the aDSOs. This is what I tried to depict.

You can also connect a CompositeProvider as a source with a transformation to another aDSO as a target.

donnie_burhan
Participant
0 Kudos

So what you meant is:

CompositeProvider (aDSO join aDSO) => Transformation => aDSO

Yes, you can do this, but make sure that there's no message like below in the Eclipse, or the data will come out incorrectly.

Ambiguities cannot be resolved without the analytic engine

If you have this, then you need to use a QueryProvider build on top of the CompositeProvider to feed the data to the aDSO.

donnie_burhan
Participant
0 Kudos

Hi Martin,

I don't quite understand your data flow.

aDSO

-> CompositeProvider -> aDSO

aDSO

I understand that (-> CompositeProvider -> aDSO) is located on the BW Modelling, but how do you place it between 2 aDSO?

I'm not aware that you can read CompositeProvider data using ABAP, because there is no physical table to do a select.