Add-on für SAP ECC 7.4 und S/4

SAP weiß, wo die Daten stehen. Die Cloud weiß, wie eine E-Rechnung aussehen muss.

Dazwischen liegt genau eine Datei: das Mapping. Es sagt SAP, was zu lesen ist, und der API, was daraus zu rechnen ist. Dieselbe Datei, zwei Leser — damit wird Fachlichkeit nicht zweimal gepflegt.


8

fertige Mappings — SD-Faktura, MRRL, MRNB, MRIS, MIRO, MRKO, FB70, FB60

4

Quellarten im Mapping: Tabelle, Struktur, Text, Archivdokument

0

User-Exits für kundeneigene Z-Tabellen und Z-Felder — die Quelle steht im Mapping, nicht im Code

7.4

ECC-Mindeststand — kein S/4-Zwang, kein Releasewechsel


Die Leitidee

Ein Anker, ein Auslöser, ein Weg.

In SAP entsteht ein gebuchter Beleg. Ein festes ABAP-Konstrukt liest dazu genau die Daten, die das Mapping benennt, und schickt sie als XML an die API. Die API baut daraus die E-Rechnung, prüft sie, erzeugt das PDF und versendet sie. SAP bekommt den Status zurück.

Doc-text Doc-text

Der gebuchte FI-Beleg

Grundlage ist ein Satz in BKPF. Vorher gibt es nichts zu versenden, danach steht der Beleg fest. Alle Mappings haben dieselbe Kopfquelle — ein Einstiegspunkt statt ein Sonderweg je Modul.

Clock Clock

Delta-Lauf statt Buchungs-Event

Ein Hintergrundjob liest BKPF über den Erfassungszeitpunkt. Das hängt an der Tabelle, nicht am Buchungsweg: Dialog, Batch-Input, BAPI, IDoc und Fremdentwicklung verhalten sich gleich.

Check Check

Ausschluss statt Erlaubnis

Es gibt keine Liste „wer bekommt eine E-Rechnung“, sondern nur eine Liste der Ausnahmen — mit Grund und Gültigkeit. Kein gebuchter Beleg fällt still durch.


Der Weg eines Belegs

Vom Buchungssatz bis ins Archiv.

RFC-Destination (SM59) · Übergabe-XML

Rückgabe: XML · PDF · Befund · Zustellstatus

Zurück in SAP

ArchiveLink
XML und PDF am FI-Beleg

Protokoll
lückenlos fortgeschrieben

Cockpit
Fehler fallen sofort auf

In der Cloud oder im eigenen Haus

Mapping anwenden
Regelbaum, Umsetzungen

Neutrales Modell
BT-Felder nach EN16931

Prüfen und erzeugen
KoSIT · XML · PDF/A-3

Versand
Peppol · Mail · Portal

In SAP · ECC 7.4 und höher

Gebuchter Beleg
BKPF

Delta-Lauf
Erfassungszeitpunkt

Warteschlange
Status je Beleg

Sammler
Pfade · Texte · Archiv

Übergabe-XML
Rohsätze im SAP-Format

Die Trennlinie liegt bewusst nicht bei „ABAP dumm, API klug“. Sie liegt dort, wo sich Dinge ändern: Formatversionen und Regelwerke in der Cloud, Tabellen und Zugriffe in SAP.

Arbeitsteilung

ABAP liest. Die Cloud rechnet.

Das tut der SAP-Teil

  • Beleg auswählen und zuordnen
  • Zugriffspfade des Mappings auswerten
  • Sätze, Langtexte und Archivdokumente lesen
  • Übergabe-XML bauen und senden
  • Kennungen formal prüfen — ohne Netz
  • Status und Rückläufer zurückschreiben

Das tut er ausdrücklich nicht

  • Belegtyp ermitteln
  • Steuerkategorie bestimmen
  • Vorzeichen drehen, Datum umformatieren
  • Codes umsetzen, Summen prüfen
  • XML der Zielformate erzeugen
  • Rec-20-Katalog und Codelisten pflegen

Ein Wechsel von XRechnung 3.x auf 4.x fasst SAP damit nicht an.


Das Mapping

Eine Datei, zwei Leser.

Die Mapping-Datei enthält zwei Arten von Aussagen, und beide werden gebraucht. Wo stehen die Daten? — das liest ABAP. Was wird daraus? — das rechnet die API.

Eine neue Quelle, etwa eine weitere Z-Tabelle, ist damit eine Mapping-Änderung und kein Transport. Das ABAP-Konstrukt wertet das Mapping zur Laufzeit aus; es erzeugt keinen Code. Kundeneigene Z-Felder auf Standardtabellen kommen als Ergänzungsdatei dazu, ohne die mitgelieferte Bibliothek anzufassen.

source   RBKP → RSEG   on BELNR, GJAHR
repeat   RSEG          je Position
text     VBBK / BELEG  Kopftext
document BKPF · ZENLIEF  Beilage im PDF

BT-3     wenn XRECH = X dann 381 sonst 380
BT-95    Steuerkennzeichen → Kategorie

Ein Mapping, vollständig

Zwei Dutzend Tabellen, ein Bild.

Das Folgende ist keine Skizze, sondern ein ausgeliefertes Mapping: die automatische Wareneingangsabrechnung. Dieselben Zugriffspfade, die sonst als Liste von Schritten dastehen, hier als Zusammenhang. Die Daten dafür sind ohnehin vorhanden — jeder Pfad kennt Ausgangspunkt, Zieltabelle und Verknüpfungsfelder.

FI-Beleg (MRRL) → EN 16931. Ausgangspunkt links ist der gebuchte Buchhaltungsbeleg BKPF. Jede Kante trägt die Verknüpfungsfelder, jeder Knoten die BT-Nummern, die er füllt: über RBKP und LFA1 nach ADRC für die Anschrift des Rechnungsstellers, über RSEG weiter nach EKPO, MARC und MKPF für Bestellbezug, Werk und Wareneingangszeitraum, über BSET zu den Steuerzeilen. Rund zwei Dutzend Tabellen und knapp dreißig Pfade — und keine Zeile Code. Wer ein Feld ergänzen will, ergänzt einen Pfad.


Was das kostet

Eine weitere Z-Tabelle kostet keinen User-Exit.

Das ist der Punkt, an dem sich die Bauweise in Geld ausdrückt. In einer klassischen Anbindung ist jede zusätzliche Datenquelle eine Erweiterung im Code — und Erweiterungen kosten nicht einmal, sondern bei jedem Releasewechsel wieder.

Klassisch

Neue Quelle = User-Exit

  • Entwicklungsauftrag und Aufwandsschätzung
  • Änderung im Kundennamensraum, Transport durch alle Systeme
  • Test, Abnahme, Dokumentation
  • bei jedem Releasewechsel erneut zu prüfen
  • Entwicklerberechtigung im Produktivsystem nötig

Preis: Beratertage. Je Feld.

Mit dem Add-on

Neue Quelle = eine Zeile im Mapping

  • Eintrag im Mapping Studio, fertig
  • keine ABAP-Änderung, kein Transport
  • keine Entwicklerberechtigung, Customizing genügt
  • releasefest, weil der Interpreter unverändert bleibt
  • kundeneigene Z-Felder auf Standardtabellen kommen als Ergänzungsdatei dazu

Preis: Minuten. Im eigenen Haus.

Der Grund dafür steckt in einer einzigen Entscheidung: Das ABAP-Konstrukt wertet das Mapping zur Laufzeit aus — es erzeugt keinen Code. Ein Codegenerator würde für jede Mapping-Änderung wieder Transport, Syntaxprüfung und Entwicklungsberechtigung verlangen. Der Interpreter wird einmal installiert, danach ist jede weitere Quelle Customizing.


Vier Quellarten

Alles deklarativ, nichts programmiert.

Tabelle
Der Normalfall. Lesezugriff mit den Bedingungen des Pfades — zur Laufzeit aufgelöst, nicht generiert.
Struktur
Die Daten kommen aus einem Baustein, etwa der SD-Fakturaausgabe. Der Sammler liest dann nicht, sondern übernimmt.
Text
Langtexte aus MM und SD sowie Standardtexte sind Funktionsaufrufe, keine Tabellenzugriffe. Der Textname wird als Muster aus Belegfeldern beschrieben.
Dokument
Über ArchiveLink werden Zeitnachweise, Lieferscheine und Zeichnungen aus dem Archiv geholt — je Quelle mit Verwendung, Größen- und Typgrenze.

Anhänge

Beilage oder Anhang — das ist zweierlei.

Im XML · BG-24

Teil des Belegs

Der Empfänger bekommt es zwangsläufig mit. Dafür gelten Formatgrenzen: XRechnung lässt nur bestimmte Dateitypen zu, ein TIFF aus dem Scanarchiv ist nicht zulässig, und die Größe geht voll in die Nachricht ein.

Im PDF

Teil des Sichtbilds

Die Seiten werden an das Sichtbild angehängt — kein Formatzwang, keine Größengrenze der Nachricht. Empfehlung als Voreinstellung; der Anhang im XML nur, wenn der Empfänger ihn verlangt.

Größe und Anzahl werden geprüft, bevor gesendet wird. Sonst entstehen Ablehnungen, deren Ursache erst am Ende der Kette sichtbar wird.


Kennungsprüfung

Fehler dort verhindern, wo sie entstehen.

In den Stammdaten. Eine falsche USt-IdNr. kommt gar nicht erst ins System — formal sofort beim Sichern, inhaltlich auf Knopfdruck.

Formal · offline · in ABAP

Reine Arithmetik

IBAN, BIC-Form, GLN und GTIN, DUNS, Leitweg-ID, SEPA-Gläubiger-ID, USt-IdNr.-Muster je Land. Kein Netz, kein Datenschutzthema, in Millisekunden — und auch dann, wenn die API nicht erreichbar ist.

Inhaltlich · online · über die API

Existiert die Nummer wirklich?

USt-IdNr. über VIES, LEI über GLEIF, SIRET über Sirene, Peppol-Teilnehmer über SML/SMP. Eine Online-Prüfung, die in ein Timeout läuft, führt nie zu einem Fehler — nur zu „nicht prüfbar“.

Abfragenummer und Zeitstempel werden archiviert, nicht nur das Ergebnis — bei Reverse Charge ist die qualifizierte Bestätigungsabfrage Nachweispflicht, nicht Kür.


Eigene Prüfregeln

„Formal gültig“ heißt nicht „für uns in Ordnung“.

Das offizielle Regelwerk prüft Struktur und Rechenwerk. Ob die Rechnung Ihren eigenen Anforderungen genügt, prüft es nicht — und ein Teil der Pflichtangaben aus § 14 UStG fällt schlicht durch, weil das Feld im Standard optional ist.

Doc-text Doc-text

Die Lücken des Standards

Leistungszeitpunkt, vollständige Anschrift, Steuernummer oder USt-IdNr., handelsübliche Bezeichnung, der Wortlaut bei Steuerbefreiung — im Standard alles optional oder gar nicht geprüft.

Vcard Vcard

Abgleich mit Ihren Stammdaten

Firmierung, Anschrift, gültige Bankverbindung, Nummernkreise. Im Rechnungseingang: Wird bei Lastschrift wirklich Ihr Konto belastet?

Cw Cw

Ohne das Szenario zu verbiegen

Eigene Regeln kommen als getrennte Ressource dazu. Ein Formatwechsel bleibt ein Dateitausch, und im Bericht ist am ID-Präfix erkennbar, woher ein Befund stammt.


Sichtbarkeit

Das Cockpit ist kein Zubehör.

List List

Jeder Beleg endet in einem Endstatus

Neu, ausgeschlossen, gesammelt, gesendet, abgelehnt, zugestellt, Fehler, manuell erledigt. Fortgeschrieben, nicht überschrieben.

Info Info

Klartext statt Schematron

Was die Validierung meldet, kommt als erklärter Satz zurück nach SAP — mit Rechtsgrundlage, nicht als Regel-ID.

Archive Archive

XML und PDF am FI-Beleg

Die Rückläufer sind der Beleg. Sie liegen unveränderbar am Geschäftsvorfall — das ist GoBD, nicht Komfort.


Betriebsform

Nicht wo es läuft, sondern was das Haus verlässt.

Dieselbe Schnittstelle läuft an zwei Orten. Der Unterschied ist größer, als er zunächst aussieht — und er liegt nicht im Betriebsort, sondern darin, was die Firewall passiert.

  Cloud Beim Kunden
Extract mit Rohdaten — Bankverbindungen, Anschriften, Belegtexte, Archivdokumente geht nach außen bleibt intern
Erzeugung von XML und PDF außen intern
Validierung außen intern
Was schließlich nach außen geht Rohdaten und Rechnung nur die fertige Rechnung

Im Betrieb beim Kunden verlässt die Rechnung das Haus erst, wenn sie vollständig und geprüft ist — und sie geht dorthin, wohin sie ohnehin geht: zum Empfänger. Damit entfällt die gesamte Diskussion über Auftragsverarbeitung, Datenübermittlung und Aufbewahrung bei Dritten. Es gibt keinen Zwischenschritt, an dem ein Dritter mehr sieht als der Rechnungsempfänger.


Drei Wege

Cloud, im Haus — oder die Mischform.

Cloud Cloud

Cloud

Der Regelfall. Das Extract geht an die API, die fertige Rechnung kommt zurück. Einrichtung: eine RFC-Destination, fertig.

Lock Lock

Beim Kunden

Dieselben Bausteine, dieselbe Schnittstelle, nur im Haus — als WordPress-Installation oder als Container. Für alle, die Rechnungsdaten nicht herausgeben dürfen.

Flow-branch Flow-branch

Verarbeitung im Haus, Versand über die Cloud

XML und PDF entstehen intern, nur die fertige Rechnung geht an den Zugangspunkt. Für alle, die Peppol nicht selbst betreiben, aber die Rohdaten behalten wollen — im gehobenen Mittelstand vermutlich der häufigste Fall.

Auch im eigenen Haus gibt es drei Verbindungen nach außen, und für jede gibt es eine Antwort:

Peppol-Versand
Ein Zugangspunkt ist per Definition außen. Unvermeidlich — aber es geht nur die fertige Rechnung dorthin.
Online-Kennungsprüfung
Abfragen an VIES, GLEIF oder das Teilnehmerverzeichnis lassen sich abschalten. Die formale Prüfung läuft ohne Netz weiter.
Regelwerke und Codelisten
Formatversionen und Steuersätze kommen als Download-Paket. Die Richtung ist umgekehrt, es fließen keine Daten ab.

Welche Variante passt zu Ihrem Haus?

Das hängt an drei Fragen: Dürfen Rechnungsdaten das Haus verlassen, betreiben Sie Peppol selbst, und wie ist Ihr Archiv eingerichtet. Mehr braucht es für ein erstes Gespräch nicht.