2008 Sep 08 8:17 AM
Hi All,
Is there any specific way by which we can achieve recursion in ABAP programming, or is there only the basic call-within-call structure which should contain an exit criteria?
If there is a specific way to achieve recursion, is there a concept of stack, something like we have in C++?
Please help me to understand this better.
Thanks and Regards,
Vidya.
Hi All,
Is there any specific way by which we can achieve recursion in ABAP programming, or is there only the basic call-within-call structure which should contain an exit criteria?
If there is a specific way to achieve recursion, is there a concept of stack, something like we have in C++?
Please help me to understand this better.
Thanks and Regards,
Vidya.
2008 Sep 08 8:21 AM
check this recursion program example
Link:https://wiki.sdn.sap.com/wiki/display/Snippets/InverseBOMExplosion
2008 Sep 08 8:28 AM
Thanks for your reply Keshu...I have seen the code and understand it. But in general, can you explain how recusion works in ABAP? Is something like a stack maintained? Can the results of the iterations be used in previous iterations, like it happens in C++?
Thank you all for your replies. I shall try the fibonacci series code and understand how recursion is achieved.
Regards,
Vidya.
Edited by: Vidya D on Sep 8, 2008 9:29 AM
2008 Sep 08 8:22 AM
Hi
Check the below subroutine where it is calling the same function and it displays Fibonacci series
FORM fibo USING value(p_p_num)
CHANGING p_w_res.
DATA :
w_temp TYPE i, " Temporary Variable
w_no1 TYPE i, " Number Variable One
w_no2 TYPE i, " Number Variable TWO
w_add TYPE i. " Stores Sum Of Above 2 Variables
w_temp = p_p_num.
IF w_temp EQ 1 OR w_temp EQ 2.
p_w_res = 1.
ELSE.
w_add = 0.
w_no1 = w_temp - 1.
w_no2 = w_temp - 2.
PERFORM fibo USING w_no1 CHANGING p_w_res.
w_add = w_add + p_w_res.
PERFORM fibo USING w_no2 CHANGING p_w_res.
w_add = w_add + p_w_res.
p_w_res = w_add.
ENDIF. " END IF
ENDFORM. " END FORMRegards
Pavan
2008 Sep 08 8:24 AM
Hi,
ABAP is also a programming language like C++. Here we can write subroutines and loops etc stuff.
Logically, Recursion is a loop kind of thing which runs till some condition is met.
Here also you can write a subroutine and pass the parameters to that subroutine with in a loop and endloop.
With this you can achieve the recursion even in abap also. The way of coding is different.
Hope this gives a clear picture.
Regards,
RSS.
2008 Sep 08 8:31 AM
Hi Vidya,
Check this example for recursion:
http://www.sap-img.com/abap/recursion-with-loop-checking-in-sap.htm
Regards,
Chandra Sekhar
2008 Sep 08 9:14 AM
Recursion can be achieved in ABAP also. Recursion is nothing but to execute a block of code repeatedly until some condition is met.
in ABAP we can use do loop like
do <n> times.
statements.
enddo.
or we can use while statement.
2010 Sep 08 7:10 AM
Hi,
May be a little late, but nevertheless.
-1-
If your recursion is defined within a database table. And the recursive data is found in that table. (think of tree like structures like a BOM).
In that case you might found it easy to use the CONNECT BY clause offered by oracle (embedded SQL) in order to traverse thrue the structure.
-2-
If your data can be represented in XML cannonical form, i would make use of XPATH expressions to traverse thrue those structures. Even when in the ABAP stack. (serialize <-> deserialize).
-3-
If your data can be represented in ABAP-Objects i would propose using linked lists or tree like structures to traverse thrue the structure.
Kind regards
Stef Snijders
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |