Das SAP-Add-on

Ein Add-on, das nie kundenspezifisch wird.

Sammler, Tabellen, Auslöser, Cockpit, Mailversand und die formale Kennungsprüfung — alles davon läuft ohne Cloud und ohne Entwicklung beim Kunden. Was sich je Kunde unterscheidet, steht im Mapping und in vier Customizing-Tabellen.


Auslösung

Der Delta-Lauf ist der primäre Weg, nicht der Rückfall.

Der naheliegende Weg wäre ein Buchungs-Event. Die Prüfung der Kandidaten fällt aber durchweg negativ aus: Die einschlägigen Ereignisse laufen entweder vor der Belegnummernvergabe, feuern nur bei einem Teil der Transaktionen oder sind gar keine Buchungsereignisse. Für die Konsignationsabrechnung greifen sie ohnehin nicht, weil dort kein MM-Beleg entsteht.

Ein Hintergrundjob liest deshalb BKPF über den Erfassungszeitpunkt und schreibt neue Belege in die Warteschlange. Das ist kein Behelf, sondern der robustere Weg.

Database Database

Hängt an der Tabelle

Dialog, Batch-Input, BAPI, IDoc und Fremdentwicklung verhalten sich gleich — der Lauf sieht den Beleg, nicht den Weg dorthin.

Check Check

Nummer ist vergeben

Der Beleg ist verbucht. Kein Sonderfall, kein Nachfassen, keine Buchung, die auf eine API wartet.

Wiederholbar

Für Erstbefüllung und Nachverarbeitung braucht es kein zweites Programm. Der Preis ist Latenz in Höhe des Jobintervalls — für den Rechnungsversand unerheblich.

Zwei Fallstricke sind eingeplant: Der Erfassungszeitpunkt ist nicht der Commit, deshalb liest der Lauf mit Überlappungsfenster und entdoppelt gegen die Warteschlange. Und die Delta-Marke steht in einer Tabelle, nicht im Jobparameter — sonst geht sie bei einem Abbruch verloren.


Der Sammler

Zehn Schritte je Beleg.

  1. Zuordnungwelches Mapping gilt für diesen Beleg, nach Priorität.
  2. Plausibilitätpasst der Auslöseblock des Mappings zum Beleg? Wenn nicht, ist das ein Fehler in der Zuordnung.
  3. AusschlussTreffer in der Ausnahmeliste? Dann Endstatus mit Grund.
  4. Kopf lesender FI-Belegkopf.
  5. Zugriffspfade auflösenje Pfad die Schritte in Reihenfolge, Bedingungen aus den bereits gelesenen Sätzen.
  6. Wiederholungendie Positionsmenge lesen.
  7. Pfade je Positionhier greift die Mengenregel: lesen statt schleifen.
  8. TexteLangtexte über die Standardbausteine.
  9. DokumenteArchivverknüpfungen lesen, Inhalte holen, Größe und Typ prüfen.
  10. XML bauen und sendenüber die konfigurierte Destination.

Eigene Tabellen

Vier für das Customizing, drei für den Betrieb.

Mappings
Mapping-Dateien versioniert ablegen. Ohne Versionierung ist später nicht erklärbar, warum eine Rechnung damals so aussah.
Zuordnung
Welches Mapping für welchen Beleg — nach Buchungskreis, Transaktion, Herkunftsart und Belegart, mit Gültigkeit und Priorität. Leere Schlüsselfelder heißen „alle“.
Ausnahmen
Partner, Belegart, Buchungskreis oder Einzelbeleg. Grund und Gültigkeit sind Pflicht, nicht optional.
Verbindung
Zielprofil und Testkennzeichen je Buchungskreis. Keine URL und keine Zugangsdaten in der Tabelle — die stehen in der RFC-Destination.
Delta-Marke
Letzter gelesener Zeitstempel je Buchungskreis, fortgeschrieben erst nach einem vollständigen Lauf.
Warteschlange
Beleg, Status, Mapping und Version, Zeitpunkte, Fehlertext, Cloud-Referenz, Zustellstatus. Warteschlange und Protokoll in einem.
Mailvorlagen
Betreff und Rumpf je Buchungskreis, Belegtyp und Sprache, mit Absender und Anhangsteuerung.

Das Cockpit

Ohne Sichtbarkeit funktioniert Ausschluss statt Erlaubnis nicht.

Ein Report macht den gesamten Vorgang sichtbar: oben der Beleg, darunter Statushistorie, Anhänge und Rückläufer. Auswahl nach Buchungskreis, Datum, Status, Belegart, Partner und Mapping; gespeicherte Varianten für den Alltag — offene Fehler, heute versendet, nicht zugestellt.

XML und PDF anzeigen
Rückläufer aus dem Archiv holen und im Standardviewer darstellen.
Befund anzeigen
Klartext statt Schematron-Rohtext — mit Rechtsgrundlage.
Anhänge anzeigen
Welche Archivdokumente beigefügt wurden — und welche nicht, mit Grund.
Erneut senden
Nach Korrektur, mit neuer Protokollzeile. Die alte bleibt stehen.
Ausschließen
Eintrag in die Ausnahmeliste mit Grund, direkt aus der Trefferliste.
Manuell erledigt
Endstatus mit Begründung, etwa weil per Post versendet wurde.

Berechtigungen sind getrennt: „Erneut senden“ und „Ausschließen“ sind nicht dieselbe Rolle wie „Anzeigen“. Und das Cockpit ersetzt keine Überwachung — ein Job schickt die Fehlerliste an einen Verteiler, damit Fehler auch dann auffallen, wenn niemand das Cockpit öffnet.


Mailversand

Die Rechnung ist das XML. Die Mail ist nur der Weg.

Empfänger in vier Stufen

  1. Eintrag im E-Rechnungs-Customizing
  2. Standard-Mailadresse des Partners
  3. Sachbearbeiter beim Partner
  4. kein Treffer → Status Fehler, nicht stillschweigend an einen Verteiler

Vorlagen

Auf ECC 7.4 gibt es noch keine Mailvorlagen im Sinne von S/4. Der praktikable Weg sind Standardtexte mit Platzhaltern, je Buchungskreis, Belegtyp und Sprache hinterlegt. Betreff und Rumpf sind getrennte Texte, das XML geht als Anhang mit — nicht als Link.


Im Lieferumfang

Die acht Standard-Mappings.

Jedes davon ist eine fertige Mapping-Datei — kein Gerüst, das erst gefüllt werden muss. Alle acht haben denselben Anker: den gebuchten Beleg in BKPF. Von dort führt der Weg ins jeweilige Vorsystem.

Mapping Abgerechnet wird Weg ins Vorsystem
FI-SD-FAKTURA Faktura aus dem Vertrieb, einschließlich Fakturaplan AWTYP VBRK → VBRK/VBRP
FI-MRRL Automatische Wareneingangsabrechnung (ERS) AWTYP RMRP → RBKP/RSEG
FI-MRNB Nachträgliche Abrechnung von Preisänderungen AWTYP RMRP → RBKP/RSEG
FI-MRIS Abrechnung eines MM-Rechnungsplans — Miete, Leasing, Wartung AWTYP RMRP → RBKP/RSEG, Zeitraum aus FPLT
FI-MIRO Logistik-Rechnungsprüfung AWTYP RMRP → RBKP/RSEG
FI-MRKO Konsignations- und Pipeline-Abrechnung kein Vorsystem → RKWA
FI-FB70 Debitorenrechnung, direkt in FI erfasst kein Vorsystem → BSEG/BSET
FI-FB60 Kreditorenrechnung, direkt in FI erfasst kein Vorsystem → BSEG/BSET

Was „Standard“ hier heißt

Die acht decken die Belegarten ab, die in einem SAP-System tatsächlich zu einer ausgehenden Rechnung führen. Sie sind einsatzfähig, nicht beispielhaft — im Auslieferungszustand entsteht daraus eine versendbare E-Rechnung.

Gutschriftsverfahren

MRRL, MRNB und je nach Belegart auch MIRO, FB60 und FB70 laufen als Gutschriftsverfahren: der Käufer erstellt die Rechnung. Die Rollen Seller und Buyer drehen sich dabei um — das Mapping bringt diese Fallunterscheidung bereits mit.

Ihre Belegart fehlt?

Ein eigenes Mapping ist eine Datei, kein Entwicklungsprojekt. Entweder bauen Sie es im Mapping Studio selbst, oder wir erstellen es — zwei bis fünf Tage je Belegart.


Das Cockpit

Eine Zeile je Beleg. Und darunter, warum.

Der E-Rechnung-Monitor in SAP GUI. Oben die Selektion nach Buchungskreis, Belegdatum, Status, Mapping und Partner. In der Liste steht je Beleg, was passiert ist — neu, gesendet, zugestellt, abgelehnt, nicht zugestellt, manuell erledigt, ausgeschlossen — samt Betrag und verwendetem Mapping. Unten der ausgewählte Beleg mit Verlauf, Befund, Dokumenten und Anlagen. Der Befund der Validierung steht im Klartext: hier fehlt die Leitweg-ID für einen öffentlichen Auftraggeber, und die Quelle laut Mapping ist gleich mit genannt — ZEN_ROUTE-ROUTING_ID für diesen Debitor. Dazu eine Rechenprobe, die um drei Cent über der Toleranz liegt. Das ist der Unterschied zwischen einer Fehlermeldung und einer Arbeitsanweisung.


Der Kern

ABAP, das nicht neu geschrieben wird.

Auszug aus dem Interpreter. Klassisches ABAP für ECC 7.4 — keine Inline-Deklarationen, kein @-Escaping, damit es auch auf älteren Ständen übersetzt. Die Klasse wertet einen Zugriffspfad aus der Mapping-Datei aus: Schritt für Schritt eine Tabelle lesen, die WHERE-Bedingung dabei aus den bereits gelesenen Sätzen füllen. Der Regelbaum wird hier bewusst nicht ausgewertet — das macht die API. Genau deshalb ändert ein Formatwechsel von XRechnung 3.x auf 4.x an diesem Baustein nichts.


Wie sieht das in Ihrem System aus?

Welche Belegarten bei Ihnen als Gutschriftsverfahren gelten und wie Ihr Archiv eingerichtet ist, klären wir am besten im Gespräch.