cancel
Showing results for 
Search instead for 
Did you mean: 

Read data from buffer in IP

Former Member
0 Kudos

Hi.

I tried to search about this topic, but did not find something practical.

I want to read data from planning buffer in IP.

I want to create custom planning function that will read this data.

I tried to use next classes:

CL_RSPLS_DELTA_BUFFER Delta Buffer

CL_RSPLS_DELTA_BUFFER_A Delta Buffer for an Aggregation Level

CL_RSPLS_DELTA_BUFFER_AM Virtual Delta Buffer for (Multi-) AGGRLEVEL

CL_RSPLS_DELTA_BUFFER_B Concrete BASIC Delta Buffer

But without success.

Can anybody guide me set by step how to do it ?

My business scenario is: user enters new line in WEB layout and before save I want to check whether this line already exist in cube (this was standart functionality in BPS, but not in IP). So I need read this line from buffer and retrive data from cube with characteristic values of buffer (retrival part I know how to do).

Thanks.

Regards.

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

I know the answer to this let me know if you still need it....

former_member210674
Participant
0 Kudos

Hi Andrey,

The other option (may be difficult) is creating a flag characteristic ZCKLINE and differentiate the new line(N) entered and existing lines(O). The SAVE button should save folowed by code which will check the lines of N and O, if line of N is not already present in Lines of O then it should change the Flag from N to O and gives success message. If already exisits then the selective deletion Function Module (FM) executes to delete Line with ZCKLINE = N and throw error message.

Regards,

Gopi R

Former Member
0 Kudos

Unfortunately my idea does not work.

If I enter line which exists in cube so in buffer this line becomes agregated line with old line (only KF value changes but also in buffer there is one line instead of 2 lines).

I'm very confused with the issue ...

Former Member
0 Kudos

Please use Charateristic relationship to allow only valid entries to be posted to the Cube...

former_member198992
Participant
0 Kudos

Hi Andrey,

Other option is keyfigure validation between user saving data and cube data . And then throw an error message when user saves data. This way also user may not save data.

Hope it helps!

Regards

Veera Kommineni

Former Member
0 Kudos

Hi Andrey,

please check note 1101726 Changing the active filter of planning functions

It explain how the plan buffer can be read. But I think you are more interested in the delta buffer which is part of the plan buffer.

This is also explained in that note.

Regards Matthias

Former Member
0 Kudos

Thank you, Matthias, for your helpfull answer.

This note describes how to read buffer according to any selection and how to mark lines that been changed.

It may work but in my situation I have about 50 IP cubes and applications running in production system and make enhancement described in NOTE with derivation (enhance all cubes, add char relationship ...) will not be allowed for me.

I interested in delta buffer but this delta have to be in standart class (without char relationship).

Is it possible in any way ?

Regargs.

Former Member
0 Kudos

Thank you, Matthias, for your helpfull answer.

This note describes how to read buffer according to any selection and how to mark lines that been changed.

It may work but in my situation I have about 50 IP cubes and applications running in production system and make enhancement described in NOTE with derivation (enhance all cubes, add char relationship ...) will not be allowed for me.

I interested in delta buffer but this delta have to be in standart class (without char relationship).

Is it possible in any way ?

Regargs.

0 Kudos

Hi Andrey,

even with access to the delta buffer it would be hard (I think impossible) to implement a new lines check.

1. You would need the data the query has read, possibly by reading again the data the query has read (vial plan buffer access). This is in general not possible since the query has much more filtering featues compared to the plan buffer (e.g. restricted key figures).

2. You would need a delta buffer access (but this is not exposed via an 'external API'), but this is not enough since the delta buffer does not care whether a record is new or old. One does not know this in the delta buffer.

To implement a real new line check (only 'real' new lines are allowed) one needs the old result set; this is not even known to the OLAP since e.g. for drill-down only the needed data will be read, not the full grid the end user sees in the front end. In the 7.0 code line this information is simply not there.

With the new infrastructure shipped in 7.01, SP05 (cf. note 1358614) a kind of new lines check in the above sense would be relatively easy (for SAP) to implement. But one question is, what is a new line, think of zero suppression, conditions ? Should the system take records into account filtered out by the above featues ? Should a new line check by a query property ?

Regards,

Gregor

Former Member
0 Kudos

Hi.

Indeed you rised hard questions.

About my issue: in the meantime I has an idea (just workaround) and I want listen opinion about it.

As described in note above i create FM that reads full buffer at the moment.

This full buffer ALREADY CONTAINS new entered line + old lines.

So I will try to retrive existing data from cube according to buffer selection and compare lines between buffer and cube data.

In this scenario I think will be able to deside whether line is new line and if it is exist in cube.

Am I missing something harmfull in this scenario ?

Regards.