Häufige Integrationsaufgaben

Massenexporte

Alles, nächtlich, für BI — Exportprofile, ein Format wählen, dem nicht der Speicher ausgeht, Zeitpläne, und die Datei dorthin bringen, wo sie gebraucht wird.

Ein Export ist ein Job, kein Request. Sie fordern ihn an, er läuft, und Sie holen eine Datei ab — deshalb kann er eine Million Zeilen bewegen, ohne Ihre Sekunden-Zuteilung der API anzufassen.

Bevor Sie anfangen. Seien Sie sich im Klaren, welche Frage der Export beantwortet. „Alles" ist keine Anforderung; es ist eine Methode, einen Job zu bauen, der vier Stunden läuft und den niemand debuggen kann. Fragen Sie, worüber die empfangende Seite tatsächlich joint und filtert, und exportieren Sie das.

Zwei verschiedene Dinge namens „Export"

MassenexportBerichtsexport
Was es istEine Datei mit Datensätzen aus einem DatenbestandEin CSV eines Berichts, den Sie ausgeführt haben
VolumenBis zu einer Million ZeilenWas in eine Tabelle passt
Wer ihn fährtEin Zeitplan, oder eine IntegrationEine Person, am selben Tag
WoData Exchange › Import & ExportAnalytics › Reports
WofürEin anderes System fütternHeute eine Frage beantworten

Will jemand im Controlling die Bestellungen des letzten Quartals nach Kunde, will er einen Berichtsexport, keine Integration. Schicken Sie ihn dorthin, bevor Sie irgendetwas bauen.

Ein Exportprofil definieren

Ein Profil ist die wiederverwendbare Definition: was exportiert wird, welche Felder, in welchem Format, wie gefiltert. Anlegen unter Data Exchange › Import & Export.

Vier Entscheidungen:

1. Der Datenbestand. Produkte, Preise, Bestellungen, Kunden, Bestand — was Ihre installierten Apps bereitstellen.

2. Die Felder. Exportieren Sie die, die der Empfänger nutzt, und die Schlüssel, über die er joint. Zwei Felder, die vergessen und dann gebraucht werden: der Geschäftsschlüssel (SKU, Kundennummer, Bestellnummer) und ein Zeitstempel, damit der Empfänger erkennt, was sich geändert hat.

3. Filter. Ein Filter im Profil schlägt das Nachfiltern einer riesigen Datei. Nur veröffentlichte Produkte, nur Bestellungen seit einem Datum, nur ein Kanal.

4. Voll oder Delta. Derselbe Zielkonflikt wie beim Import, umgekehrt:

VollexportDelta-Export
VolumenAlles, jeder LaufNur Geändertes
LaufzeitLangKurz
Ein verpasster LaufVom nächsten repariertHinterlässt eine dauerhafte Lücke
LöschungenSichtbar — abwesend heißt wegNur, wenn Sie ein Löschsignal exportieren
Gut fürNächtlich, bis einige hunderttausend ZeilenSehr große Bestände, oder häufige Läufe

Ein tragfähiger Kompromiss, bei dem die meisten Projekte landen: Deltas unter der Woche, ein Vollexport am Wochenende, der repariert, was die Deltas verpasst haben.

Das Format bewusst wählen

Vier stehen zur Verfügung, und die Wahl hängt nicht nur an den Vorlieben des Empfängers.

FormatGut fürVorsicht
CSVDer Standard für alles GroßeKeine Typen — Daten und Dezimalzahlen brauchen eine vereinbarte Konvention
XMLEmpfänger, die ein Schema erwarten, BMEcat-förmige FeedsGeschwätzig; die Datei ist um ein Mehrfaches größer
JSONSysteme, die nativ JSON konsumierenIm Speicher gepuffert, bevor geschrieben wird — eine schlechte Wahl für die allergrößten Bestände
XLSXEin Mensch, der sie öffnetIm Speicher gepuffert, und eine Tabelle ist keine Schnittstelle

Die praktische Regel: CSV und XML streamen Zeile für Zeile; JSON und XLSX werden zuerst im Speicher aufgebaut. Für einen Export mit einer Million Zeilen nehmen Sie CSV oder XML. Besteht der Empfänger bei dieser Größe auf JSON, teilen Sie in mehrere Dateien.

Zwei Konventionen einmal vereinbaren und in die Profilbeschreibung schreiben, denn sie verursachen mehr Support-Tickets als alles andere auf dieser Seite: das Dezimaltrennzeichen und das Datumsformat. Ein CSV in deutscher Locale mit 19,90, gelesen von einem System, das 19.90 erwartet, erzeugt Preise, die um den Faktor hundert falsch sind — ohne jeden Fehler.

Zeitlich planen

Zwei Wege, je nachdem, wer steuert.

Aus einem Workflow — die übliche Wahl. Bauen Sie ihn in Integration Studio: ein Zeitplan-Trigger, der Exportschritt, ein Zustellschritt. Der Lauf behält sein Protokoll, Sie sehen also, was passiert ist, und können ihn wiederholen.

Aus einer Integration — wenn das empfangende System entscheidet. Das Profil anstoßen und den Job abfragen:

POST /v1/io/profiles/{id}/run     → startet den Job
GET  /v1/io/bulk-jobs/{job_id}    → Zustand, Zeilen gelesen / geschrieben / abgewiesen
GET  /v1/io/exports/{job_id}/url  → eine kurzlebige signierte Download-URL

Egal welcher Weg: Geben Sie schweren Exporten ein eigenes Fenster. Das Rate-Limit gilt je Tenant, ein großer Export in Konkurrenz zu Ihrer Storefront ist also eine langsame Storefront — siehe Rate-Limits, Kontingente und Fair Use. Staffeln Sie Jobs, statt sechs davon exakt zur vollen Stunde zu starten.

Die Datei zustellen

ZielWann
Eine signierte Download-URLDer Empfänger holt ab, nach eigenem Zeitplan. Am schlichtesten, und die URL ist absichtlich kurzlebig
SFTP-OrdnerDer Empfänger beobachtet einen Ordner. Die häufigste Antwort für einen ERP- oder BI-Job — siehe SFTP und Dateiaustausch
Ein Workflow-SchrittDie Datei muss unterwegs transformiert, geteilt oder irgendwohin gepostet werden

Bei jedem Ziel gilt die Namenskonvention: orders_delta_20270312_0200.csv. Nie überschreiben, und verarbeitete Dateien in einen Archivordner verschieben statt löschen. Der Wiederholungslauf, der Ihren Abend rettet, hängt daran, dass die Datei noch existiert.

Was Sie prüfen

Nach dem ersten geplanten Lauf:

  • Die Zeilenzahlen am Job — gelesen, geschrieben, abgewiesen. Abgewiesene Zeilen über null bedeuten ein Mapping-Problem, und ein Job, der mit 4.000 Abweisungen „erfolgreich" war, ist kein Erfolg.
  • Die Dateigröße ist plausibel. Ein Export, der plötzlich ein Zehntel der letzten Nacht misst, ist ein geänderter Filter, kein ruhiges Quartal.
  • Der Empfänger hat sie tatsächlich geladen, nicht nur empfangen.
  • Die Laufzeit lässt Luft. Ein Job, der in einem Ein-Stunden-Fenster 50 Minuten braucht, scheitert beim ersten Wachstum Ihres Katalogs.

Wenn es nicht funktioniert

  • Der Job wird nie fertig — meist ein JSON- oder XLSX-Export in einer Größe, die CSV hätte sein sollen.
  • Zahlen oder Daten kommen falsch an — die Konvention für Dezimaltrennzeichen oder Datumsformat. Kein Bug; eine nicht ausgesprochene Vereinbarung.
  • Die Datei kommt an, ist aber leer — ein Filter im Profil, oder ein Delta-Export, nachdem ein Vollexport bereits alles mitgenommen hat.
  • Die Download-URL ist abgelaufen — signierte URLs sind absichtlich kurzlebig. Holen Sie sie als Teil des Jobs, nicht Stunden später.
  • Gar nichts kam an, und nichts ist fehlgeschlagen — der Lauf ist nicht gestartet. Das ist der Fehler, den niemand bemerkt; siehe Integrationen überwachen.

Weiter