Architektur & Datenfluss
Systemlandschaft, Datenfluss und Verantwortlichkeiten im Überblick.
Systemlandschaft
Die Bilendo SAP Integration operiert in drei Zonen:
Zone 1: SAP ERP
Das Quellsystem. Hier werden Stammdaten (KNA1/KNB1), offene Posten (BSID), ausgeglichene Posten (BSAD) und optional Aufträge (VBAK/VBAP) gelesen und als flache TXT-Dateien auf den SAP-Applikationsserver geschrieben.
Beteiligte SAP-Module: FI-AR (Accounts Receivable), optional FI-GL und SD (Sales & Distribution).
Zone 2: Middleware / Datentransport
Dateien werden vom SAP-Applikationsserver per SFTP an Bilendo übertragen. Typische Middleware-Optionen:
| Middleware | Einsatzkontext |
|---|---|
| SAP CPI (Cloud Platform Integration) | S/4HANA Cloud, BTP-Umgebungen |
| Seeburger BIS | On-Premise EDI/EAI |
| Lobster Integration | On-Premise, hybride Szenarien |
| CLI / Cron-basierter SFTP | Minimalvariante, z. B. via sftp oder scp |
Zone 3: Bilendo
Die SaaS-Plattform liest die Dateien vom SFTP-Server ein und verarbeitet sie. Bilendo stellt seinerseits CSV-Dateien für die Rückintegration bereit.
Datenfluss: Export (SAP → Bilendo)
SAP-Tabellen SAP Applikationsserver Bilendo SFTP Bilendo
───────────── ────────────────────── ──────────── ───────
KNA1/KNB1 ─┐
├─ ZCL_FI_BILENDO_ASSIST_V2
BSID ─┤ ↓
│ get_kna1() → kna1_file_to_server() → CC_Customers_...txt ──→ SFTP ──→ Import
│ get_bsid() → bseg_file_to_server() → CC_open_...txt ──→ SFTP ──→ Import
BSAD ─┤ get_bsad() → bseg_file_to_server() → CC_cleared_...txt ──→ SFTP ──→ Import
│
VBAK/VBAP ─┘ get_orders() → orders_file_to_server() → CC_orders_...txt ──→ SFTP ──→ ImportAblauf im Detail
SM36-Job startet den Report
ZFI_BILENDO_EXPORT_V2(typisch: täglich 03:00 Uhr)Report liest die Selektionsparameter aus der Variante (z. B.
BILENDO_DAILY_DELTA)Report selektiert alle relevanten Buchungskreise aus T001 (
WHERE rcomp <> '')Je Buchungskreis (Loop):
set_bukrs()– setzt den aktiven Buchungskreis in der Klasseget_kna1()– selektiert Kundenstammdaten (KNA1 JOIN KNB1 JOIN ADR6)kna1_file_to_server()– schreibt TXT-Datei auf Applikationsserverget_bsid()– selektiert offene Posten (BSID + BSEG Ergänzungen)get_additional()– ergänzt Zusatzfelder (VKORG, BKTXT, VBELN, AUFNR, etc.)bseg_file_to_server()– schreibt TXT-Dateiget_bsad()– selektiert ausgeglichene Posten (analog BSID)get_additional()+bseg_file_to_server()– analogget_orders()– selektiert Aufträge (VBAK + VBAP + VBUK + weitere Tabellen)orders_file_to_server()– schreibt Orders-TXT-Datei
Middleware (CPI/Seeburger/Lobster) transferiert die Dateien per SFTP
Bilendo importiert die Dateien automatisch
Datenfluss: Re-Integration (Bilendo → SAP)
Bilendo Bilendo SFTP SAP Applikationsserver SAP
─────── ──────────── ────────────────────── ───
Plattform ──→ Export ──→ bilendo_credit_limits ──→ SFTP ──→ Download
bilendo_credit_informations ──→ SFTP ──→ Download
bilendo_securities ──→ SFTP ──→ Download ┐
bilendo_customers ──→ SFTP ──→ Download ├─ ZFI_BILENDO_IMPORT_V2
bilendo_journal_entries ──→ SFTP ──→ Download ┘ → BAPI/BDCAblauf Re-Integration
Bilendo legt CSV-Dateien auf dem SFTP-Server ab (→ Details in 09 - Re-Integration Felder)
Middleware lädt Dateien in das SAP-Eingangsverzeichnis (
/usr/sap/<SID>/COMM/Bilendo_IN/)Report
ZFI_BILENDO_IMPORT_V2wird gestartet (manuell oder per Job)Klasse liest CSV-Dateien ein (
get_files()+read_csv())Rückschreibung:
credit_limit_change()– Kreditlimit + Risikokategorie auf KNB5/KNKKcustomer_change()– Mahnstufe, Mahnsperre, Versichertes Obligo auf KNB1/KNKAdoc_change()– Mahnstufe/-datum auf Belegebene (BSEG)
Optional:
delete_files()– Bereinigung der verarbeiteten Dateien
Datentypen
Die Integration transportiert vier Kerndatentypen. Die vollständige Felddefinition findet sich in 06 - Datenspezifikation.
| Datentyp | SAP-Quelle | SAP-Tabelle | Bilendo-Ziel | Dateityp |
|---|---|---|---|---|
| Stammdaten | Kundenstamm | KNA1 + KNB1 + KNB5 + ADR6 | Masterdata | CC_Customers_*.txt |
| Offene Posten | Debitorische OP | BSID + BSEG + BKPF | Open Items | CC_open_*.txt |
| Ausgeglichene Posten | Ausgegl. Posten | BSAD + BSEG + BKPF | Cleared Items | CC_cleared_*.txt |
| Aufträge | Aufträge/SD | VBAK + VBAP + VBUK + VBKD + VBPA | Orders | CC_orders_*.txt |
Delta-Strategie
Bilendo arbeitet nicht mit echtem Delta (kein Change-Pointer, kein IDOC). Stattdessen wird bei jedem Lauf ein überlappender Zeitraum selektiert. Die Integration bietet zwei Delta-Modi:
Einfache Delta-Selektion (v2.1 Standard)
Selektion über CPUDT/BUDAT mit überlappenden Zeitfenstern (typisch: 7 Tage). Einfach zu konfigurieren, hat aber Schwächen bei der Erkennung von Ausgleichsereignissen an Belegen, deren Erfassungsdatum außerhalb des Fensters liegt.
| Datentyp | Selektionsfeld | Empfehlung |
|---|---|---|
| Stammdaten | CPUDT (Erfassungsdatum) | Letzte 7 Tage, täglich |
| Offene Posten | CPUDT + optional CPUTM | Letzte 7 Tage, täglich oder stündlich |
| Ausgeglichene Posten | AUGDT (Ausgleichsdatum) | Letzte 7 Tage, täglich |
| Aufträge | ERDAT (Anlagedatum) | Letzte 7 Tage, täglich |
Zwei-Stufen-Delta-Selektion (empfohlen)
Die verbesserte Variante verwendet eine zweistufige Logik: zunächst werden über BKPF bzw. AUGDT die relevanten Belegkontexte identifiziert, anschließend werden die zugehörigen Positionen aus BSID/BSAD geladen. Dieses Verfahren ist robust gegen Fehlkonfiguration und erfasst auch Ausgleiche an alten Belegen zuverlässig.
| Datentyp | Methode | Stufe 1 | Stufe 2 | Empfehlung |
|---|---|---|---|---|
| Offene Posten | get_open_delta() | BKPF: CPUDT/AEDAT letzte 6h | BSID: FOR ALL ENTRIES | Alle 6 Stunden |
| Ausgeglichene Posten | get_cleared_delta() | BSAD: AUGDT letzte 24h | BSAD: FOR ALL ENTRIES über AUGBL | Alle 6 Stunden |
| Stammdaten | get_kna1() | CPUDT-basiert (wie bisher) | – | Täglich |
Für Details und ABAP-Code → 04 - Extractor Report#Verbesserte Delta-Logik Zwei-Stufen-Selektion.
Die Overlap-Steuerung erfolgt über die Selektionsvariante (→ 07 - Varianten & Job-Planung).
Berechtigungen
Für die Einrichtung und den Betrieb werden folgende Berechtigungen benötigt:
| Phase | Berechtigungsobjekt | Relevanz |
|---|---|---|
| Installation | S_DEVELOP (ABAP Workbench) | Report, Klasse, Strukturen anlegen |
| Installation | S_TABU_DIS (Tabellenänderung) | DDIC-Objekte aktivieren |
| Betrieb | S_DATASET (Dateizugriff) | Lesen/Schreiben auf Applikationsserver |
| Betrieb | S_BTCH_JOB (Batchverarbeitung) | SM36 Job einplanen |
| Betrieb | F_BKPF_BUK (Buchungskreis FI) | Zugriff auf Buchhaltungsdaten |
| Re-Integration | F_KNA1_BED (Debitorenstamm ändern) | Kreditlimit, Mahnstufe zurückschreiben |