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

BPC Parameters to Script Logic

Former Member
0 Kudos
906

Hi All,

My goal is create a new Employee Master data  (http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/2020b522-cdb9-2e10-a1b1-873309454...)

and automatically generate 1 line Transactional data using a script logic

- Master data Creating is: FINE

- Create the Transaction against it: NOT OK (triggered a script logic)

PROMPT(TEXT,%PROP_ID%,"New Member ID",)

PROMPT(TEXT,%PROP_EVDESCRIPTION%,"Description",)

PROMPT(SELECT,%SELECTION%,,"Select the Parent for the new member, Click Next","EMPLOYEE")

PROMPT(TEXT,%WS_PERCT%,"Enter the Salary",)

INFO(%EQU%,=)

INFO(%TAB%,;)

TASK(ZUJDXRL_VARIANT,TAB,%TAB%)

TASK(ZUJDXRL_VARIANT,EQU,%EQU%)

TASK(ZUJDXRL_VARIANT,SUSER,%USER%)

TASK(ZUJDXRL_VARIANT,SAPPSET,%APPSET%)

TASK(ZUJDXRL_VARIANT,SAPP,%APP%)

TASK(ZUJDXRL_VARIANT,SELECTION,%SELECTION%)

TASK(ZUJDXRL_VARIANT,LOGICFILENAME,MDOFX.LGF)

TASK(ZUJDXRL_VARIANT,REPLACEPARAM1_KEY,ID)

TASK(ZUJDXRL_VARIANT,REPLACEPARAM1_VALUE,%PROP_ID%)

TASK(ZUJDXRL_VARIANT,REPLACEPARAM2_KEY,EVDESCRIPTION)

TASK(ZBPC_PROMPT_EXP_RUN_LOGIC_3,LOGICFILENAME,EXTRA_CALC.LGF)

TASK(ZBPC_PROMPT_EXP_RUN_LOGIC_3,TAB,%TAB%)

TASK(ZBPC_PROMPT_EXP_RUN_LOGIC_3,EQU,%EQU%)

TASK(ZBPC_PROMPT_EXP_RUN_LOGIC_3,SUSER,%USER%)

TASK(ZBPC_PROMPT_EXP_RUN_LOGIC_3,SAPPSET,%APPSET%)

TASK(ZBPC_PROMPT_EXP_RUN_LOGIC_3,SAPP,%APP%)

'TASK(ZBPC_PROMPT_EXP_RUN_LOGIC_3,SELECTION,%SELECTION%)

TASK(ZBPC_PROMPT_EXP_RUN_LOGIC_3,REPLACEPARAM,WS_PERCT%EQU%%WS_PERCT%%TAB%PROP_ID%EQU%%PROP_ID%)

The script logic:

*XDIM_MEMBERSET CATEGORY = Forecast

*XDIM_MEMBERSET COMP_CODE = 1001

*XDIM_MEMBERSET EMPLOYEE = $EXP_PERCT$

*XDIM_MEMBERSET HR_ACCOUNT = 10000055101000

*XDIM_MEMBERSET OP_COSTCENTER = XXX

*XDIM_MEMBERSET RPTCURRENCY = USD

*XDIM_MEMBERSET ENTITY = XYZ

*XDIM_MEMBERSET S_GUIDE = Input

*XDIM_MEMBERSET TIME = 2016.INP

[HR_ACCOUNT].[#10000055101000] = $WS_PERCT$

In the Process chain of BW side I created a new Variant called: ZBPC_PROMPT_EXP_RUN_LOGIC_3

with same parameters as there

Note:

FOR TESTING PURPOSE:

The first time: When I run the data package it create the Master data, and not the transaction

but, after I changing the DM if I run again, adding:

PROMPT(TEXT,%ABC%,"Enter the User",)

TASK(ZBPC_PROMPT_EXP_RUN_LOGIC_3,REPLACEPARAM,WS_PERCT%EQU%%WS_PERCT%%TAB%ABC%EQU%%ABC%)

it works, because I think the Employee Member is already created.

I believe there is something I need to do in between in order to "Activate" the Employee so it can generate a data.

Any clue?

Thanks.
Regards,

Accepted Solutions (1)

Accepted Solutions (1)

former_member186338
Active Contributor
0 Kudos

Sorry, please provide the full script!

I don't see the badi call:

*START_BADI MDOFX

QUERY = OFF

WRITE = OFF

VARIANT = $VARIANT$

UNIQUE_ID = $UNIQUE_ID$

SELECTION = $SELECTION$

*END_BADI

former_member186338
Active Contributor
0 Kudos

Ups, I think I managed to understand the issue...

Can you show the DM log?

Former Member
0 Kudos

This is the LOG

Info: Variant set to: ZUJDXRL_VARIANT

Info: UNIQUE ID set to: DLFGK7EO8906HY4LIOMFPJ0ZG

Info: Creating master data in dimension: EMPLOYEE

Info: PARENTH1 member: 50000706

Info: Using template member: 50000706

Info: Setting the value of property (PARENTH1) to (50000706).

Info: Setting the value of property (ID) to (ZABC4).

Info: Successfully saved new member.

Info: Successfully processed the dimension

Info: Successfully created the member ( ZABC4 ) in dimension ( EMPLOYEE ).

RUN_LOGIC:Members invalid On Dimension(EMPLOYEE)

model: HR. Package status: ERROR

I managed it working, i did mistake in writing in the DM.

Thanks

former_member186338
Active Contributor
0 Kudos

Can you show the chain screenshot?

Former Member
0 Kudos
former_member186338
Active Contributor
0 Kudos

Just completed full test! Working with 2 scripts!

Chain (modified copy of original chain) ZUJDX_MDOF_PC_S:

RUN_LOGIC variant

DM package advanced script (chain ZUJDX_MDOF_PC_S):

PROMPT(TEXT,%PROP_ID%,"New Member ID",)

PROMPT(TEXT,%PROP_EVDESCRIPTION%,"Description",)

PROMPT(SELECT,%SELECTION%,,"Select the Parent for the new member, Click Next","TITLES")

PROMPT(SELECT,%PROP_PLANBE%,,"Select the appropriate PLANBE for the new member, Click Next","BE",)

PROMPT(SELECT,%TEMPLATE_MBR%,,"Select the Template Member (default property values will be copied from this member), Click Next", "TITLES")

PROMPT(TEXT,%VAL%,"Value",)

INFO(%EQU%,=)

INFO(%TAB%,;)

TASK(ZUJDXRL_VARIANT,TAB,%TAB%)

TASK(ZUJDXRL_VARIANT,EQU,%EQU%)

TASK(ZUJDXRL_VARIANT,SUSER,%USER%)

TASK(ZUJDXRL_VARIANT,SAPPSET,%APPSET%)

TASK(ZUJDXRL_VARIANT,SAPP,%APP%)

TASK(ZUJDXRL_VARIANT,SELECTION,%SELECTION%)

TASK(ZUJDXRL_VARIANT,LOGICFILENAME,MDOFX.LGF)

TASK(ZUJDXRL_VARIANT,REPLACEPARAM1_KEY,ID)

TASK(ZUJDXRL_VARIANT,REPLACEPARAM1_VALUE,%PROP_ID%)

TASK(ZUJDXRL_VARIANT,REPLACEPARAM2_KEY,EVDESCRIPTION)

TASK(ZUJDXRL_VARIANT,REPLACEPARAM2_VALUE,%PROP_EVDESCRIPTION%)

TASK(ZUJDXRL_VARIANT,REPLACEPARAM3_KEY,PLANBE)

TASK(ZUJDXRL_VARIANT,REPLACEPARAM3_VALUE,%PROP_PLANBE%)

TASK(ZUJDXRL_VARIANT,REPLACEPARAM4_KEY,TEMPLATE_MBR)

TASK(ZUJDXRL_VARIANT,REPLACEPARAM4_VALUE,%TEMPLATE_MBR%)

TASK(RUN_LOGIC2,TAB,%TAB%)

TASK(RUN_LOGIC2,EQU,%EQU%)

TASK(RUN_LOGIC2,SUSER,%USER%)

TASK(RUN_LOGIC2,SAPPSET,%APPSET%)

TASK(RUN_LOGIC2,SAPP,%APP%)

TASK(RUN_LOGIC2,SELECTION,%SELECTION%)

TASK(RUN_LOGIC2,LOGICFILENAME,MD1.LGF)

TASK(RUN_LOGIC2,REPLACEPARAM,VAL%EQU%%VAL%%TAB%TITID%EQU%%PROP_ID%)

MDOFX.LGF:

*START_BADI MDOFX

QUERY = OFF

WRITE = OFF

VARIANT = $VARIANT$

UNIQUE_ID = $UNIQUE_ID$

SELECTION = $SELECTION$

*END_BADI

MD1.LGF:

*XDIM_MEMBERSET TITLES=$TITID$

*XDIM_MEMBERSET BE=BE1000

*XDIM_MEMBERSET PERIODS=2007.JAN

*XDIM_MEMBERSET PLANTYPE=ACTUAL

*XDIM_MEMBERSET CORPDIR=DIRECT

*XDIM_MEMBERSET INACCT=INDUMMY

*WHEN_REF_DATA = MASTER_DATA

*WHEN INACCT

*IS *

*REC(EXPRESSION=$VAL$)

*ENDWHEN

Result:

Report after metadata refresh:

Vadim

former_member186338
Active Contributor
0 Kudos

P.S. Minor issues:

Warning status for MDOF part and missing formula log for MDOF script

For the second script - fine!

Former Member
0 Kudos

Hi  Vadim,

Thanks a lot, I will change according of your logic

I have two further questions:

First Thing

*WHEN_REF_DATA = MASTER_DATA -> What is purpose of this?


Second thing:

Client requested me to created another button in order to EDIT instead the Creating (as I did). For example, you created a person, and by mistake they put wrong Costcenter or Nationality. They would like to amend...

I already made a copy of BADI / PC for this purpose.


do you know where specifically I can do that?


Thanks a lot for your kind help!

Regards,



former_member186338
Active Contributor
0 Kudos

First:

Second:

in the code sample look on: "<lv_field> = 'I'. " This is an action flag, I=Insert, M=Modify"

Vadim

Answers (0)