Funktionsbaustein dynamisch mit Parameter aufrufen

Aus SAP Wiki ツ
Version vom 30. Januar 2026, 11:27 Uhr von M1ch3lde (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
DATA lt_func_param TYPE abap_func_parmbind_tab.
DATA lv_func_name TYPE funcnam.
DATA ls_vbap type ref to data.
DATA lv_vbeln type ref to data.
DATA lv_posnr type ref to data.

CREATE DATA ls_vbap TYPE vbap.
CREATE DATA lv_vbeln TYPE vbap-vbeln.
CREATE DATA lv_posnr TYPE vbap-posnr.

lv_vbeln->* = '0000010889'.
lv_posnr->* = 000010 .
lv_func_name = 'SD_VBAP_SINGLE_READ'.

lt_func_param = VALUE #( ( kind = abap_func_exporting
                           name = 'I_VBELN'
                           value = lv_vbeln )
                         ( kind = abap_func_exporting
                           name = 'I_POSNR'
                           value = lv_posnr )
                         ( kind = abap_func_importing
                           name = 'E_VBAP'
                           value = ls_vbap )
                        ).

DATA(lt_func_exc) = VALUE abap_func_excpbind_tab(
                        ( name = 'RECORD_NOT_FOUND' value = 1 )
                        ( name = 'OTHERS'           value = 2 ) ).

TRY.
    CALL FUNCTION lv_func_name
      PARAMETER-TABLE lt_func_param
      EXCEPTION-TABLE lt_func_exc.

    IF sy-subrc <> 0.
      IF sy-subrc = 1.
        "not found
      ELSE.
        "others
      ENDIF.
    ELSE.
     FIELD-SYMBOLS: <ls_vbap>.
     ASSIGN ls_vbap->* TO <ls_vbap>.
     ASSIGN COMPONENT 'MATNR' OF STRUCTURE <ls_vbap> TO FIELD-SYMBOL(<lv_material>).
    ENDIF.

  CATCH cx_sy_dyn_call_illegal_func INTO DATA(lx_dyn_call_illegal_func).
  CATCH cx_sy_dyn_call_error INTO DATA(lx_dyn_call_error).
ENDTRY.

*CALL FUNCTION 'SD_VBAP_SINGLE_READ'
*  EXPORTING
*    i_vbeln            =                  " Verkaufsbeleg
*    i_posnr            =
*    i_bypassing_buffer = space
*    i_refresh_buffer   =
*  IMPORTING
*    e_vbapvb           =
*    e_vbap             =
*  EXCEPTIONS
*    record_not_found   = 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.

Dieses Wiki wird privat in Freizeit nach bestem Wissen und Gewissen gepflegt und dient primär als eigene Wissenssammlung für die tägliche Arbeit im SAP-ERP-Umfeld.
Alle dargestellten Softwareprodukte, auch in Form von Screenshots, sind Eigentum der SAP SE. Ihre Marken, vgl. Link, sind u.a.: SAP®, ABAP®, SAP Fiori®, SAP HANA®, SAP S/4HANA®, SAP S/4HANA® Cloud