Zum Inhalt springen
Kitegra
← Zurück zum Blog

Modul in diesem Artikel: Werkzeugkasten

Payload-Werkzeuge für SAP CPI: Testdaten im Browser vergleichen, konvertieren und erzeugen

Zwei Payloads vergleichen, XML, JSON, YAML und CSV nach den Regeln der SAP-Konverter umwandeln, Testpayloads mit Fehlern erzeugen und Groovy-Snippets einfügen, offline direkt neben dem iFlow-Designer.

Die Hälfte der Arbeit an einem iFlow in SAP Cloud Integration (SAP CPI) dreht sich um die Payload: zwei Nachrichten, die gleich sein sollten und es nicht sind, ein JSON-Body, den der Empfänger als XML will, ein Satz Testnachrichten für die Fehlerbehandlung, eine Groovy-Zeile, die Sie jede Woche schreiben und nie im Kopf behalten. Solche Aufgaben landen meist in einem Texteditor, einem Online-Konverter und einem eigenen Skript.

Die Toolbox von Kitegra holt sie in den Browser, direkt neben den iFlow-Designer: Payload-Vergleich, ein Formatkonverter, ein Testpayload-Generator, Groovy-Snippets mit Spickzettel und ein HTTP Runner. Bis auf die Requests, die Sie mit dem HTTP Runner senden, arbeiten sie offline. Was Sie einfügen, bleibt in der Seite und wird nie gespeichert oder gesendet.

Wo Sie die Toolbox finden

Öffnen Sie das Popup der Erweiterung und wählen Sie Werkzeuge. Die Liste der Toolbox öffnet jedes Werkzeug in einem eigenen Tab: Payload-Vergleich, Formatkonverter, Testpayload-Generator, Snippets und Spickzettel, HTTP Runner und iFlow Docs. In einem iFlow öffnet das Menü des Kitegra-Felds in der Werkzeugleiste des Diagramms außerdem Snippets und Notizen als Panels auf der Seite.

Neben jedem Bedienelement steht ein kleines (i), das erklärt, was es tut. Die Toolbox zählt keine iFlows für Ihren Tarif.

Payload-Vergleich

Fügen Sie zwei Payloads ein, laden Sie sie aus Dateien oder ziehen Sie sie auf die Seite, und die Unterschiede werden Zeile für Zeile markiert. Vorheriger Unterschied und Nächster Unterschied springen von einem Unterschied zum nächsten, mit der Anzahl, wie viele es gibt.

  • Leerraum ignorieren: Zeilen, die sich nur in Leerzeichen, Tabs oder Einrückung unterscheiden, gelten als gleich.
  • XML normalisieren: sortiert Attribute, ignoriert Namespace-Präfixe und rückt beide Seiten ein, sodass nur echte Änderungen übrig bleiben.
  • JSON normalisieren: sortiert Schlüssel und rückt ein.
  • Nur Unterschiede: blendet gleiche Zeilen aus und zeigt an ihrer Stelle, wie viele ausgeblendet sind.
  • A und B tauschen: Was als hinzugefügt erschien, erscheint als entfernt.

Eine Payload, die kein wohlgeformtes XML oder gültiges JSON ist, wird trotzdem verglichen, als Text. Im Message Monitor hat die Payload-Ansicht eines getracten Schritts Mit dem nächsten Schritt vergleichen, das diese Seite mit dem Body vor und nach diesem Schritt öffnet. Siehe eine Nachricht Schritt für Schritt verfolgen.

Formatkonverter

Fügen Sie XML, JSON, YAML, CSV oder beliebigen Text ein, oder laden Sie eine Datei. Das Format wird am Inhalt erkannt, und nur die passenden Konvertierungen werden angeboten:

  • XML zu JSON und JSON zu XML, nach den Regeln der SAP-eigenen Konverter: @name-Member sind Attribute, $ ist der Text eines Elements, und ein Array wiederholt sein Element. Die Optionen sind dieselben, die Sie im iFlow setzen: XML-Root-Element hinzufügen, JSON-Root-Element unterdrücken und die Elemente, die immer als Arrays geschrieben werden.
  • CSV zu JSON oder XML und zurück, mit erkanntem oder gewähltem Trennzeichen, einer Kopfzeile und dem Namen des Zeilenelements.
  • YAML zu JSON und JSON zu YAML.
  • XML zu einem abgeleiteten XSD, und ein XSD zu einem Beispiel-XML.
  • Formatieren und Minifizieren für XML und JSON.
  • Base64- und URL-Kodierung und -Dekodierung; Escapen und Unescapen für XML-, JSON- und Groovy-Strings.

Als Eingabe verwenden setzt das Ergebnis zurück in das Eingabefeld, damit Sie es erneut konvertieren können. Neben Konvertieren gibt es drei weitere Tabs:

  • Prüfen kontrolliert, ob die Eingabe wohlgeformt ist, und listet jedes Problem mit Zeile und Spalte. Geben Sie ein XSD an, werden auch die Elemente des XML, ihre Reihenfolge und Anzahl, Attribute und einfache Typen geprüft. Die Prüfung ist bewusst leicht: Namespaces, Imports, Includes, Substitution Groups und Keys werden nicht geprüft.
  • Suchen und ersetzen, mit regulären Ausdrücken von JavaScript und ihren Gruppen.
  • Stapel konvertiert mehrere Dateien auf dieselbe Weise und lädt die Ergebnisse in einem ZIP herunter. Eine fehlgeschlagene Datei wird ausgelassen und aufgelistet.

Testpayload-Generator

Die Fehlerbehandlung ist der am wenigsten getestete Teil eines iFlows, weil niemand die fehlerhaften Nachrichten hat. Der Generator erzeugt sie aus einem echten Beispiel.

  1. Fügen Sie eine echte Nachricht ein oder laden Sie sie hoch: XML, JSON oder CSV mit Kopfzeile.
  2. Prüfen Sie die Feldtabelle. Der Typ jedes Felds wird aus seinem Wert geschätzt: Text, Ganzzahl, Dezimalzahl, Boolean, Datum, Datum und Uhrzeit, E-Mail, Währung, Land, UUID oder null.
  3. Wählen Sie für jedes Feld eine Regel: den Wert des Beispiels Beibehalten, Zufällig, gleicher Typ, Fortlaufend oder Aus einer Liste von Werten.
  4. Legen Sie fest, wie viele Payloads erzeugt werden (bis zu 1000) und welcher Anteil einen Fehler bekommt.
  5. Wählen Sie die Fehlerarten und klicken Sie auf Generieren.

Die Fehler sind die, die Empfänger ablehnen: ein fehlendes Pflichtfeld, ein leeres Feld, ein falscher Typ, ein ungültiges Datum, eine ungültige E-Mail, Währung oder ein ungültiges Land, eine negative Menge, ein falscher Namespace, kaputtes XML, JSON oder CSV, eine doppelte ID, ein zusätzliches Feld und ein null-Wert. Jede fehlerhafte Payload bekommt genau einen Fehler.

Dasselbe Beispiel, dieselben Regeln und derselbe Seed ergeben immer dieselben Payloads, sodass ein Test mit denselben Daten wiederholt werden kann. ZIP herunterladen liefert eine Datei pro Payload plus eine manifest.json, die für jede Datei den Fehler und das geänderte Feld auflistet. Als eine Datei herunterladen schreibt JSON Lines, oder XML und CSV getrennt durch eine Leerzeile. Als Datensatz für den Runner speichern übergibt den Satz an den HTTP Runner, der jede Payload an Ihren iFlow senden und zeigen kann, welche Antworten wie erwartet zurückkamen.

Groovy-Snippets und der Spickzettel

Der Tab Snippets enthält 32 Groovy-Muster für Cloud-Integration-Skripte. Jedes ist für processData(Message message) geschrieben, mit vollständigen Klassennamen, sodass kein Import nötig ist. Sie decken ab: Body, Header und Exchange Properties lesen und setzen, einen großen Body streamen, XmlSlurper, XmlParser und MarkupBuilder, sicheres XML-Parsing gegen XXE, JsonSlurper und JsonBuilder, im Monitoring durchsuchbare Werte, Anhänge im Nachrichtenprotokoll, Abbruch mit einer klaren Fehlermeldung, den HTTP-Fehler in einem Exception Subprocess, Zugangsdaten aus dem Secure Store sowie Abfragen in Value Mapping und Partner Directory.

Durchsuchen Sie sie nach Name oder Tag. Ist im Designer ein Skript im Bearbeitungsmodus geöffnet, schreibt Einfügen das Snippet an die Cursorposition; sonst kopieren Sie es. Eigene hinzufügen speichert bis zu 20 eigene Snippets, synchronisiert mit Ihrem Kitegra-Konto, wenn Sie angemeldet sind. Legen Sie darin keine Passwörter oder Schlüssel ab.

Der Tab Spickzettel listet, was Sie jede Woche nachschlagen: die Simple-Operatoren, Java-Datumsmuster mit Beispielen, XPath-1.0-Funktionen, ausgeführt auf einem Beispiel-XML, und Links zur Dokumentation von SAP und Apache Camel. Klicken Sie auf ein Beispiel, um es zu kopieren. Die Ausdrücke selbst werden in Camel Simple Expressions in SAP CPI erklärt.

Um die Skripte zu lesen, die ein iFlow schon hat, nutzen Sie Skripte erklären in iFlow Docs. Für jedes Skript nennt es den Zweck, was es liest, was es setzt oder ändert, die Hauptlogik, die verwendeten SAP-APIs und die Risiken.

HTTP Runner

Der HTTP Runner ruft die HTTPS-Endpunkte Ihres iFlows mit OAuth aus einem Service Key von Process Integration Runtime auf, speichert Requests in Sammlungen und prüft die Antworten. In iFlow-Infos lässt sich jeder Endpunkt als cURL kopieren oder im Runner öffnen. Die vollständige Anleitung finden Sie unter einen HTTPS-iFlow mit einem Service Key testen.

Was gespeichert wird, und was Ihr Tarif enthält

Vergleich, Konverter, Generator und Spickzettel laufen in der Seite und speichern nichts. Ihre eigenen Snippets und die Sammlungen des HTTP Runners ohne Auth-Werte und geheime Variablen werden mit Ihrem Kitegra-Konto synchronisiert, wenn Sie angemeldet sind.

Die Offline-Werkzeuge sind in jedem Tarif enthalten. Der HTTP Runner ist in Free und Starter eingeschränkt nutzbar und in Pro und den Team-Tarifen vollständig. Während des Starts von Kitegra sind alle Werkzeuge für alle Angemeldeten offen, auch im Tarif Free. Tarife vergleichen.

Probieren Sie ihn im nächsten iFlow aus

Lesen Sie, was Kitegra rund um den Designer von SAP Integration Suite ergänzt, oder sehen Sie alles, was die Toolbox kann.

Häufige Fragen

Werden meine Payloads irgendwohin gesendet?

Nein. Vergleich, Konverter, Generator und Spickzettel laufen in der Browserseite. Was Sie einfügen oder laden, wird weder gespeichert noch gesendet.

Liefert der Konverter dasselbe Ergebnis wie die Konverter von SAP?

Er folgt denselben Regeln und Optionen wie die Konverter JSON to XML und XML to JSON von SAP: Attribute, Elementtext, Arrays, das hinzugefügte Root-Element und das unterdrückte JSON-Root. Führen Sie den iFlow aus, wenn das Ergebnis exakt sein muss.

Kann ich einen generierten Testsatz wiederholen?

Ja. Dasselbe Beispiel, dieselben Regeln und derselbe Seed ergeben immer dieselben Payloads. Wenn Sie die Fehler ändern, bleiben die Werte, wie sie waren.

Wie füge ich ein Snippet in ein Groovy-Skript ein?

Öffnen Sie das Skript im Designer im Bearbeitungsmodus, setzen Sie den Cursor an die richtige Stelle und klicken Sie beim Snippet auf Einfügen. Speichern Sie den iFlow danach selbst.

Zählt die Toolbox iFlows?

Nein. Nur Helper, Message Monitor, iFlow Inspector und iFlow Docs zählen iFlows.

Arbeiten Sie an iFlows, ohne den Designer zu verlassen

Fügen Sie Kitegra zu Chrome oder Microsoft Edge hinzu. Kostenlos starten, ohne Konto.