Skip to Content
0

Data Manager Prompt Multiple SELECT in one window with assigning multiple variables

Nov 22, 2016 at 08:20 AM

361

avatar image
Former Member

Hello, colleagues!
We have a data package with 3 SELECT prompts as we need to pass 3 selected values via variables to script logic. As a result we have 3 seperated Selection window. The last DM window where u should check selection, select when to run a package and press "Finish" only displays selected member from the last selection window.
Users wants us to display here all 3 selected members of dimensions. Is it possible anyhow? Maybe any workaround?


I've been thinking about several ideas:
Use prompt MESSAGE and fill it with variables with values of choosen dimension members, but variables in MESSAGE doesn't work as i tried.

Edit last window displayed members - can't find anywhere information about possibility of that.
Use 1 prompt SELECT with multiple select of 3 dimension members, but each one selection should go to it's own variable - can't find right syntax how to assigh several variables to several selections in one prompt SELECT.
Thanks in advance for any help!

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

6 Answers

Best Answer
Vadim Kalinin Nov 22, 2016 at 09:58 AM
2

You are doing something strange...

The correct scripts are:

PROMPT(SELECT,%SELECTION%,,"Selection 1,2,3","%ENTITY_DIM%,%TIME_DIM%,%CATEGORY_DIM%")
PROMPT(KEYDATE,%KEYDATE%,"Key date",0)
INFO(%EQU%,=)
INFO(%TAB%,;)
INFO(%DO_CALC%,ON)
INFO(%COMP1%,2)
TASK(ZBRP_ALLOCATION_LOGIC_21,TAB,%TAB%)
TASK(ZBRP_ALLOCATION_LOGIC_21,EQU,%EQU%)
TASK(ZBRP_ALLOCATION_LOGIC_21,SUSER,%USER%)
TASK(ZBRP_ALLOCATION_LOGIC_21,SAPPSET,%APPSET%)
TASK(ZBRP_ALLOCATION_LOGIC_21,SAPP,%APP%)
TASK(ZBRP_ALLOCATION_LOGIC_21,SELECTION,%SELECTION%)
TASK(ZBRP_ALLOCATION_LOGIC_21,REPLACEPARAM,DO_CALC%EQU%%DO_CALC%%TAB%COMP%EQU%%COMP1%)

TASK(ZBRP_ALLOCATION_LOGIC_21,LOGICFILENAME,LOGIC.LGF)


*SELECT(%V1%, YEAR, TIME, ID = %TIME_SET%)
*SELECT(%V2%, ID, TIME, YEAR = %V1% AND CALC = N)
*SELECT(%V3%, ORG_LINK, CFR, ID = %CFR_SET%)
*XDIM_MEMBERSET TIME = %V2%
*XDIM_MEMBERSET ORGSTR = BAS(%V3%)
*XDIM_MEMBERSET CAT = %CAT_SET%
*START_BADI ZBRP_CALC
DO_CALC = $DO_CALC$ //why do you fix it in advanced script?
COMP = $COMP$ //why do you fix it in advanced script?

ORG = %4% /??? What do you mean by %4%?
QUERY = OFF
WRITE = ON
*END_BADI

Show 2 Share
10 |10000 characters needed characters left characters exceeded

P.S. Why do you use custom chain ZBRP_ALLOCATION_LOGIC_21?

Standard chain /CPMB/DEFAULT_FORMULAS will do the same...

Or /CPMB/ALLOCATION

1

Is it clear? Have you tested it?

0
Vadim Kalinin Nov 22, 2016 at 08:26 AM
0

Sorry, but ABSOLUTELY not clear!

Please provide DM advanced script text and prompts screenshots! Using screenshots explain what do you want to achieve!

Share
10 |10000 characters needed characters left characters exceeded
avatar image
Former Member Nov 22, 2016 at 08:56 AM
0

6.jpg(21.1 kB)

1.jpg(49.7 kB2.jpg(47.8 k3.jpg(49.4 kB)B))4.jpg(56.0 k5.jpg(59.6 kB)B)

Here it is. And on the last screenshot is what i want DM package to display me.


1.jpg (49.7 kB)
2.jpg (47.8 kB)
3.jpg (49.4 kB)
4.jpg (56.0 kB)
5.jpg (59.6 kB)
6.jpg (21.1 kB)
Share
10 |10000 characters needed characters left characters exceeded
Vadim Kalinin Nov 22, 2016 at 09:10 AM
0

Please - FULL DM advanced script! And script logic you want to call!

Why you need to use 3 variables?

P.S. It's not possible to solve you issue directly, but there is a workaround! But I need full info!

Show 1 Share
10 |10000 characters needed characters left characters exceeded

P.S. MESSAGE prompt is processed before other prompts :)

0
avatar image
Former Member Nov 22, 2016 at 09:41 AM
0

Because I need to pass 3 values to Script Logic to adjust scope

Advanced code:

  • PROMPT(SELECT,%CFRTO%,,"Selection 1","%ENTITY_DIM%")
  • PROMPT(SELECT,%TIMETO%,,"Selection 2","%TIME_DIM%")
  • PROMPT(SELECT,%CATTO%,,"Selection 3","%CATEGORY_DIM%")
  • PROMPT(KEYDATE,%KEYDATE%,"Key date",0)
  • PROMPT(MESSAGE,"")
  • INFO(%EQU%,=)
  • INFO(%TAB%,;)
  • INFO(%PREFIX%,@@@SAVE@@@@@@EXPAND@@@|X|)
  • INFO(%SUFFIX%,|)
  • INFO(%DO_CALC%,ON)
  • INFO(%COMP1%,2)
  • INFO(%SRC_CAT%,)
  • TASK(ZBRP_ALLOCATION_LOGIC_21,TAB,%TAB%)
  • TASK(ZBRP_ALLOCATION_LOGIC_21,EQU,%EQU%)
  • TASK(ZBRP_ALLOCATION_LOGIC_21,SUSER,%USER%)
  • TASK(ZBRP_ALLOCATION_LOGIC_21,SAPPSET,%APPSET%)
  • TASK(ZBRP_ALLOCATION_LOGIC_21,SAPP,%APP%)
  • TASK(ZBRP_ALLOCATION_LOGIC_21,MEMBERSELECTION,DO_CALC%EQU%%PREFIX%%DO_CALC%%SUFFIX%%TAB%COMP%EQU%%PREFIX%%COMP1%%SUFFIX%%TAB%CFRTO%EQU%%CFRTO%%TAB%TIMETO%EQU%%TIMETO%%TAB%CATTO%EQU%%CATTO%)
  • TASK(ZBRP_ALLOCATION_LOGIC_21,LOGICFILENAME,LOGIC.LGF)

    LOGIC.LGF:
  • *SELECT(%V1%, YEAR, TIME, ID = $TIMETO$)
  • *SELECT(%V2%, ID, TIME, YEAR = %V1% AND CALC = N)
  • *SELECT(%V3%, ORG_LINK, CFR, ID = $CFRTO$)
  • *XDIM_MEMBERSET TIME = %V2%
  • *XDIM_MEMBERSET ORGSTR = BAS(%V3%)
  • *XDIM_MEMBERSET CAT = $CATTO$
  • *START_BADI ZBRP_CALC
  • DO_CALC = $DO_CALC$
  • COMP = $COMP$
  • ORG = %4%
  • QUERY = OFF
  • WRITE = ON
  • *END_BADI
Share
10 |10000 characters needed characters left characters exceeded
avatar image
Former Member Nov 25, 2016 at 01:00 PM
0

Vadim, thanks for your help!

We use custom chains as we need to run step by step several tasks (more than 20) with different value of parameter COMP. The values of COMP1,2,3... stored in INFO instructions and are called in different tasks. That's why we fix it in advanced code.

The code i provided you with is just a representative part of big code, which we have. I did it not to overload topic with lots of unnecessary code.

About your another questions:

DO_CALC = $DO_CALC$ //why do you fix it in advanced script?

-I either don't know why it is fixed here as this code wasn't written by me

ORG = %4% /??? What do you mean by %4%?

- It is just missprint, the value should be %V3%

As I understand direct changes in "summary window" is impossible. Yes, your advise works, but i have situation where there are both

SELECT and COPYMOVE or SELECT,SELECTINPUT and COPYMOVE prompts in one package. What workaround is possible here?
Example:
PROMPT(SELECT,%ENTTO%,,"text","%ENTITY_DIM%")

PROMPT(COPYMOVE,%TIMEFROM%,%TIMETO%,"text","%TIME_DIM%")

PROMPT(COPYMOVE,%CATFROM%,%CATTO%,"text","%CATEGORY_DIM%")


Vadim, can u please advise where i can find detailed information about "TASK([taskname],[PropertyName],[PropertyValue])" construction? I have read help.sap.com and tried to google more info but still have a lot of questions. I'm interested in detailed desription of acceptable [PropertyValue] such as REPLACEPARAM,MEMBERSELECTION etc. and rules of filling in this values (for example - why we use @@@SAVE@@@@@@EXPAND@@@|X|).

Thanks in advance!


Show 3 Share
10 |10000 characters needed characters left characters exceeded

Sorry, I have no time to write multi page explanation here (like online training)! I will answer only separate questions with FULL info provided (and if possible without typo mistakes).

P.S. There is no single place of information you want, use Google, SAP help, SAP notes and ask here specific questions.

0
Former Member
Vadim Kalinin

Thank you, Vadim.
Here is an example of package with SELECT and COPYMOVE construction. Is it possible somehow to display all parameteres choosen by user in "summary" window of DM package?

Advanced script:


PROMPT(SELECT,%ENTTO%,,"TEXT","%ENTITY_DIM%")
PROMPT(COPYMOVE,%TIMEFROM%,%TIMETO%,"TEXT","%TIME_DIM%")
PROMPT(COPYMOVE,%CATFROM%,%CATTO%,"TEXT","%CATEGORY_DIM%")
PROMPT(KEYDATE,%KEYDATE%,"Key date",0)

INFO(%EQU%,=)
INFO(%TAB%,;)
INFO(%PREFIX%,@@@SAVE@@@@@@EXPAND@@@|X|)
INFO(%SUFFIX%,|)

TASK(ZBRP_ALLOCATION_LOGIC,TAB,%TAB%)
TASK(ZBRP_ALLOCATION_LOGIC,EQU,%EQU%)
TASK(ZBRP_ALLOCATION_LOGIC,SUSER,%USER%)
TASK(ZBRP_ALLOCATION_LOGIC,SAPPSET,%APPSET%)
TASK(ZBRP_ALLOCATION_LOGIC,SAPP,%APP%)
TASK(ZBRP_ALLOCATION_LOGIC,MEMBERSELECTION,CFRTO%EQU%%CFRTO%%TAB%TIMEFROM%EQU%%TIMEFROM%%TAB%TIMETO%EQU%%TIMETO%%TAB%CATFROM%EQU%%CATFROM%%TAB%CATTO%EQU%%CATTO%)
TASK(ZBRP_ALLOCATION_LOGIC,LOGICFILENAME,LOGIC.LGF)


LOGIC.LGF:

*SELECT(%V_YEARFROM%, YEAR, TIME, ID = $TIMEFROM$)
*SELECT(%V_YEARTO%, YEAR, TIME, ID = $TIMETO$)
*SELECT(%V_PERIODS%, ID, TIME, YEAR = %V_YEARTO% AND CALC = N)

//target cleaning
*XDIM_MEMBERSET TIME = %V_PERIODS%
*XDIM_MEMBERSET CFR = $CFRTO$
*XDIM_MEMBERSET CAT = $CATTO$

*WHEN CFR
*IS *
*REC(FACTOR = 0)
*ENDWHEN

*SELECT(%V_ORG%, ORG, CFR, ID = $CFRTO$)

*XDIM_MEMBERSET TIME = %V_PERIODS%
*XDIM_MEMBERSET ORGSTR = BAS(%V_ORG%)
*XDIM_MEMBERSET CAT = $CATTO$
*XDIM_MEMBERSET CFR = $CFRTO$
*XDIM_MEMBERSET BRPACC = BAS(T_OT12_ALL)

*START_BADI ZBRP_CALC
DO_CALC = ON
COMP = 100
ORG = %V_ORG%
SRC_YEAR = %V_YEARFROM%
SRC_CAT = $CATFROM$
QUERY = OFF
WRITE = ON
*END_BADI

0

In this particular case - not possible! If you want some workaround - please open a new discussion!

P.S.

Lines:

INFO(%PREFIX%,@@@SAVE@@@@@@EXPAND@@@|X|)
INFO(%SUFFIX%,|)

Are absolutely useless in this script!

0