Anleitungen

SAP R/3 vorbereiten: Rechnungsübernahme per LSMW

Was im SAP R/3 einzurichten ist, damit die aus Amagno erzeugte Übergabedatei über die Legacy System Migration Workbench als Kreditorenbeleg gebucht wird.

Bei diesem Weg erzeugt Amagno je Export eine flache Textdatei mit einer Zeile je Kontierungszeile. SAP verarbeitet sie über die Legacy System Migration Workbench (Transaktion LSMW) mit dem Standardprogramm RFBIBL00. Es wird nichts programmiert — die Zuordnung entsteht einmalig im LSMW-Projekt und wird danach nur noch ausgeführt.

Wann dieser Weg passt

Die Übernahme per LSMW ist der pragmatische Weg: Sie kommt ohne ALE-Kopplung aus, braucht keine Ports und keine Partnervereinbarungen, und die Datei lässt sich vor dem Einlesen im Klartext prüfen. Wer stattdessen eine dauerhaft automatisierte Schnittstelle möchte, findet den zweiten Weg unter „SAP R/3 vorbereiten: Buchhaltungsbeleg per IDoc".

Voraussetzungen

  • Das Programm RFBIBL00 ist im System freigegeben. Ist es das nicht, entfällt dieser Weg und es bleibt die IDoc-Variante.
  • Berechtigung für die Transaktion LSMW sowie Buchungsberechtigung im Zielbuchungskreis (Objekt F_BKPF_BUK).
  • Ein Übergabeordner, auf den sowohl Amagno schreiben als auch SAP lesen kann (FTP-Ablage oder ein vom Anwendungsserver erreichbares Verzeichnis).
  • Die Kreditorenstammsätze existieren bereits — die Übernahme legt keine Stammdaten an.

Schritt 1: Projekt, Teilprojekt und Objekt anlegen

In LSMW die dreistufige Hierarchie anlegen. Bewährt hat sich eine sprechende Benennung, weil sie in allen Folgeschritten wieder auftaucht:

ProjektZDMS_INT – Schnittstellen aus dem Dokumentenmanagement
TeilprojektZFI_INV – Eingangsrechnungen
ObjektZINV_FLAT – flache Übergabedatei

Schritt 2: Einleseverfahren festlegen

Im ersten LSMW-Schritt („Objektattribute pflegen") wird gewählt:

  • Verfahren: Standard Batch/Direct Input
  • Objekt: 0100 (Buchhaltungsbeleg)
  • Methode: RFBIBL00

Schritt 3: Quellstruktur und Quellfelder

Es wird genau eine Quellstruktur angelegt, zum Beispiel ZINV_FLAT. Das ist der wesentliche Vorteil dieses Formats: keine Strukturbeziehungen, keine Sortierfallen, keine Kontrolldatei. Die Datei enthält die Spaltennamen in Zeile 1, sodass LSMW die Quellfelder in Schritt 3 direkt übernehmen kann.

Die Datei liefert diese Felder — Bezeichner entsprechen den SAP-Feldnamen:

BUKRSBuchungskreisPflicht
LIFNRKreditorPflicht
XBLNRRechnungsnummer des LieferantenPflicht
BLDATBelegdatum (JJJJMMTT)Pflicht
BUDATBuchungsdatum (JJJJMMTT)Pflicht
BLARTBelegart, in der Regel KRPflicht
WAERSWährungPflicht
WRBTR_BRUTTOBruttobetrag des BelegsPflicht
ZTERMZahlungsbedingungoptional
ZFBDTBasisdatumoptional
HKONTSachkonto der KontierungszeilePflicht
SHKZGSoll/Haben-Kennzeichen (S oder H)Pflicht
WRBTR_POSPositionsbetrag nettoPflicht
MWSKZSteuerkennzeichenPflicht
KOSTLKostenstelleoptional
AUFNRInnenauftragoptional
PS_PSP_PNRPSP-Elementoptional
SGTXTPositionstextoptional
DMS_LINKRückverweis auf den Beleg in Amagnooptional

Wichtig: KOSTL, AUFNR und PS_PSP_PNR schließen sich fachlich aus — je Zeile darf nur eine Kontierungsart gefüllt sein. Mehrfachkontierung quittiert SAP mit einer wenig aussagekräftigen Meldung.

Schritt 4: Feldzuordnung und Belegwechsel

Weil jede Zeile eine Buchungszeile ist und sich die Belegdaten wiederholen, muss das Feldmapping erkennen, wann ein neuer Beleg beginnt. Das übernimmt im Schritt „Feldzuordnung und Umsetzungsregeln pflegen" die Anweisung:

ON CHANGE OF ZINV_FLAT-XBLNR

Der Kopfsatz BBKPF wird nur beim Wechsel der Rechnungsnummer erzeugt, die Positionssätze BBSEG für jede Zeile. Voraussetzung ist, dass die Datei nach XBLNR sortiert ist — bei aktivierter Splittbuchung ist das automatisch der Fall, weil alle Zeilen eines Belegs zusammenhängend geschrieben werden.

Beträge werden immer ohne Vorzeichen geliefert; die Richtung trägt ausschließlich SHKZG. Bei einer Gutschrift steht dort H und ein positiver Betrag.

Schritt 5: Dublettenschutz

Damit ein wiederholter Lauf keine doppelten Verbindlichkeiten erzeugt, im Feldmapping zu BKPF-XBLNR folgendes Coding hinterlegen:

SELECT SINGLE belnr INTO lv_belnr FROM bkpf
  WHERE bukrs = ZINV_FLAT-bukrs
    AND xblnr = ZINV_FLAT-xblnr
    AND gjahr = ZINV_FLAT-bldat(4).
IF sy-subrc = 0.
  SKIP_TRANSACTION.     "bereits gebucht
ENDIF.

Genau deshalb ist XBLNR ein Pflichtfeld: Es ist der fachliche Schlüssel, an dem SAP eine bereits gebuchte Rechnung wiedererkennt.

Schritt 6: Datei einlesen

In den Schritten „Dateien pflegen" und „Dateien Quellstrukturen zuordnen" wird die Übergabedatei hinterlegt. Einzustellen sind:

  • Trennzeichen: Tabulator
  • Feldnamen in der ersten Zeile: ja
  • Zeilenende: CRLF
  • Codepage: UTF-8. Bei einem Non-Unicode-System stellen wir den Export auf ANSI (Windows-1252) um — bitte vorab abstimmen.

Danach die Standardfolge: Daten lesenDaten anzeigenDaten konvertierenKonvertierte Daten anzeigenDaten einlesen. Für den ersten Lauf empfiehlt sich der Batch-Input-Modus mit Anzeige, um die Belege einzeln zu prüfen.

Betrieb und Transport

LSMW-Projekte sind mandantenabhängig und gehören nicht in einen Transportauftrag. Für die Übernahme in ein anderes System bitte Extras → Projekt exportieren verwenden und die Datei versioniert ablegen.

Häufige Fehler

  • Beleg nicht ausgeglichen: Die Summe der Positionsbeträge entspricht nicht dem Bruttobetrag. Meist fehlt eine Kontierungszeile oder die Steuer wird doppelt geliefert.
  • Steuerkennzeichen passt nicht zum Sachkonto: Die Steuerfindung im Buchungskreis prüfen.
  • Belege werden zusammengefasst: Die Datei ist nicht nach XBLNR sortiert, dadurch greift ON CHANGE OF falsch.
  • Umlaute verstümmelt: Codepage der Datei und des Systems stimmen nicht überein.

Frage nicht beantwortet?

Unser Support hilft Ihnen persönlich weiter – ohne Ticketsystem, direkt mit dem Team.

Kontakt aufnehmen →