on ‎2016 May 12 3:11 PM
Hello,
I run a DM Package. This package triggers execution of a script logic program. The package runs for about 15 minutes (Package End Time minus Package Start Time).
Package log tells me that calculations (logic) runs for about 1 minute:
\CPMB\MODIFY: 0 sec
\CPMB\ALLOCATION_LOGIC: 70 sec
\CPMB\CLEAR: 0 sec
I'm trying to figure out what the rest of the time is spent for? 15 min - 1minute = 14 minutes of 'overheads'. How can I trace package execution and identify these 'overheads'?
Thank you in advance for any suggestions,
Best regards,
Valery
Request clarification before answering.
I've found an SM37 job log associated with the DM package run described above
The beast gets stuck someplace between BW process chain (message class RSPC) and database readinng (message class DBMAN). Spends these 14 minutes waiting for something, then goes on.
Maybe that can clarify something.
Best regards,
Valery
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Vadim,
The issue in fact includes several different logics demonstrating the same behaviour.
When logic is run by only one user at at time, it works as expected.
When two or more users run the same logic (but on different data slices) at the same time -- these calculations look like being executed one after another.
Analysis of RSPC stuff shows the the task RUNLOGIC within \CPMB\ALLOCATION_LOGIC process chain can serve only one user at a time.
Not sure this has anything to do with any specific logic.
I'll be back with an example of logic and corresponding formula log.
Best regards,
Valery
"but on different data slices" - data lock may happen!
"Analysis of RSPC stuff shows the the task RUNLOGIC within \CPMB\ALLOCATION_LOGIC process chain can serve only one user at a time." - script logic can run in parallel: How To Implement the RUNLOGIC_PH Keyword in SAP... | SCN
Ups, very strange script:
1.
*XDIM_MEMBERSET COSTC=%BAS_HQ%
...
*WHEN COSTC
*IS %COSTC_SET% // will be executed only when %COSTC_SET% is in %BAS_HQ%
2. Replace:
*WHEN ROWS
*IS JAN
*REC(EXPRESSION=(%VALUE%+[FLOW].[CNTR_PMT])*("$PERCENT1$"/100),FLOW=FLOW_NONE,TIME=$YEAR$.01)
*ENDWHEN
*WHEN ROWS
*IS FEB
*REC(EXPRESSION=(%VALUE%+[FLOW].[CNTR_PMT])*($PERCENT1$/100),FLOW=FLOW_NONE,TIME=$YEAR$.02)
*ENDWHEN
...
with:
*WHEN ROWS
*IS JAN
*REC(EXPRESSION=(%VALUE%+[FLOW].[CNTR_PMT])*("$PERCENT1$"/100),FLOW=FLOW_NONE,TIME=$YEAR$.01)
*IS FEB
*REC(EXPRESSION=(%VALUE%+[FLOW].[CNTR_PMT])*($PERCENT1$/100),FLOW=FLOW_NONE,TIME=$YEAR$.02)
...
3. What is the idea with $PERCENT1$, $PERCENT2$, $PERCENT3$ overwriting destination in slightly different way?
Vadim
Valery,
Vadim's recommendations should help speeding up script logic. One other item in addition that you might want to explore is parallelization. It seems you have good BW skills. Look at note 1792408 for details.
https://launchpad.support.sap.com/#/notes/1792408
Hope this helps!
Akos
Valery,
You need to add the parameter.
Here is a step by step document for that
Akos
Please show Formula log and the script text!
Vadim
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 17 | |
| 8 | |
| 7 | |
| 6 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 1 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.