adesso business consulting Stellenangebote
Software Engineer Senior
| (Senior) Cloud Software Engineer BTP | Senior Frontend Software Engineer SAP BTP
| (Senior) Consultant Technologie
Werkstudent Softwareentwicklung · Consulting
Cmd ei api: Unterschied zwischen den Versionen
Aus SAP Wiki ツ
Keine Bearbeitungszusammenfassung |
|||
| Zeile 6: | Zeile 6: | ||
<syntaxhighlight lang="abap" line start="1"> | <syntaxhighlight lang="abap" line start="1"> | ||
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 ... | "Prüfen lt_master_data nicht intial ... | ||
"Hier sperren mit ENQUEUE_EXKNA1 ... | "Hier sperren mit ENQUEUE_EXKNA1 ... | ||
Version vom 21. Januar 2026, 17:25 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
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.