• ABAP
  • ABAP Dinamik parametre ile fonksiyon çağırma kodu kullanımı örneği (ABAP Call function with Dynamic parameter(s) code usage example)

    *&———————————————————————*
    *& Report  ZFIASB_DYNAMIC_PARAMETERS
    *&
    *&———————————————————————*
    *& Bu program DATE_GET_WEEK fonksiyonu ile yapılabilecek işlemin
    *& parametereler dinamik olarak gonderilerek nasıl yapılabileceğini
    *& gostermek için yazılmıstır.
    *&
    *& Bu sekilde optional parametreleri olan bir fonskiyonu duruma
    *& gore farklı parametreler ile run etmek için kullanabiliriz
    *& a. Sadece export parametresini gonderip sy-subrc kontrol edebiliriz.
    *& b. Export parametresi gonderip import parametresi
    *&    ile sonucu alabiliriz.
    *& Burada dikkat edilmesi gereken ptab_line olusturulurken
    *& KIND parametresiyle parametrenin import/export/table/change oldugu dogru
    *& tanımlanmalıdır
    *( Bununla ilgili kullanılacak değerler ABAP type pool dan bulunabilir )
    *& abap_func_exporting/abap_func_importing/abap_func_tables/abap_func_changing
    *&
    *&CALL FUNCTION ‘DATE_GET_WEEK’
    *&  EXPORTING
    *&    date               = sy-datum
    *& IMPORTING
    *&   WEEK               = aweek
    *& EXCEPTIONS
    *&   DATE_INVALID       = 1
    *&   OTHERS             = 2
              .
    *&IF sy-subrc <> 0.
    *& MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *&        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    *&ENDIF.
    *&———————————————————————*

              REPORT  zfiasb_dynamic_parameters.

              TYPE-POOLS abap.

              DATA: func TYPE string,
                    aweek TYPE scal-week,
                    date TYPE sy-datum,
                    ptab TYPE abap_func_parmbind_tab,
                    ptab_line TYPE abap_func_parmbind,
                    etab TYPE abap_func_excpbind_tab,
                    etab_line TYPE abap_func_excpbind.

              func = ‘DATE_GET_WEEK’.
    *&a+&b Export parameters
              date = sy-datum.
              ptab_line-name = ‘DATE’.
              ptab_line-kind = abap_func_exporting." !!!!!! onemli
              GET REFERENCE OF date INTO ptab_line-value.
              INSERT ptab_line INTO TABLE ptab.
    *only &b Import parameters
              ptab_line-name = ‘WEEK’.
              ptab_line-kind = abap_func_importing." !!!!!! önemli
              GET REFERENCE OF aweek INTO ptab_line-value.
              INSERT ptab_line INTO TABLE ptab.
    * exception table
              etab_line-name = ‘DATE_INVALID’.
              etab_line-value = 1.
              INSERT etab_line INTO TABLE etab.
              etab_line-name = ‘OTHERS’.
              etab_line-value = 2.
              INSERT etab_line INTO TABLE etab.

              CALL FUNCTION func
                PARAMETER-TABLE
                  ptab
                EXCEPTION-TABLE
                  etab.

    IF sy-subrc <> 0.
     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    ** Burada eğer gecersiz bir tarih girilirse
    ** aweek = 000000 sy-subrc = 1 donecektir
              WRITE :/ date,aweek,sy-subrc.

    Share on FacebookTweet about this on TwitterShare on Google+Share on StumbleUponShare on Reddit
  • ABAP
  • ABAP Dinamik SQL programlama ile Veri Karşılaştırma kodu kullanımı örneği (ABAP Dynamic SQL programming & Data Comparing code usage example)

    Bu örnek kodda ABAP içinde dinamik SQL programlama (Dynamic SQL Programming) ve field-symbols kullanımları için örnek kod vardır. Program özellikle yeni açılan ana verilerde (master data) ortaya çıkan problemlerde hataya sebep olan farklılıkları bulabilmek için yazılmıştır. Ekranda girilecek maksimum 5 adet tabloyu, verilen alan adlarında (field name) için değer1 (value1) ve değer2 (value2) değerleri için […]