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.