Tuesday, July 12, 2011

ABAP - Subroutine Kullanarak Recursive Program Yapmak

ABAP'ta PERFORM ifadesi program içinde alt bir programa(subroutine) dallanmasını sağlar. Böylece uzun bir program parçasını sadece PERFORM ifadesini yazarak tekrar tekrar çağrılabilir.

Aşağıdaki örnekte SUBROUTINE kullanarak recursive bir şekilde kullanıcıdan alınan rakamdan geriye sayan bir program.



REPORT  Z_PERFORM_REC.

parameters sayi type i.
*
perform test.
*
form test.
     if sayi > 0.
        write :'sayi :'sayi .
        sayi sayi 1.
        PERFORM TEST.
     else.
         write   'islem tamamlandi'.
     endif.
endform.




Programda SAYI değişkenini kullanıcıdan alınıyor. Sonra PERFORM komutu ile TEST formunun içine giriyor. Burda SAYI değişkeni 0'dan büyükse SAYI'yi yazdırıyor, sonra '1' çıkartıp tekrar kendini çağırıyor. Ardından tekrar aynı işlem gerçekleşiyor. Bu işlem SAYI'nın değeri 0 olana kadar devam ediyor. Ardından ENDFORM ifadesiyle SUBROUTINE'den çıkılıyor.

No comments: