Massenlöschung von Kostenstellen
Mithilfe der KS04 lassen sich Kostenstellen löschen. Blöd nur, dass dabei immer nur eine spezifiziert werden kann und man aber z.B. 100 fehlerhaft angelegt (noch nicht bebuchte!) KST löschen will.
Anbei ein kleines Programm, welches sich des BAPIs BAPI_COSTCENTER_DELETEMULTIPLE bedient. Der Baustein durchläuft dabei die gleichen Prüfungen, die auch beim Löschen im Dialog (KS04) ausgeführt werden. Entsprechend lange wird die Laufzeit sein.
REPORT Z_KS04_MEHR_ALS_EINE.
* Löschen von mehreren Kostenstellen
TABLES: CSKS.
DATA: LT_CLIST TYPE TABLE OF BAPI0012_CCDELLIST.
DATA: LT_RETURN TYPE BAPIRET2_TAB.
PARAMETERS: pa_kokrs like csks-kokrs obligatory.
SELECT-OPTIONS: so_kostl for csks-kostl.
* hier ggf. noch weitere Selektionskriterien einfügen...
START-OF-SELECTION.
SELECT * FROM CSKS INTO CORRESPONDING FIELDS OF TABLE LT_CLIST
WHERE kokrs = pa_kokrs
AND kostl in so_kostl.
CALL FUNCTION 'BAPI_COSTCENTER_DELETEMULTIPLE'
EXPORTING
controllingarea = pa_kokrs
testrun = 'X' "TESTLAUF-Kz. raus, wenn's ernst wird
TABLES
COSTCENTERLIST = lt_clist
return = lt_return
EXCEPTIONS
error_message = 1.
IF SY-SUBRC <> 0.
MESSAGE 'Mind. eine KST muckt auf, Details s. Protokoll'.
ENDIF.
* Ausgabe Meldungen
CALL FUNCTION 'C14ALD_BAPIRET2_SHOW'
TABLES
i_bapiret2_tab = lt_return.
/image%2F1473637%2F20170207%2Fob_adae32_profilbild.png)