cancel
Showing results for 
Search instead for 
Did you mean: 

Problems to avoid programming ABAP

Former Member
0 Kudos

Hi Experts,

I'm going to program in ABAP for a BPC NetWeaver project. I would like to know about tips, tricks, the problems I can find and I must avoid. For example, not to hardcode Infoprovider's technical names because they can change after executing a transport, ... etc

Thanks in advance,

Albert

Accepted Solutions (1)

Accepted Solutions (1)

pravin_datar
Employee
Employee
0 Kudos

Hi Albert,

Is this for 7NW? For what pupose are you going to use ABAP? Is it for doing calculations (similar to the ones done by script logic)/ If so, please make sure that you are using the badi. (http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/20f4252d-98ca-2b10-e689-f85085ae2d12)

Regards

Pravin

Former Member
0 Kudos

Hi Pravin,

Yes, I'm working on 7.0NW. I want to try to optimize performance for doing some calculations instead of the ones done by some script logics. So, in order to program with ABAP and with BADIs, I would like to know about

- which kind of calculations have a better performance in calc scripts than in ABAP programs with BADIs

- which things/problems I must avoid and which ones I must be aware of

- some tips or tricks

- ...

I've downloaded some documents as "Custom BADIs in Script Logic.pdf" and "How to Pass Parameters to Custom Logic BADI using START_BADI.pdf".

Could you give some more advices?

Thanks in advance,

Albert

RichHeilman
Developer Advocate
Developer Advocate
0 Kudos

Hi. In most cases, writing ABAP inside of a BAdI implementation instead of using script logic will always be faster. The reason is, when your use a BAdI, it is part of the enhancement framework, which means the processing is dropped to the kernel, and gives you an expontial performance boost. This is compared to script logic, which is interpreted by the ABAP runtime, and simply executes ABAP code based on that interpretation, making the process somewhat slower. Another good tip when writing code in the BAdi implementations, is to use performance enhanceing techniques in your ABAP code, such as using hash tables to perform quick lookups. Try to hit the database as less as possible, so don't re-read master data each time in a loop. Read it once and store it, again in a hash table. Same with reading transaction if required, read it once and store it instead of reading it each time in a loop. Using these practices will make it run really fast for large volumes of data. I actually had to create one a while back where the script logic was running about 1 1/2 hours for 300k records. I got it to run in about 2 minutes using the BAdI, and some good performance tuning techniques like the ones mentinoed here.

Hope this helps.

Regards,

Rich Heilman

Former Member
0 Kudos

Thanks Rich for your advices,

I'll consider these good tips when writing ABAP code in the BADI implementations!

Albert

Answers (0)