Cmd ei api: Unterschied zwischen den Versionen

Aus SAP Wiki ツ
M1ch3lde (Diskussion | Beiträge)
M1ch3lde (Diskussion | Beiträge)
Zeile 7: Zeile 7:
<syntaxhighlight lang="abap" line start="1">
<syntaxhighlight lang="abap" line start="1">


    DATA it_master_data TYPE cmds_ei_extern.
cmd_ei_api_check=>get_mand_partner_functions(
EXPORTING iv_ktokd = 'CUST'
it_master_data = VALUE #( header-object_instance-kunnr = '9980000360'
IMPORTING et_parvw = DATA(lt_parw) ).
                                                                  header-object_task = 'U'
 
                                                                  sales_data = VALUE #( sales = VALUE #( ( task = 'I'
DATA it_master_data TYPE cmds_ei_extern.
                                                                                                          data-waers = 'EUR'
it_master_data = VALUE #( header-object_instance-kunnr = '9980000360'
                                                                                                          data_key-vkorg = '1010'
                          header-object_task = 'U'
                                                                                                          data_key-vtweg = '10'
                          sales_data = VALUE #( sales = VALUE #( ( task = 'I'
                                                                                                          data_key-spart = '00'
                                                                  data-waers = 'EUR'
                                                                                                          datax-waers = 'X'
                                                                  data_key-vkorg = '1010'
                                                                                                          functions = VALUE #( functions = VALUE #( FOR ls_parw IN lt_parw
                                                                  data_key-vtweg = '10'
                                                                                                                                                        ( task = 'I'
                                                                  data_key-spart = '00'
                                                                                                                                                          data_key-parvw = ls_parw-parvw
                                                                  datax-waers = 'X'
                                                                  functions = VALUE #( functions = VALUE #( FOR ls_parw IN lt_parw                                                                                                                                                           ( task = 'I'                                                                                                                                                         data_key-parvw = ls_parw-parvw
                                                                                                                                                           data-partner = '9980000360'
                                                                                                                                                           data-partner = '9980000360'
                                                                                                                                                           datax-partner = 'X'
                                                                                                                                                           datax-partner = 'X'

Version vom 21. Januar 2026, 17:27 Uhr

Die Klasse ist sehr mächtig und es ist schnell ohne weiteres möglich Daten aus dem Geschäftspartner zu löschen. Es ist sehr anzuraten mit einem konkreten Test-Geschäftsparntersatz zu testen, wenn ein Geschäftparnter oder dessen Rollen mit dieser Klasse gepflegt werden.

Klassenmethode maintain_bapi


cmd_ei_api_check=>get_mand_partner_functions( 
 EXPORTING iv_ktokd = 'CUST'
 IMPORTING et_parvw = DATA(lt_parw) ).

DATA it_master_data TYPE cmds_ei_extern.
it_master_data = VALUE #( header-object_instance-kunnr = '9980000360'
                          header-object_task = 'U'
                          sales_data = VALUE #( sales = VALUE #( ( task = 'I'
                                                                   data-waers = 'EUR'
                                                                   data_key-vkorg = '1010'
                                                                   data_key-vtweg = '10'
                                                                   data_key-spart = '00'
                                                                   datax-waers = 'X'
                                                                   functions = VALUE #( functions = VALUE #( FOR ls_parw IN lt_parw                                                                                                                                                            ( task = 'I'                                                                                                                                                          data_key-parvw = ls_parw-parvw
                                                                                                                                                          data-partner = '9980000360'
                                                                                                                                                          datax-partner = 'X'
                                                                                                                                                         )
                                                                                                                                                    )

                                                                                                                    )
                                                                                                         )
                                                                                                )

                                                                               )
                                                        ).

    "Prüfen lt_master_data nicht intial ...
    "Hier sperren mit ENQUEUE_EXKNA1 ...
    cmd_ei_api=>maintain_bapi(
      exporting
         iv_test_run              = iv_test_run
         iv_collect_messages      = abap_true
         is_master_data           = value #( customers = value #( ( lt_master_data ) ) )
      importing
        es_master_data_correct   = data(lt_correct_data)
        es_message_correct       = data(lt_correct_messages)
        es_message_defective     = data(lt_error_messages)
        ).

    IF lt_error_messages-is_error = abap_false AND iv_test_run = abap_false.

      IF error_messages-is_error = abap_false.
       call function 'BAPI_TRANSACTION_COMMIT'
        exporting
         wait = abap_true.
        "Hier entsperren mit DEQUEUE_EXKNA1
        "S-Meldung oder sonstiges
      ELSE.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
        "Hier entsperren mit DEQUEUE_EXKNA1
        "RAISE EXCEPTION TYPE oder oder sonstiges
      ENDIF.
    ELSEIF error_messages-is_error = abap_true.
      IF iv_test_run = abap_false.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      ENDIF.
      "Hier entsperren mit DEQUEUE_EXKNA1
      "RAISE EXCEPTION TYPE oder sonstiges
    ENDIF.