K_UNITCOSTING_CREATE ist ein CO-Funktionsbaustein für die Kalkulation mit Mengenstruktur (Unit Costing). Er legt eine neue Kalkulation an, berechnet Material-, Fertigungs- und Gemeinkosten nach den Vorgaben der Kalkulationsvariante und liefert eine Kalkulationsnummer (KALNR) zurück.
Je nach Szenario liest er Stücklisten und Arbeitspläne ein oder verarbeitet übergebene Einzelpositionen. Das Ergebnis wird in den CO-Tabellen abgelegt und kann z. B. in CK13N eingesehen oder programmgesteuert ausgelesen werden. Typisch gibst du Kalkulationsvariante, Datum und das zu kalkulierende Objekt an. Optional übergibst du eigene Positionen. Als Ergebnis bekommst du die KALNR und die berechnete Itemization.
REPORT z_test_k_unitcosting.
PARAMETERS: p_klvar TYPE rk70k-klvar OBLIGATORY,
p_kadat TYPE rk70k-kadat OBLIGATORY,
p_matnr TYPE mara-matnr,
p_werks TYPE t001w-werks,
p_save AS CHECKBOX DEFAULT 'X'. "speichern ja/nein
DATA: lv_kalnr TYPE rk70k-kalnr,
lv_rc TYPE rk70k-rc,
lt_post TYPE STANDARD TABLE OF string, "Dummy für Tabellenparam
lv_subrc TYPE sy-subrc.
CALL FUNCTION 'K_UNITCOSTING_CREATE'
EXPORTING
kuc_rk70k_klvar = p_klvar
kuc_rk70k_kadat = p_kadat
kuc_rk70k_matnr = p_matnr
kuc_rk70k_werks = p_werks
kuc_rk70k_save_flg = COND rk70k-save_flg( WHEN p_save = abap_true THEN 'X' ELSE space )
IMPORTING
kuc_rk70k_kalnr = lv_kalnr
ex_rc = lv_rc
TABLES
kuc_posting = lt_post
EXCEPTIONS
abnormal_end = 1
klvar_not_found = 2
popup_cancelled = 3
no_ref_possible = 4
OTHERS = 5.
lv_subrc = sy-subrc.
IF lv_subrc = 0 AND lv_rc = 0.
WRITE: / 'Kalkulation angelegt. KALNR:', lv_kalnr.
ELSE.
WRITE: / 'Fehler. SY-SUBRC:', lv_subrc, 'RC:', lv_rc.
ENDIF.