Code: Alles auswählen.
FORM kosten_buchen.
DATA: p_vrgng TYPE cosp-vrgng.
LOOP AT i_werte_c INTO wa_werte_c. " mit EBELN
CLEAR wa_werte_bu.
MOVE-CORRESPONDING wa_werte_c TO wa_werte_bu.
COLLECT wa_werte_bu INTO i_werte_bu . " ohne EBELN
ENDLOOP.
CLEAR: i_rku01_cur.
i_rku01_cur-wtg_man = 'X'. "Transaktionswährung
i_rku01_cur-wtf_man = 'X'.
LOOP AT i_werte_bu INTO wa_werte_bu.
REFRESH itrku01ja.
CLEAR itrku01ja.
MOVE-CORRESPONDING wa_werte_bu TO itrku01ja. "#EC ENHOK
IF itrku01ja-kstar(7) = '0000925'. "Sekundärkostenart
p_vrgng = 'RKP8'.
ELSE.
p_vrgng = 'RKP1'.
ENDIF.
itrku01ja-lednr = '00'.
itrku01ja-twaer = 'EUR'. " planned in transaction value
itrku01ja-fcwkg = '1'. "COKP >> Verteilungsschl. Plankosten ges.
itrku01ja-fcwkf = '1'. "COKP >> Verteilungsschl. Plankosten fix
itrku01ja-fcwkv = '1'. "COKP >> Verteilungsschl. Plankosten var.
itrku01ja-fcmeg = '1'. "COKP >> Verteilungsschl. Planmenge ges.
itrku01ja-fcmef = '1'. "COKP >> Verteilungsschl. Planmenge fix.
itrku01ja-fcmev = '1'. "COKP >> Verteilungsschl. Planmenge var.
* " >> T821S-SPRED = 1 >> gleichm. Verteilung
APPEND itrku01ja.
CALL FUNCTION 'MESSAGES_INITIALIZE'.
CALL FUNCTION 'K_COSTS_PLAN_INTERFACE_PERIOD' "#EC *
EXPORTING
* bltxt = ' '
commit = 'X'
* delta = ' '
gjahr = pa_gjahr
kokrs = '1000'
messages_show = ' ' "FB gibt Fehler am Ende selbst aus
perab = 001
perbi = 012
update_values = 'X' "vorhandene Sätze überschreiben
versn = '300'
vrgng = p_vrgng
irku01_cur = i_rku01_cur
testmode = p_test
keep_twaer = 'X'
TABLES
irku01ja = itrku01ja
EXCEPTIONS
messages_occured = 1
OTHERS = 2.
PERFORM read_messages USING wa_werte_bu-msgv1 wa_werte_bu-txtnr
wa_werte_bu-fehler wa_werte_bu-msgty.
IF wa_werte_bu-fehler IS INITIAL.
CLEAR wa_werte_buch.
MOVE-CORRESPONDING wa_werte_bu TO wa_werte_buch.
APPEND wa_werte_buch TO i_werte_buch.
COMMIT WORK AND WAIT. "and wait >> um Verbuchung abzuwarten
ELSE.
CLEAR wa_werte_err.
MOVE-CORRESPONDING wa_werte_bu TO wa_werte_err.
APPEND wa_werte_err TO i_werte_err.
ENDIF.
ENDLOOP.
ENDFORM. " KOSTEN_BUCHEN