Overblog
Folge diesem Blog Administration + Create my blog
SAPManDoo - SAP Resource

Der vorliegende Blog enthält von mir im Laufe meiner beruflichen Tätigkeit als SAP-Berater zusammengetragene Informationen / Beispiel-Codings zum Themenkreis SAP, speziell FI/CO.

Leistungsverrechnung buchen mittels BAPI

Veröffentlicht am 27. August 2014 von sapmandoo in CO

Für die maschinelle Verbuchung von CO-Buchungen stehen neben der Übernahmetransaktion BATCHMAN (vgl. Artikel Übernahme von externen Umbuchungen und statistischen Kennzahlen ins CO ) auch div. BAPIs zur Verfügung. Nachfolgend ein Beispiel für die Verwendung des BAPIs BAPI_ACC_ACTIVITY_ALLOC_POST, mit dem Leistungsverrechnungen (KB21N) gebucht werden können:

 

*&---------------------------------------------------------------------*
*& Report  ZTEST_KB21N_BAPI
*&
*&---------------------------------------------------------------------*
*& Demo-Programm BAPI-Aufruf BAPI_ACC_ACTIVITY_ALLOC_POST
*&                           Leistungsverrechnung (KB21N)
*&---------------------------------------------------------------------*

REPORT ztest_kb21n_bapi.

DATAls_doc_header TYPE bapidochdrp.
DATAlt_doc_items  TYPE TABLE OF bapiaaitm,
      ls_doc_item   TYPE bapiaaitm,
      lt_return     TYPE TABLE OF bapiret2.
DATAls_docno      TYPE bapidochdrp-doc_no.

* Belegkopf
ls_doc_header-co_area     '1000'.         "Kostenrechnungskreis
ls_doc_header-docdate     sy-datum.       "Belegdatum
ls_doc_header-postgdate   sy-datum.       "Buchungsdatum
ls_doc_header-doc_hdr_tx  'Demo'.         "Belegkopftext
ls_doc_header-username    sy-uname.       "User-Name

* Positionen aufbauen
* Pos. 1
ls_doc_item-send_cctr     '0000002047'.   "Sender-Kostenstelle
ls_doc_item-acttype       '8'.            "Leistungsart
ls_doc_item-actvty_qty    3.              "Menge
ls_doc_item-rec_cctr      '0000002013'.   "Empfänger-KST
APPEND ls_doc_item TO lt_doc_items.

* Pos. 2
ls_doc_item-send_cctr     '0000002047'.
ls_doc_item-acttype       '8'.
ls_doc_item-actvty_qty    10.
ls_doc_item-rec_cctr      '0000002004'.
APPEND ls_doc_item TO lt_doc_items.

* BAPI rufen
CALL FUNCTION 'BAPI_ACC_ACTIVITY_ALLOC_POST'
  EXPORTING
    doc_header      ls_doc_header
*   IGNORE_WARNINGS = ' '
  IMPORTING
    doc_no          ls_docno
  TABLES
    doc_items       lt_doc_items
    return          lt_return
*   CRITERIA        =
*   CUSTOMER_FIELDS =
  .

* COMMIT nicht vergessen!
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

* Meldungen ausgeben
IF lt_return[] IS NOT INITIAL.
  CALL FUNCTION 'C14ALD_BAPIRET2_SHOW'
    TABLES
      i_bapiret2_tab lt_return.
ENDIF.

Kommentare