TYPES: ty_it_copy_records TYPE STANDARD TABLE OF komv WITH DEFAULT KEY.
DATA(lv_komg) = VALUE komg( bukrs = '0001' " Buchungskreis (Tabelle T001)
matnr = '1234567890' " Materialnummer
vkorg = '0100' " Verkaufsorganisation (Tabelle TVKO)
vtweg = '01' " Vertriebsweg (Tabelle TVTW)
).
DATA(it_copy_records) = VALUE ty_it_copy_records( ( kappl = 'V' " Applikation: V - Vertrieb (Tabelle T681A / T681B)
kschl = 'PR00' " Konditionsart (Tabelle T685)
kbetr = '10.00' " Konditionsbetrag oder -prozentsatz
waers = 'EUR' " Konditionseinheit (Währung oder Prozentsatz) (Tabelle TCURC)
kpein = '1' " Konditions-Preiseinheit
kmein = 'ST' " Konditionsmengeneinheit (Tabelle T006)
) ).
DATA: lv_datab TYPE vake-datab.
DATA: lv_datbi TYPE vake-datbi.
DATA: lv_prdat TYPE vake-datbi.
CALL FUNCTION 'RV_CONDITION_COPY'
EXPORTING
application = 'V' " Applikation: V - Vertrieb (Tabelle T681A / T681B)
date_from = sy-datum " von Datum
date_to = '99991231' " max. Datum für Konditionen
condition_table = '004' " Konditionstabelle (Tabelle T681)
condition_type = 'PR00' " Konditionsart (Tabelle T685)
enqueue = abap_true " Lock
key_fields = lv_komg " Schlüsselfelder
maintain_mode = 'A' " Modus (A - Anlegen, B - Ändern, C - Anzeigen, D - Anlegen mit Vorlage)
overlap_confirmed = abap_true " automatische Bestätigung bei Zeitraumüberlappung
no_authority_check = abap_true " keine Berechtigungprüfung durchführen
IMPORTING
e_datab = lv_datab
e_datbi = lv_datbi
e_prdat = lv_prdat
TABLES
copy_records = it_copy_records
EXCEPTIONS
enqueue_on_record = 1
invalid_application = 2
invalid_condition_number = 3
invalid_condition_type = 4
no_authority_ekorg = 5
no_authority_kschl = 6
no_authority_vkorg = 7
no_selection = 8
table_not_valid = 9
no_material_for_settlement = 10
no_unit_for_period_cond = 11
no_unit_reference_magnitude = 12
invalid_condition_table = 13
OTHERS = 14.
IF sy-subrc = 0.
CALL FUNCTION 'RV_CONDITION_SAVE'.
CALL FUNCTION 'RV_CONDITION_RESET'.
COMMIT WORK.
WRITE: / lv_datab.
WRITE: / lv_datbi.
WRITE: / lv_prdat.
ENDIF.
Weiterführende Infos: Link