Skip to Content
0

Performance when posting journals

Nov 03, 2017 at 12:00 PM

48

avatar image

Hi all,

we are on BPC 10.0 NW which we use for consolidation. We use journals for adjustments but find the performance very poor. Posting individual journals can take two or more minutes and if we try to post several at once, the process fails after 20 journals.

Are there any parameters we can adjust in BPC or BW to make the posting quicker and avoid the failure when posting more than 20 journals?

Thanks,
Arnold

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

1 Answer

Vadim Kalinin Nov 03, 2017 at 12:11 PM
0

Do you have:

default.lgf

journal.lgf

write back badi

validation badi

?

P.S. Can you test journal posting on the fresh copy of ENVIRONMENTSHELL?

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

We have default and journal scripts but no badi.

To test on a fresh copy I will have to wait until next week as I need someone else to make a copy.

0

"We have default and journal scripts" - please post journal.lgf

0

========= JOURNAL.LGF
*INCLUDE CALCACCOUNT.LGF

*RUN_PROGRAM CURR_CONVERSION
CATEGORY=%CATEGORY_SET%
CURRENCY=EUR
TID_RA=%TIME_SET%
RATEENTITY=Global
*ENDRUN_PROGRAM

*INCLUDE ICMATCH.LGF

========= CALCACCOUNT.LGF
*FOR %CAT1%=%CATEGORY_SET%

*RUN_PROGRAM CALC_ACCOUNT
CATEGORY=%CAT1%
CURRENCY=LC
TID_RA=%TIME_SET%
OTHER=[ENTITY=%ENTITY_SET%]
CALC=STUFE1
*ENDRUN_PROGRAM

*RUN_PROGRAM CALC_ACCOUNT
CATEGORY=%CAT1%
CURRENCY=LC
TID_RA=%TIME_SET%
OTHER=[ENTITY=%ENTITY_SET%]
CALC=STUFE2
*ENDRUN_PROGRAM

*RUN_PROGRAM CALC_ACCOUNT
CATEGORY=%CAT1%
CURRENCY=LC
TID_RA=%TIME_SET%
OTHER=[ENTITY=%ENTITY_SET%]
CALC=STUFE3
*ENDRUN_PROGRAM

*RUN_PROGRAM CALC_ACCOUNT
CATEGORY=%CAT1%
CURRENCY=EUR
TID_RA=%TIME_SET%
OTHER=[ENTITY=%ENTITY_SET%]
CALC=STUFE3
*ENDRUN_PROGRAM

*NEXT

========= ICMATCH.LGF
*SELECT(%ACCOUNT_SRC%,[ID],"ACCOUNTL","[PMATCH_ACCOUNT]<>'NONE'")
*SELECT(%INTCO_SRC%,[ID],"INTCO","[ICMATCH] = 'Y'")
*SELECT(%ENTITY_SRC%,[ID],"ENTITY","[ICMATCH] = 'Y'")

*XDIM_MEMBERSET ACCOUNTL = %ACCOUNT_SRC%
*XDIM_MEMBERSET INTCO = %INTCO_SRC%
*XDIM_MEMBERSET ENTITY = %ENTITY_SRC%
*XDIM_MEMBERSET ACCTDETAIL = F_CLO
*XDIM_MEMBERSET CURRENCY = EUR
*XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
*XDIM_MEMBERSET TIME = %TIME_SET%
*XDIM_MEMBERSET SCOPE = G_NONE

*WHEN ACCTDETAIL
*IS F_CLO
*REC(FACTOR = 0,ACCTDETAIL = F_CLO_INTCO,ACCOUNTL = ACCOUNTL.PMATCH_ACCOUNT,ENTITY = INTCO.ENTITY,INTCO = ENTITY.INTCO)
*REC(FACTOR = 0,ACCOUNTL = ACCOUNTL.PMATCH_ACCOUNT2)
*ENDWHEN

*WHEN ACCTDETAIL
*IS F_CLO
*REC(EXPRESSION = %VALUE%,ACCTDETAIL = F_CLO_INTCO,ACCOUNTL = ACCOUNTL.PMATCH_ACCOUNT,ENTITY = INTCO.ENTITY,INTCO = ENTITY.INTCO)
*REC(EXPRESSION = %VALUE%,ACCOUNTL = ACCOUNTL.PMATCH_ACCOUNT2)
*ENDWHEN

0

Ups, no surprise that with this script journal save is very slow!

You have to optimize it of to move the logic to DM package.

0

P.S. Looks like calculations in EUR before currency conversion:

...
*RUN_PROGRAM CALC_ACCOUNT
CATEGORY=%CAT1%
CURRENCY=EUR
TID_RA=%TIME_SET%
OTHER=[ENTITY=%ENTITY_SET%]
CALC=STUFE3
*ENDRUN_PROGRAM
...

Anyway the required logic has to be described.

0

STUFE1 copies data on P&L accounts from flow elements used for segments onto the closing element.

STUFE2 copies the result from the P&L to equity.

STUFE3 copies the total of the flows on balance sheet accounts onto the closing element.

I agree that STUFE3 in EUR can be deleted from the logic.

The ICMATCH script copies data reported with partner information from the reporting entity to the partner entity so the local user can run a reconciliation report on intercompany data (we only have the consolidation cube, not a seperate ic cube).

0

The main issue of this script is that the scope is fixed or *RUN_PROGRAM is used.

A lot of calculations are performed even if you post a single line journal...

0

For example:

posting single line for single account, flow, intco, ..., time, category

*RUN_PROGRAM CURR_CONVERSION
CATEGORY=%CATEGORY_SET%
CURRENCY=EUR
TID_RA=%TIME_SET%
RATEENTITY=Global
*ENDRUN_PROGRAM

will perform conversion for all: account, flow, intco,...

Only time and category will be restricted

0

True but the currency conversion also runs as part of my default script and that does not take very long. Plus I am not sure how I could restrict the conversion further.

0

It's not only currency conversion but all CALC_ACCOUNT etc...

Please read my blog about default.lgf: https://blogs.sap.com/2014/06/09/how-to-write-defaultlgf/

In some cases you can use OTHER filter in *RUN_PROGRAM xxx

In some cases it's better to replace *RUN_PROGRAM with WHEN/ENDWHEN loop without scope.

The idea is to perform calculation only for changed data!

0

I will test and see what kind of performance I get after removing the EUR version of STUFE3 and deleting the *XDIM_MEMBERSET SCOPE=G_NONE.

0

Close to nothing! Please read my prev. comment.

0