cancel
Showing results for 
Search instead for 
Did you mean: 

Default Logic Optimization

Former Member
0 Kudos

Hello All,

I have built a BADI and I am using it in Default logic. I have included scoping statements in my default logic to get all the information for my BADI. If I look at my default log, the total execution of default logic is 3 mins, out of which 165 seconds is in the query read prior to execution of the BADI. BADI executes only for 10 seconds. How can I decrease this query time? I do have employee dimension with 20,000 members. I use

*XDIM_MEMBERSET EMPLOYEE=<ALL> to get everyone as I am calculating Labor costs at Employee level. Script I have in default logic is:

*XDIM_MEMBERSET TIME = %YEAR%.INP

*XDIM_MEMBERSET JOB = <ALL>

*XDIM_MEMBERSET P_ACCT = FTE,HR_RATE,MNTHLY_PREM_PAY,OT_RATE

*XDIM_MEMBERSET EMPLOYEE = <ALL>

*START_BADI LABOR

QUERY = ON

WRITE = ON

*END_BADI

Any ideas and help is appreciated.

Thanks!

Accepted Solutions (1)

Accepted Solutions (1)

former_member200327
Active Contributor
0 Kudos

Hello,

Usually XDIM_MEMBERSET do not take much time, hence I think that most of the time is spent retrieving data from your Application. If you don't need that data you can set QUERY= OFF.

Another option is to read that data in packages and XDIM_MAXMEBERS can help there.

You can also take a look at my blog [Improve performance of your BPC NW scripts|http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/21214] [original link is broken] [original link is broken] [original link is broken];.

Regards,

Gersh

Former Member
0 Kudos

Gersh,

I see drastic performance improvment when I set the QUERY=OFF and read the data in the BADI using UJQ_RUN_RSDRI_QUERY. Is this normal?

Also, I see that if I run my BADI using START_BADI it executes much faster in UJKT rather than in a BPC package. Any ideas why?

Also, why is there performance gain when I perform XDIM_MAXMEMBERS on the script scoping? For instance, one of dimension has 20,000 members. When I have the scoping statement for that dimension as *XDIM_MEMBERSET EMPLOYEE=<ALL> it runs for 20 seconds, but when I specify the same statement along with *XDIM_MAXMEMBERS EMPLOYEE=25,000, its down to 8 seconds.

Thanks.

former_member200327
Active Contributor
0 Kudos

QUERY = ON uses SQE that can invoke MDX or RSDRI. That could be are reason why you see that difference especially if you have Nodes in your selection.

I never experienced big difference between UJKT and DM Package. I'd think that it could be caused by difference in parameters or caching.

I'd think that the main difference between having XDIM_MAXMEMBERS and running without it is that, as far as I remember, XDIM_MAXMEMBERS expands all hierarchies to base members and and hence avoids MDX.

Regards,

Gersh

Answers (0)