cancel
Showing results for 
Search instead for 
Did you mean: 

How to filter Data package execution without prompt

former_member213043
Active Participant
0 Kudos

Dear Gurus,

I searched the forum but did not manage to find an answer...

Here is the scenario.

I want to run the retraction from BPC to ECC. The retraction is ran through a data package. I want the users to be able to select their version (CATEGORY) and the year to retract. So using the PROMPT function, I can achieve that.

BUT I want to "hard code"  a list of dimension values as the input for the data package. I don't want the user to choose for a selection file...

I did not find how to filter the data passed to a data package...

Is it possible without selection file ?

PY

Accepted Solutions (1)

Accepted Solutions (1)

former_member186338
Active Contributor
0 Kudos

Hi Pierre,

You use PROMPT to provide user selection of CATEGORY and TIME (Year). You have to fix other dimension members in other dimensions? Easy! Just fix them in the advanced DM package script.

Please show full advanced script you have and what you want to fix...

Vadim

former_member213043
Active Participant
0 Kudos

Hi Vadim

Do you mean somehting like that ?

PROMPT(SELECTIONINPUT,%SELECTION%,,,"%CATEGORY%,%TIME%")

INFO(%SUFFIX1%,DIMENSION:AUDITTRAIL|INPUT|)

INFO(%SUFFIX2%,DIMENSION:AUDITTRAIL|AUTO_CALC|)

INFO(%SUFFIX3%,DIMENSION:CURRENCY|LC|)

INFO(%BADINAME%,"POSTPRIMCOST")

INFO(%MEASURESLIST%,"SIGNEDDATA")

and then I replace the %SELECTION% in tasks by %SELECTION%%SUFFIX1%%SUFFIX2%SUFFIX3%


Is that correct ?



PY

former_member213043
Active Participant
0 Kudos

Hi Vadim

Is there a way to select on Attribute property of a dimension ?

I did not find any documentation on that

(http://help.sap.com/saphelp_bpc75_nw/helpdata/en/81/29f9eaa9864bd38f62081e53770fa9/content.htm?frame...)

PY

former_member186338
Active Contributor
0 Kudos

Not 100% correct, instead of:

INFO(%SUFFIX1%,DIMENSION:AUDITTRAIL|INPUT|)

INFO(%SUFFIX2%,DIMENSION:AUDITTRAIL|AUTO_CALC|)

use single:

INFO(%SUFFIX1%,DIMENSION:AUDITTRAIL|INPUT,AUTO_CALC|)

with multiple members separated by comma.

Vadim

former_member186338
Active Contributor
0 Kudos

Not clear, please explain in details!

Vadim

former_member213043
Active Participant
0 Kudos

Hi Vadim

The context is for the retraction.

We call the retraction badi from the DM. Some cost elements have been used for input in BPC with cost centers as a CO object. But in ECC, those cost elements are only allowed for budget with activities. So, ECC rejects that.

Thus, I wanted to exclude those cost elements from the retraction. We added a property to the account dimension, to select the accounts we want to retract. We would like to use that property as a filter (as you could do in BI-IP using the navigational attribute)...but it looks like it is not possible from there...

My understanding is that we need to find another approach. I can filter in the retraction badi with abap code, but it is not very convenient...

Any other idea ?

PY

former_member186338
Active Contributor
0 Kudos

Can you provide full info about your DM package - at least full advanced script...

Vadim

former_member200327
Active Contributor
0 Kudos

Hi PY,

Can you try filter on the left hand side of selection pop-up by clicking the funnel icon? You'll have to name and save that filter. Then check in the log file how it's passed and try mimicking it in your dynamic script.

Regards,

Gersh

former_member213043
Active Participant
0 Kudos

Hi Vadim

I really appreciate your effort to help! Thanks a lot

Here is the content of my DM advanced script

PY

former_member186338
Active Contributor
0 Kudos

First I don't see you corrected script according to

Second - please explain the functionality of your retraction badi! How it works with %SELECTION%?

Vadim

former_member213043
Active Participant
0 Kudos

Hi Vadim

Actually, I made your modifications and it works

The purpose of the retraction is to send the result of the planning data from BPC to ERP using BAPIs

So in BPC (BW layer), we call a BADI for retraction and in that BADI we call the BAPI.The input if the BAPI is to be the data from BPC (a little bit transformed to fit ECC master data...)

So to select the data from BPC, I would like to be able to filter not on O_ACCOUNT dimension (for example), but on a property of O_ACCOUNT (for example the property name could be ECC_PLANNING and the possible values "X" or empty). I would select for example all the accounts for which the ECC_PLANNING property is equal to X. Using that way I can ensure to send to ECC only the data that can fit in...if it fails, it is the user's responsibility to maintain its master data correctly in BPC (using BPC you get the right to maintain master data...so it is not free, you have to be careful 😉 )

The %SELECTION% will include the list of members for the dimensions users can filter. It will then be passed to the data selector to retrieve the data from the cube

Hope it is clearer..

Thanks

PY

former_member213043
Active Participant
0 Kudos

Hi Gersh

I will try...

Do you know where I can get the log from ?  I am not very famliar with the BPC logs ..yet 😉

PY

former_member200327
Active Contributor
0 Kudos

Hi PY,

to find DM Package log you can go t/a UJFS and select your Env name then execute. Expand tree to webfolders -> <env name> -> <model> -> privatepublications -> <user ID> -> tempfiles. There you can find logs of all your runs. Download it.

Regards,

Gersh

former_member213043
Active Participant
0 Kudos

Hi Gersh

Thanks! Actually that log is also accessible throuhg the excel interface when you look at the log status...and I will be unable to "mimick" as the selection is then hard coded...I mean that when you filter through a property, it creates a file with all the dimension members in it...at the time you did the selection...So, if you add any new account or you change the value of the property for some accounts, the selection is not re-evaluated...We are still far from BI-IP features...but from and enduser point of view, they have the flexibility...

Nevertheless, thanks the help

PY

former_member186338
Active Contributor
0 Kudos

"when you filter through a property, it creates a file with all the dimension members in it...at the time you did the selection" - yes!

Another option is to use custom logic badi to perform retraction... In this case you can use script logic before badi call to scope properly some dimensions...

Vadim

former_member213043
Active Participant
0 Kudos

Yes, I agree with you...but SAP provided a default BADI retraction that I used...I will look into a way to leverage that and the custom badi logic...

спасибо за все

PY

former_member186338
Active Contributor
0 Kudos

former_member200327
Active Contributor
0 Kudos

Hi PY,

I probably didn't explain properly which filter I'm talking about.

Can you please try this filter?

Regards,

Gersh

former_member213043
Active Participant
0 Kudos

Hi Gersh,

that's the one I tried.

But when you save it, it evaluates the condition at that time...I saved the selection file and when I opened it I saw the exact list of the current accounts filling my condition...but it will not be re-evaluated after...

So I will certainly have to look into the script logic in the admin tool...

PY

former_member186338
Active Contributor
0 Kudos

I remember the same filter behavior...

Vadim

former_member200327
Active Contributor
0 Kudos

Hi PY,

As you can see it doesn't store list of members - just Property value. So, next time you choose same saved filter it evaluets members and will add/remove members from the list if you changed that property in some members.

Did you see a list of members on the right hand side or just filter condition?

Regards,

Gersh

former_member213043
Active Participant
0 Kudos

Hi Gersh,

Got it!! Actually I did not save the filter...

I just executed it and add to the selection...

Now,  I saved it and in the log I got another string with the call to the filter:

DIMENSION:O_ACCOUNT|[Filter:nameofthefilter]

It looks like it works, but now I am wondering how it can be transported and validated...

Really THANKS A LOT!!!

PY

former_member200327
Active Contributor
0 Kudos

Hi PY,

Ok, this is a good first step:).

Transport is a little tricky with this kind of filter because it's user dependent. So, it depends if you want scheduling that package or run on demand. If you want to schedule it, do you know under what user ID it will run?

Regarding validation I'm not sure I understood your question. Do you mean how to validate if it re-evaluets members or not? I think i described that in my previous post. If some other validation can you please elaborate?

Regards,

Gersh

former_member213043
Active Participant
0 Kudos

Hi Gersh

Regarding validation, I will need to change some values and ensure the filter is re-evaluated...It is more a test 😉

Regarding transports, I have to discuss that with the client...

PY

former_member200327
Active Contributor
0 Kudos

Hi PY,

To test you can take any Package, like Copy, set this kind of filter and check which members it copied; then change Property value on one of the members to exclude it and on another to include it; then run it again and check if correct members are copied.

It worked for my customer, hope it works for you as well.

Regards,

Gersh

former_member186338
Active Contributor
0 Kudos

Hi Gersh,

Very interesting knowledge! I managed to test it with simple Clear package. Just created filter based on single property of PERIODS dimension (type - T). Filter name - NODY.

The advanced script of the DM package is (no prompts, filter hardcoded):

INFO(%SELECTION_KEYDATE%,)

TASK(/CPMB/CLEAR_CUBE,CHECKLCK,0)

TASK(/CPMB/CLEAR_CUBE,SELECTION,SELECTION,@@@SAVE@@@@@@EXPAND@@@|DIMENSION:PERIODS|[FILTER:NODY]|)

TASK(/CPMB/CLEAR_CUBE,DUMPLOADMODE,3)

TASK(/CPMB/CLEAR_CUBE,KEYDATE,%SELECTION_KEYDATE%)

TASK(/CPMB/CLEAR_COMMENTS_FOR_CLEAR,SELECTION,@@@SAVE@@@@@@EXPAND@@@|DIMENSION:PERIODS|[FILTER:NODY]|)

TASK(/CPMB/CLEAR_COMMENTS_FOR_CLEAR,ENABLETASK,1)

TASK(/CPMB/CLEAR_COMMENTS_FOR_CLEAR,CHECKLCK,0)

TASK(/CPMB/CLEAR_COMMENTS_FOR_CLEAR,CHECKJOUR,0)

And it's working fine!

If I change the property of some PERIODS member to satisfy the filter criteria - then it will be cleared!

Vadim

P.S. In general, the filter can be complex

Former Member
0 Kudos

Hi Vadim,

In your example, you created a filter "NODY" in EPM member selector. How can we find the filter name file in the T_Code UJFS or somewhere?

DH

former_member186338
Active Contributor
0 Kudos

Hi DH,

Please open a new discussion!

Vadim

P.S. And explain what for you want to find filter name in UJFS or... Strange idea...

Answers (1)

Answers (1)

Shrikant_Jadhav
Active Contributor
0 Kudos

Hi,

If my understanding is correct you don't want to pass any value from data manager package and values are fixed want to hard code , then simply hard code (ABAP /Script )it.


But it is strange requirement ...any specific need to hard code time ?


Shrikant