Kurzanleitung zum Buchen von MM-Eingangsrechnungen

enaio® data2s 11.0 »

Das Vorerfassen und Buchen von Eingangsrechnungen kann fachlich sehr komplex werden, daher kann diese Kurzanleitung nur einen Überblick über die prinzipielle Vorgangsweise geben. Für Beratungen zum konkreten Einsatz und Fragen der Übergabe weiterer Buchungsinformationen ist ein Beratungskontingent bei Bedarf bei OPTIMAL SYSTEMS erhältlich.

Zum Buchen von MM-Eingangsrechnungen dient das BAPI BAPI_INCOMINGINVOICE_CREATE. Nach erfolgreichem Aufruf muss zusätzlich BAPI_TRANSACTION_COMMIT aufgerufen werden um den erfassten Beleg auch wirklich in der Datenbank zu speichern.

Der von OPTIMAL SYSTEMS bereitgestellte Baustein /OSGMBH/D2S_INCOMINV_CREATE fungiert als Wrapper um beide Aufrufe. Die Schnittstelle ist mit der von BAPI BAPI_INCOMINGINVOICE_CREATE nahezu identisch. Es kommt lediglich ein weiterer Rückgabeparameter 'RC' hinzu, der mit den Werten '0' bzw. '8' Erfolg oder Misserfolg der Buchung kennzeichnet.

Das BAPI muss mit den Kopfdaten der Rechnung und 1-n Positionsdaten versorgt werden.

Die Kopfdaten werden im Parameter HEADERDATA übergeben. Für die Positionen ist der Tabellenparameter ITEMDATA vorgesehen.

Beispiel für den Einsatz mittels VBA-Code:

DIM Param
SET HeaderData = CreateObject("Scripting.Dictionary")
Param = CreateObject("Scripting.Dictionary")
HeaderData("INVOICE_IND") = "X"            'KZ_ Rechng.buchen(n. Gutschrift)
HeaderData("DOC_TYPE") = "RE"              'Belegart
HeaderData("DOC_DATE") = "13.04.2018"      'Re.datum
HeaderData("PSTNG_DATE") = "13.04.2018"    'Buchungsdatum
HeaderData("REF_DOC_NO") = "REF123"        'Referenz / Re.nr. des Lieferanten
HeaderData("COMP_CODE") = "1000"           'Buchungskreis
HeaderData("DIFF_INV") = "0000001000"      'Kreditorennummer
HeaderData("CURRENCY") = "EUR"             'Währung
HeaderData("GROSS_AMOUNT") = "119,00"      'Bruttobetrag
HeaderData("EXCH_RATE") = "1,00"           'Preisnotierter Umrechnungskurs
HeaderData("PMNTTRMS") = "ZB01"            'Zahlungsbed.schlüssel
HeaderData("BLINE_DATE") = "13.04.2018"    'Zahlungsfristenbasisdatum
HeaderData("DSCT_DAYS1") = "14"            'Skontofrist 1
HeaderData("HEADER_TXT") = "Kopftext"      'BKTXT
HeaderData("ITEM_TEXT") = "Positionstext"  'SGTXT
HeaderData("DEL_COSTS") = "0,00"           'ungepl. Bezugsnebenkosten
' Kopfdaten zu Parameterobjekt hinzufügen
Param.Add "HEADERDATA",HeaderData

' Array für Positionsdaten der EK-Rechnung erzeugen
DIM IData(0) ' beginnend mit 0
SET Entry = CreateObject("Scripting.Dictionary")
' Position 1 füllen
Entry("INVOICE_DOC_ITEM") = "000001"       'Belegposition im Rechnungsbeleg
Entry("PO_NUMBER") = "4500017550"          'Bestellnummer
Entry("PO_ITEM") = "00010"                 'Bestellpos.
Entry("TAX_CODE") = "VA"                   'Steuerkz. (falls leer: aus Best. übernommen)
Entry("ITEM_AMOUNT") = "75,00"             'Betrag (netto)
Entry("QUANTITY") = "1"                    'Menge
Entry("PO_UNIT") = "ST"                    'Einheit
' Position in Array anhängen
SET IData(0) = Entry
' Positionen zu Parameterobjekt hinzufügen
Param.Add "ITEMDATA",IData

Das BAPI liefert Statusmeldungen im Tabellenparameter RETURN zurück. Der Aufbau entspricht dem der FI-Rechnungen. Die Belegnummer der erzeugten Rechnung wird über die beiden Parameter INVOICEDOCNUMBER und FISCALYEAR zurückgegeben.