Cmd ei api: Unterschied zwischen den Versionen

Aus SAP Wiki ツ
M1ch3lde (Diskussion | Beiträge)
M1ch3lde (Diskussion | Beiträge)
Zeile 11: Zeile 11:
  IMPORTING et_parvw = DATA(lt_parw) ).
  IMPORTING et_parvw = DATA(lt_parw) ).


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


                                                                                                                    )
                                                                                      )
                                                                                                        )
                                                                    )
                                                                                                )
                                                                )


                                                                              )
                                            )
                                                        ).
                        ).


     "Prüfen lt_master_data nicht intial ...
     "Prüfen lt_master_data nicht intial ...

Version vom 21. Januar 2026, 17:33 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 lt_master_data TYPE cmds_ei_extern.
lt_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.