Zum Inhalt springen
🏢 Enterprise-Integration

SAP & DATEV Integration — LLM trifft Enterprise-Software

Die Integration eines On-Premise LLM in SAP, DATEV oder ERP-Systeme erfolgt am besten über einen API-Gateway als Vermittlungsschicht — kein direkter Zugriff, keine Cloud-Abhängigkeit, volle DSGVO-Konformität. Dieser Guide zeigt erprobte Architekturmuster, konkrete Integrationsbeispiele und Best Practices für die Verbindung Ihres lokalen LLMs mit deutscher Enterprise-Software.

Integrationsarchitektur: So verbinden Sie LLM mit Enterprise-Software

Die zentrale Herausforderung bei der Integration eines LLM in bestehende Enterprise-Systeme ist: Wie bringe ich die KI-Fähigkeiten in bestehende Workflows, ohne die bewährte Systemlandschaft zu destabilisieren? Die Antwort: ein dedizierter API-Gateway als Vermittlungsschicht.

🏢 SAP / DATEV / ERP Bestehende Systeme
🔀 API-Gateway Auth, Routing, Logging, Rate Limiting
🤖 LLM Server Ollama / vLLM

Warum ein API-Gateway? Nicht direkt verbinden!

Die direkte Verbindung von SAP zum LLM-Server ist technisch möglich, aber aus mehreren Gründen nicht empfehlenswert:

  • Entkopplung: Änderungen am LLM (Modellwechsel, Skalierung) haben keine Auswirkung auf SAP
  • Sicherheit: Data Classification, PII-Masking und Rate Limiting zentral an einer Stelle
  • Audit-Trail: Alle LLM-Anfragen werden protokolliert — kritisch für DSGVO Art. 30
  • Multi-System: Derselbe Gateway bedient SAP, DATEV, CRM und Custom-Apps
  • Resilience: Circuit Breaker, Retry-Logik und Fallback-Strategien

API-Gateway: Die Schaltzentrale

Der API-Gateway ist die zentrale Komponente Ihrer LLM-Integrationsarchitektur. Er übernimmt Authentifizierung, Routing, Datenaufbereitung und Monitoring.

Empfohlene API-Gateways

Gateway Typ Stärken Empfohlen für
Kong Gateway Open Source / Enterprise Plugin-Ökosystem, Rate Limiting, Analytics Große Organisationen, Multi-Service
NGINX Plus Open Source / Enterprise Performance, TLS-Terminierung, bewährt Einfache Setups, bestehende NGINX-Infrastruktur
Traefik Open Source Docker/K8s-nativ, automatische Service Discovery Container-Umgebungen, DevOps-Teams
Custom (FastAPI) Eigenentwicklung Volle Kontrolle, Datenaufbereitung im Gateway Komplexe Transformationen, Prototypen

Custom API-Gateway mit FastAPI

Für die meisten SAP/DATEV-Integrationen empfehlen wir einen Custom-Gateway mit FastAPI — er kombiniert Gateway-Funktionalität mit Datenaufbereitung:

# api_gateway.py — LLM API Gateway für SAP/DATEV
from fastapi import FastAPI, HTTPException, Depends, Header
from pydantic import BaseModel
import httpx
import logging
import time

app = FastAPI(title="LLM API Gateway")
logger = logging.getLogger("llm_gateway")

OLLAMA_URL = "http://localhost:11434"
ALLOWED_MODELS = ["example-assistant", "buchungs-assistent"]

class LLMRequest(BaseModel):
    system: str
    prompt: str
    model: str = "example-assistant"
    source_system: str  # "SAP", "DATEV", "CRM"
    user_id: str
    context: dict = {}

class LLMResponse(BaseModel):
    answer: str
    model: str
    tokens_used: int
    processing_time_ms: float

# API-Key Authentifizierung
async def verify_api_key(authorization: str = Header()):
    if not authorization.startswith("Bearer "):
        raise HTTPException(401, "Invalid auth header")
    # API-Key gegen Datenbank prüfen
    return authorization.split(" ")[1]

# PII-Masking
def mask_pii(text: str) -> str:
    """Maskiert personenbezogene Daten vor der LLM-Anfrage"""
    import re
    # E-Mail-Adressen maskieren
    text = re.sub(r'\b[\w.-]+@[\w.-]+\.\w+\b', '[EMAIL]', text)
    # Telefonnummern maskieren
    text = re.sub(r'\b\d{3,5}[-/\s]?\d{4,8}\b', '[TELEFON]', text)
    # IBAN maskieren
    text = re.sub(r'\b[A-Z]{2}\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{0,4}\b', '[IBAN]', text)
    return text

@app.post("/api/v1/generate", response_model=LLMResponse)
async def generate(req: LLMRequest, api_key: str = Depends(verify_api_key)):
    # Validierung
    if req.model not in ALLOWED_MODELS:
        raise HTTPException(400, f"Modell nicht erlaubt: {req.model}")

    # PII-Masking
    safe_prompt = mask_pii(req.prompt)

    # Audit-Log (DSGVO Art. 30)
    logger.info(f"LLM-Request | user={req.user_id} | source={req.source_system} "
                f"| model={req.model} | prompt_len={len(safe_prompt)}")

    start = time.time()

    # LLM-Anfrage
    async with httpx.AsyncClient(timeout=120) as client:
        response = await client.post(f"{OLLAMA_URL}/api/generate", json={
            "model": req.model,
            "system": req.system,
            "prompt": safe_prompt,
            "stream": False,
        })

    elapsed = (time.time() - start) * 1000
    result = response.json()

    return LLMResponse(
        answer=result["response"],
        model=req.model,
        tokens_used=result.get("eval_count", 0),
        processing_time_ms=round(elapsed, 1),
    )

SAP-Integration im Detail

SAP bietet mehrere Integrationspunkte für externe Services. Die Wahl hängt von Ihrer SAP-Landschaft und dem Ziel-Use-Case ab.

Option 1: SAP BTP (Business Technology Platform)

SAP BTP ist die empfohlene Integrationsplattform für SAP S/4HANA Cloud. Sie stellen eine Custom Extension bereit, die Ihr lokales LLM über den API-Gateway anspricht:

// SAP BTP CAP Service — LLM Proxy
// srv/llm-service.js (SAP Cloud Application Programming Model)

const cds = require("@sap/cds");

module.exports = class LLMService extends cds.ApplicationService {
  async init() {
    this.on("analyzePurchaseOrder", async (req) => {
      const { orderId, question } = req.data;

      // Bestelldaten aus SAP laden
      const order = await SELECT.from("PurchaseOrders")
        .where({ ID: orderId });

      // LLM über API-Gateway anfragen
      const response = await fetch("https://llm-gateway.intern.example.de/api/v1/generate", {
        method: "POST",
        headers: {
          "Authorization": `Bearer ${process.env.LLM_API_KEY}`,
          "Content-Type": "application/json",
        },
        body: JSON.stringify({
          model: "example-assistant",
          source_system: "SAP",
          user_id: req.user.id,
          system: "Analysieren Sie die folgende Bestellung und beantworten Sie die Frage.",
          prompt: `Bestellung: ${JSON.stringify(order)}\n\nFrage: ${question}`,
        }),
      });

      return response.json();
    });
    
    await super.init();
  }
}

Option 2: ABAP HTTP-Client (On-Premise SAP)

Für SAP S/4HANA On-Premise oder ECC können Sie direkt aus ABAP heraus den LLM-Gateway ansprechen:

* ABAP: LLM-Aufruf über HTTP-Client
DATA: lo_http_client TYPE REF TO if_http_client,
      lv_response    TYPE string.

* HTTP-Client erstellen
cl_http_client=>create_by_url(
  EXPORTING url = 'https://llm-gateway.intern.example.de/api/v1/generate'
  IMPORTING client = lo_http_client ).

* Request konfigurieren
lo_http_client->request->set_method( if_http_request=>co_request_method_post ).
lo_http_client->request->set_header_field(
  name = 'Authorization' value = 'Bearer API_KEY_HERE' ).
lo_http_client->request->set_header_field(
  name = 'Content-Type' value = 'application/json' ).

* JSON-Body setzen
lo_http_client->request->set_cdata(
  '{"model":"example-assistant",'
  '"source_system":"SAP",'
  '"user_id":"SAP_USER",'
  '"system":"Fassen Sie den folgenden Beleg zusammen.",'
  '"prompt":"' && lv_beleg_text && '"}' ).

* Request senden
lo_http_client->send( ).
lo_http_client->receive( ).

* Antwort lesen
lv_response = lo_http_client->response->get_cdata( ).

Option 3: SAP Integration Suite (iPaaS)

Die SAP Integration Suite bietet vorgefertigte Adapter und Flow-basierte Integration. Erstellen Sie einen Integration Flow, der bei bestimmten SAP-Events (z.B. neue Bestellung, Reklamation) automatisch eine LLM-Anfrage auslöst:

  • Trigger: SAP Event Mesh (z.B. Bestellungseingang)
  • Transformation: Content Modifier bereitet die Daten auf
  • LLM-Aufruf: HTTP Receiver zum API-Gateway
  • Rückschreibung: OData-Adapter schreibt LLM-Ergebnis in SAP zurück

DATEV-Integration

DATEV ist das Rückgrat der deutschen Steuerberatung und Buchhaltung. Die Integration eines LLM mit DATEV eröffnet wertvolle Automatisierungsmöglichkeiten — unter strikter Beachtung der beruflichen Schweigepflicht (§ 203 StGB).

DATEV-Schnittstellen

Schnittstelle Zugriff auf LLM-Use-Case
DATEV Connect Online Belege, Buchungen, Stammdaten Automatische Belegprüfung, Buchungsvorschläge
DATEV API (DATEVconnect) Mandantendaten, Lohn, Fibu Mandantenkorrespondenz, Auswertungen
DATEV Unternehmen Online Belege, Kasse, Bank Belegextraktion, Kategorisierung
DATEV DMS Dokumente, Schriftverkehr Dokumentensuche, Zusammenfassungen

Beispiel: Automatische Buchungsvorschläge

# DATEV-Integration: Automatische Buchungsvorschläge
import requests

# 1. Beleg aus DATEV Connect Online abrufen
datev_api = "https://datev-connect.intern.example.de/api/v1"
beleg = requests.get(
    f"{datev_api}/belege/{beleg_id}",
    headers={"Authorization": f"Bearer {datev_token}"},
).json()

# 2. LLM um Buchungsvorschlag bitten
llm_response = requests.post(
    "https://llm-gateway.intern.example.de/api/v1/generate",
    headers={"Authorization": f"Bearer {llm_api_key}"},
    json={
        "model": "buchungs-assistent",
        "source_system": "DATEV",
        "user_id": "steuerberater_mueller",
        "system": """Sie sind ein erfahrener Buchhalter nach SKR03/SKR04.
Analysieren Sie den folgenden Beleg und schlagen Sie die korrekte Buchung vor.
Nennen Sie: Sollkonto, Habenkonto, Betrag, Steuerschlüssel, Buchungstext.
Bei Unsicherheit markieren Sie die Buchung als "Prüfung erforderlich".""",
        "prompt": f"""
Belegdaten:
- Datum: {beleg['datum']}
- Betrag: {beleg['betrag']} EUR
- Lieferant: {beleg['lieferant']}
- Belegtext: {beleg['text']}
- Kategorie: {beleg.get('kategorie', 'unbekannt')}

Bitte erstellen Sie einen Buchungsvorschlag nach SKR03.
""",
    },
).json()

# 3. Buchungsvorschlag in DATEV zurückschreiben
requests.post(
    f"{datev_api}/buchungsvorschlaege",
    headers={"Authorization": f"Bearer {datev_token}"},
    json={
        "beleg_id": beleg_id,
        "vorschlag": llm_response["answer"],
        "modell": llm_response["model"],
        "confidence": "mittel",  # Immer zur manuellen Prüfung markieren
        "status": "vorschlag",
    },
)
⚖️ § 203 StGB — Berufliche Schweigepflicht

Steuerberater und Wirtschaftsprüfer unterliegen der beruflichen Schweigepflicht. Alle DATEV-Daten müssen ausschließlich auf eigener Infrastruktur verarbeitet werden — kein Cloud-LLM, kein Drittanbieter. Ein On-Premise LLM mit Ollama oder vLLM auf eigener Hardware ist die einzig rechtssichere Lösung.

Generische ERP-Integration

Neben SAP und DATEV lassen sich auch andere ERP-Systeme integrieren — das Grundmuster ist immer gleich: API-Gateway als Vermittler, REST-API zum LLM, Audit-Logging für Compliance.

Typische ERP-Systeme im DACH-Raum

ERP-System API-Typ LLM-Integration
Microsoft Dynamics 365 OData / REST Power Automate Flow → API-Gateway → LLM
Sage 100 REST / SOAP Middleware (Node.js / Python) → API-Gateway → LLM
Lexware REST API Direkte REST-Integration → API-Gateway → LLM
Haufe X360 REST API Event-basiert → API-Gateway → LLM
proALPHA REST / RFC Middleware → API-Gateway → LLM

Datenfluss & Sicherheit

Die Sicherheit des Datenflusses zwischen Enterprise-Systemen und LLM ist die kritischste Designentscheidung. Implementieren Sie mehrere Sicherheitsschichten:

Data Classification Layer

Nicht alle Daten dürfen an das LLM gesendet werden. Definieren Sie klare Klassifizierungsregeln:

Stufe Beispiele LLM-Behandlung
Öffentlich Produktnamen, öffentliche Preise Unverändert an LLM senden
Intern Bestellnummern, Abteilungsnamen An LLM senden, nicht loggen
Vertraulich Kundennamen, Konditionen Pseudonymisieren vor LLM-Anfrage
Streng vertraulich Gehälter, Patientendaten, IBAN Niemals an LLM senden — maskieren

Netzwerk-Sicherheit

  • mTLS: Gegenseitige TLS-Authentifizierung zwischen SAP, Gateway und LLM
  • VLAN-Isolation: LLM-Server in eigenem Netzwerksegment
  • Kein Internet: LLM-Server hat keinen Internetzugang
  • Firewall-Regeln: Nur Gateway darf mit LLM kommunizieren

Praxis-Use-Cases

Use Case 1: SAP FI — Automatische Rechnungsverarbeitung

Problem: Manuelle Erfassung eingehender Rechnungen in SAP FI dauert 5–10 Minuten pro Rechnung.

Lösung: LLM extrahiert Rechnungsdaten (Lieferant, Betrag, USt-ID, Positionen) aus PDF-Scans und erstellt automatisch einen Buchungssatz in SAP FI. Der Buchhalter prüft und bestätigt.

Ergebnis: Bearbeitungszeit von 8 Minuten auf 90 Sekunden reduziert (88% Zeitersparnis).

Stack: Ollama + Qwen 72B + RAG (Lieferantenstammdaten) + SAP BTP

Use Case 2: DATEV — Mandantenkorrespondenz

Problem: Steuerberater verbringen 2+ Stunden täglich mit Standard-E-Mails an Mandanten.

Lösung: LLM generiert Entwürfe für Mandantenschreiben basierend auf DATEV-Mandantendaten: Erinnerungen an fehlende Belege, Steuerbescheidprüfungen, Fristenhinweise.

Ergebnis: 60% Zeitersparnis bei Routinekorrespondenz, höhere Mandantenzufriedenheit.

Stack: Ollama + Mistral 7B + DATEV Connect API + Custom Gateway

Use Case 3: SAP SuccessFactors — HR-Assistent

Problem: HR-Abteilung beantwortet täglich 50+ Standardfragen (Urlaub, Benefits, Policies).

Lösung: LLM-basierter HR-Chatbot mit RAG auf HR-Dokumenten (Betriebsvereinbarungen, Policies, FAQs). Integration über SAP SuccessFactors API.

Ergebnis: 70% der HR-Anfragen automatisch beantwortet, HR-Team fokussiert auf strategische Aufgaben.

Stack: vLLM + Llama 70B + Qdrant + SAP SuccessFactors API

Implementierungs-Roadmap

Die erfolgreiche Integration eines LLM in SAP/DATEV folgt einem bewährten Phasenmodell:

Phase 1: PoC (2–4 Wochen)

  • LLM-Server aufsetzen (Ollama Enterprise Guide)
  • Einfachen API-Gateway implementieren
  • Einen Use Case end-to-end testen
  • Qualität und Latenz messen

Phase 2: Pilot (4–8 Wochen)

  • Security Hardening und PII-Masking
  • SAP/DATEV-Konnektoren implementieren
  • Audit-Logging und DSGVO-Dokumentation
  • Pilotgruppe (5–10 Nutzer) einbinden

Phase 3: Produktion (4–8 Wochen)

  • Monitoring und Alerting aufsetzen
  • Fehlerbehandlung und Fallback-Strategien
  • Rollout auf alle Nutzer
  • Schulung und Change Management

Phase 4: Optimierung (laufend)

  • Modell-Qualität kontinuierlich evaluieren
  • Weitere Use Cases identifizieren und umsetzen
  • Performance-Optimierung (Modellgröße, Caching)
  • RAG-System für unternehmensspezifisches Wissen aufbauen

Weiterführende Ressourcen

SAP oder DATEV mit LLM verbinden?

In unserer Community teilen SAP-Berater und Entwickler ihre Integrations-Erfahrungen — von PoC bis Produktion.

Community beitreten →

Häufige Fragen zur SAP & DATEV Integration

Kann ich ein LLM direkt in SAP integrieren?

Ja, es gibt mehrere Wege: 1) SAP BTP (Business Technology Platform) als Middleware mit Custom Extension, die Ihr lokales LLM über die REST-API anspricht. 2) ABAP Cloud mit HTTP-Client-Klassen, die den LLM-Server direkt aufrufen. 3) API-Gateway (z.B. Kong, NGINX) als Vermittlungsschicht zwischen SAP und LLM. Der API-Gateway-Ansatz ist der flexibelste und empfohlene Weg.

Ist die LLM-Integration mit SAP DSGVO-konform?

Wenn das LLM On-Premise betrieben wird — ja. Entscheidend ist, dass keine personenbezogenen Daten das Unternehmensnetzwerk verlassen. Stellen Sie sicher, dass der API-Gateway Audit-Logging für alle Anfragen implementiert (DSGVO Art. 30) und dass die Datenminimierung beachtet wird (Art. 5) — senden Sie nur die Daten an das LLM, die für die jeweilige Aufgabe erforderlich sind.

Wie integriere ich ein LLM mit DATEV?

DATEV bietet mit der DATEV API und der DATEV Connect Online-Schnittstelle Zugriff auf Mandantendaten. Typische Use Cases: Automatisierte Buchungsvorschläge, Belegprüfung und Mandantenkommunikation. Die Integration erfolgt über einen API-Gateway, der DATEV-Daten aufbereitet und an das LLM weiterleitet. Beachten Sie: Steuerberaterdaten unterliegen der beruflichen Schweigepflicht (§ 203 StGB).

Welche SAP-Module lassen sich mit LLM erweitern?

Besonders geeignet sind: SAP S/4HANA (Dokumentenverarbeitung, Lieferantenkorrespondenz), SAP SuccessFactors (HR-Anfragen, Arbeitszeugnis-Generierung), SAP CRM/CX (Kundenservice-Automation), SAP Ariba (Vertragsanalyse, Einkaufsoptimierung) und SAP GRC (Compliance-Prüfungen, Risikobewertung).

Brauche ich SAP BTP für die LLM-Integration?

Nein, SAP BTP ist optional. Der direkteste Weg ist ein API-Gateway zwischen Ihrem LLM-Server und SAP. SAP BTP bietet jedoch Vorteile: Integration Hub, vorgefertigte Konnektoren, Event-basierte Architektur und ein einheitliches Identity Management. Für Unternehmen, die bereits SAP BTP nutzen, ist es der natürlichste Integrationspunkt.

Wie verhindere ich, dass vertrauliche SAP-Daten ins LLM fließen?

Implementieren Sie einen Data Classification Layer im API-Gateway: 1) Definieren Sie Vertraulichkeitsstufen für SAP-Felder (öffentlich, intern, vertraulich, streng vertraulich). 2) Maskieren oder entfernen Sie vertrauliche Felder vor der LLM-Anfrage. 3) Implementieren Sie PII-Detection (Personally Identifiable Information). 4) Loggen Sie alle Datenanfragen für Audit-Zwecke.

Wie hoch ist der Implementierungsaufwand für eine SAP-LLM-Integration?

Für einen PoC (z.B. automatische Buchungsvorschläge in SAP FI) rechnen Sie mit 2–4 Wochen Entwicklungszeit bei einem erfahrenen Team. Eine produktionsreife Integration mit API-Gateway, Fehlerbehandlung, Monitoring und Rollback dauert 2–3 Monate. Komplexe Multi-Modul-Integrationen können 6+ Monate beanspruchen. Der Hauptaufwand liegt in der Datenaufbereitung und dem Testing.

Integrationsprojekt geplant?

Diskutieren Sie Ihre Architektur mit erfahrenen Enterprise-Entwicklern und SAP-Beratern.

Kostenlos austauschen →