cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Check box in Dynamic script for package run selections BPC NW 10 NW

BalaValluru
Participant
0 Kudos
982

Hi Friends,

In package run selections for a Dimension instead of drop box needed check box to select the members in Dynamic script

Example Below Run package selection

More Details below: ENTITY DIMENSION

CHECK BOX: XYZ

CHECK BOX: ABC

CHECK BOX : 123

User want to select all three check boxes and run one time package.

Thanks, Kishore

Accepted Solutions (1)

Accepted Solutions (1)

former_member186338
Active Contributor

I can propose only not elegant scenario with RADIOBUTTON:

PROMPT(RADIOBUTTON,%E1%,"Select DE",DE,{"Yes, DE","No, Empty"},{"DE",""})
PROMPT(RADIOBUTTON,%E2%,"Select FR",FR,{"Yes, FR","No, Empty"},{"FR",""})
...

Each line will provide user an option to include or exclude some entity and the result will be stored in some line variable (E1, E2...).

All the mentioned variables have to be passed to the script lgf file with REPLACEPARAM:

INFO(%EQU%,=)
INFO(%TAB%,;)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,TAB,%TAB%)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,EQU,%EQU%)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,REPLACEPARAM,E1%EQU%%E1%%TAB%E2%EQU%%E2%)

LGF script:

*SELECT(%EN%,ID,ENTITY,ID=$E1$,$E2$)
*XDIM_MEMBERSET ENTITY=%EN%

ENTITY will be scoped based on user selection!

BalaValluru
Participant
0 Kudos

vadim.kalinin

Thanks for the code and tested working fine.

I have added one more prompt: Radio button line for other entity member and in REPLACPARAM line added for E3 Variable as given

(REPLACEPARAM,E1%EQU%%E1%%TAB%E2%EQU%%E2%%TAB%E3%EQU%%E3%%)--- This is not working and E3 is added in script .

(REPLACEPARAM,E1%EQU%%E1%%TAB%E2%EQU%%E2%%) --- This is working fine and package was success but i did not checked the data accuracy .

Please suggest if I continue with REPLACE PARAM Option 1. Should it work for E3 variable too.

Thanks

Kishore

former_member186338
Active Contributor

Please provide full text of your scripts!

BalaValluru
Participant
0 Kudos

vadim.kalinin

Please find below dynamic script

PROMPT(SELECT,,,,"%CATEGORY_DIM%,%TIME_DIM%,")	
PROMPT(RADIOBUTTON,%E1%,"Select ABC",ABC,{"Yes, ABC","No, Empty"},{"ABC",""})
PROMPT(RADIOBUTTON,%E2%,"Select XYZ",XYZ_VL,{"Yes, XYZ","No, Empty"},{"XYZ",""})
PROMPT(RADIOBUTTON,%E3%,"Select DEF",DEF,{"Yes, DEF","No, Empty"},{"DEF",""})
			
PROMPT(COMBOBOX,%COSTCENTER%,"SELECT COST CENTER",0,"",{"MNR"},)				
PROMPT(COMBOBOX,%COUNTRY%,"SELECT COUNTRY",0,"",{"US"},)				
INFO(%EQU%,=)				
INFO(%TAB%,;)				
TASK(/CPMB/FX_RESTATMENT_LOGIC,SUSER,%USER%)				
TASK(/CPMB/FX_RESTATMENT_LOGIC,SAPPSET,%APPSET%)				
TASK(/CPMB/FX_RESTATMENT_LOGIC,SAPP,%APP%)				
TASK(/CPMB/FX_RESTATMENT_LOGIC,SELECTION,%SELECTION%)				
TASK(/CPMB/FX_RESTATMENT_LOGIC,REPLACEPARAM,E1%EQU%%E1%%TAB%E2%EQU%%E2%%TAB%E3%EQU%%E3%%)
TASK(/CPMB/FX_RESTATMENT_LOGIC,LOGICFILENAME,TEST1.LGF)

former_member186338
Active Contributor
0 Kudos

You have to be accurate when you edit lines!

Not:

TASK(/CPMB/FX_RESTATMENT_LOGIC,REPLACEPARAM,E1%EQU%%E1%%TAB%E2%EQU%%E2%%TAB%E3%EQU%%E3%%)

But

TASK(/CPMB/FX_RESTATMENT_LOGIC,REPLACEPARAM,E1%EQU%%E1%%TAB%E2%EQU%%E2%%TAB%E3%EQU%%E3%)

Extra % at the end in your line!

Look on the syntax:

TASK(/CPMB/FX_RESTATMENT_LOGIC,REPLACEPARAM,
E1
%EQU%
%E1%
%TAB%
E2
%EQU%
%E2%
%TAB%
E3
%EQU%
%E3%
)
BalaValluru
Participant
0 Kudos

vadim.kalinin

I tried with this options also and package got failed ( invalid members)

TASK(/CPMB/FX_RESTATMENT_LOGIC,REPLACEPARAM,E1%EQU%%E1%%TAB%E2%EQU%%E2%%TAB%E3%EQU%%E3%)
former_member186338
Active Contributor
0 Kudos

OK, look on the following lines:

PROMPT(RADIOBUTTON,%E1%,"Select ABC",ABC,{"Yes, ABC","No, Empty"},{"ABC",""})
PROMPT(RADIOBUTTON,%E2%,"Select XYZ",XYZ_VL,{"Yes, XYZ","No, Empty"},{"XYZ",""})
PROMPT(RADIOBUTTON,%E3%,"Select DEF",DEF,{"Yes, DEF","No, Empty"},{"DEF",""})

Second line is incorrect: default value "XYZ_VL" do not match value here: {"XYZ",""}

First value here:

{"ABC",""}
{"XYZ",""}
{"DEF",""}

have to be a valid dimension member!

And this value have to be duplicated as default selection:

PROMPT(RADIOBUTTON,%VARIABLE%,"Label for both options",DEF_SELECTION,{"Label for Def selection","Label for empty selection"},{"DEF_SELECTION",""})

If you have issues - post DM formula log.

BalaValluru
Participant
0 Kudos

vadim.kalinin

Second line "XYZ_VL" its typo in editing from original script . I changed the members for security purpose.

Checked data accuracy also after package success by using below one I am getting results only for E1 and E2, E3 no results.

TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,REPLACEPARAM,E1%EQU%%E1%%TAB%E2%EQU%%E2%)

SL:

Thanks

Kishore V

former_member186338
Active Contributor

Sorry, but looks like you are constantly doing some typo mistakes. An due to the fact that you really think that it's not secure to show real member ID's I can't help you.

In my test case everything is working fine!

former_member186338
Active Contributor

Demonstration for 3 members:
Advanced script:

PROMPT(RADIOBUTTON,%E1%,"Select DE",DE,{"Yes, DE","No, Empty"},{"DE",""})
PROMPT(RADIOBUTTON,%E2%,"Select FR",FR,{"Yes, FR","No, Empty"},{"FR",""})
PROMPT(RADIOBUTTON,%E3%,"Select US",US,{"Yes, US","No, Empty"},{"US",""})
INFO(%EQU%,=)
INFO(%TAB%,;)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,TAB,%TAB%)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,EQU,%EQU%)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,REPLACEPARAM,E1%EQU%%E1%%TAB%E2%EQU%%E2%%TAB%E3%EQU%%E3%)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,SUSER,%USER%)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,SAPPSET,%APPSET%)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,SAPP,%APP%)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,LOGICFILENAME,TUSER4.LGF)

Script logic TUSER4.LGF:

*SELECT(%EN%,ID,ENTITY,ID=$E1$,$E2$,$E3$)
*XDIM_MEMBERSET ENTITY=%EN%
*XDIM_MEMBERSET TIME=2007.01
*XDIM_MEMBERSET CATEGORY=Actual
*XDIM_MEMBERSET ACCOUNT=PL110

*WHEN ACCOUNT
*IS *
*REC(EXPRESSION=%VALUE%)
*ENDWHEN

DM log (All 3 selected):

/CPMB/MODIFY completed in 0 seconds
/CPMB/DEFAULT_FORMULAS_LOGIC completed in 0 seconds
/CPMB/CLEAR completed in 0 seconds

[Selection]
--------------------------------------------------------------

E1 = DE
E2 = FR
E3 = US


[Message]
--------------------------------------------------------------

model: Planning. Package status: SUCCESS

Formula log:

LOG BEGIN TIME:2020-04-11 14:56:08
FILE:\ROOT\WEBFOLDERS\SHELLTEST\ADMINAPP\Planning\TUSER4.LGF
USER:SUPPORT_EXT
APPSET:SHELLTEST
APPLICATION:Planning
[INFO] GET_DIM_LIST(): I_APPL_ID="Planning", #dimensions=9
ACCOUNT,AUDITTRAIL,CATEGORY,ENTITY,INTERCO,MEASURES,PRODUCT,RPTCURRENCY,TIME

#dim_memberset=4
ENTITY:DE,FR,US,3 in total. <-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
TIME:2007.01,1 in total.
CATEGORY:Actual,1 in total.
ACCOUNT:PL110,1 in total.

REC :%VALUE%

CALCULATION BEGIN:
QUERY PROCESSING DATA
QUERY TIME : 0.00 ms. 3  RECORDS QUERIED OUT.
QUERY REFERENCE DATA
CALCULATION TIME IN TOTAL :0.00 ms.
3  RECORDS ARE GENERATED.
CALCULATION END.

ENDWHEN ACCUMULATION: 3  RECORDS ARE GENERATED.

DATA TO WRITE BACK:
ACCOUNT    AUDITTRAIL    CATEGORY    ENTITY    INTERCO    PRODUCT    RPTCURRENCY    TIME    SIGNEDDATA
PL110    Input    Actual    DE    I_DE    ProductA    LC    2007.01    20.00
...

Answers (2)

Answers (2)

BalaValluru
Participant
0 Kudos

harsha.jalakam

I have tried for checkboxes for package. Checkboxes are enabled but package got error.

Below one I Tried in Dynamic script ( members in 2nd line i have edited for security purpose a1,a2..)

Below is error after package run

Dynamic scirpt

Thanks

Kishore

former_member186338
Active Contributor
0 Kudos

Strange idea to test absolutely incorrect solution. Yesterday I have commented this answer and explained why it will not work!

former_member186338
Active Contributor

P.S. Solution, provided in my answer: https://answers.sap.com/answers/13021422/view.html

is the only possible solution without complex ABAP development!

harsha_jalakam
Active Contributor
0 Kudos

Hi,
You can you use the checkbox prompt for the same in the advanced script, with the syntax as below.

https://help.sap.com/viewer/ec68e48b18a44a49abb12b8ee8ae306f/10.0.36/en-US/f9c3b74d6faf1014878bae8cb...

Regards,
Harsha

former_member186338
Active Contributor

With CHECKBOXGROUP resulting variable %CHECKGROUP% after user selection will be like: 0,1,1 or 1,1,1

No simple way to convert it into list of ENTITY members!