Integration und HTTP
Lerne, wie du externe Dienste aufrufst, XML gegen XSD-Schemas validierst, XML transformierst, E-Mails sendest und Kalendereinträge in Ninox Skripten erstellst.
Integrationsfunktionen verbinden deine App mit Diensten und Kommunikationstools außerhalb von Ninox. Du kannst APIs aufrufen, XML gegen Schemas validieren, XML transformieren, E-Mails senden und Termine oder Erinnerungen erstellen, wenn deine Umgebung das unterstützt.
In diesem Kapitel lernst du, wie du:
externe Dienste mit HTTP aufrufst.
XML transformierst.
Termine erstellst.
appointment()
Erstellt einen Terminwert
email()
Gibt einen E-Mail-Wert zurück oder verwendet ihn wieder
formatXML()
Konvertiert JSON-Daten in XML-Text
http()
Sendet eine HTTP-Anfrage
parseXML()
Konvertiert XML-Text in ein JSON-Objekt
Externe Dienste aufrufen
Nutze diese Funktionen, um jede REST API aufzurufen, Daten aus einem anderen Dienst zu holen oder Daten zwischen Ninox Datenbanken zu übertragen.
Mit http() eine API aufrufen
http() eine API aufrufenNutze http(), um eine Anfrage an einen externen Dienst zu senden.
Nutze es, wenn du:
Daten aus einem anderen System holen oder Updates dorthin senden willst.
Ninox mit REST APIs und anderen Ninox Datenbanken verbinden willst.
Setze http() nicht in do as transaction...end ein
Transaktionen nutzen eine single-threaded Schreibwarteschlange. Ein HTTP-Aufruf innerhalb einer Transaktion blockiert alle anderen Schreibvorgänge, bis die Anfrage abgeschlossen ist. Die App hängt nicht dauerhaft, aber jeder wartende Schreibvorgang wartet über die komplette Laufzeit des Aufrufs. Das kann die App langsam wirken lassen.
http(method, url)
http(method, url, body)
http(method, url, header, body)
http(method, url, header, body, files)
method: Textwert der HTTP-Methode, zum Beispiel"GET"oder"POST"url: Textwert der Endpoint-URLheader: optionale Header als JSON-Objekt, zum Beispiel{ Authorization: token }body: optionaler Request-Body als JSON-Objektfiles: optionale Dateien zum Upload als[file], wenn der aktuelle Ausführungskontext Datei-Uploads unterstützt (Server-Kontext)
Beim Zugriff auf Ninox Daten ist ein Body erforderlich
Wenn du http() nutzt, um auf Daten in Ninox zuzugreifen, musst du einen Body übergeben. Wenn keine Informationen im Body nötig sind, bleibt er einfach leer. Ein Beispiel dafür ist:
http(“GET”, “https://api.ninox.com/v1/[...]”, {Authorization: “Bearer xxxx-xxxx-xxxx”, content-type: “application/json”}, {})
Schauen wir uns einige Beispiele an:
Ruft den externen Dienst auf und gibt ein JSON-Antwortobjekt oder ein Fehlerobjekt zurück.
Listet Tabellen aus der aktuellen Datenbank über die Ninox API oder gibt ein Fehlerobjekt zurück.
Sendet eine POST-Anfrage und gibt passende Datensätze oder ein Fehlerobjekt zurück.
Lädt eine Datei zu einem externen Dienst hoch, wenn Datei-Uploads im aktuellen Ausführungskontext unterstützt werden.
Tipps:
http()gibt ein JSON-Objekt zurück, keinen Klartext.Wenn du auf eine andere Ninox Datenbank zugreifst, brauchst du einen API-Key.
Manche Endpoints erwarten selbst bei
GET-Anfragen einen Body. Nutze{}, wenn der Ziel-Endpoint einen Body verlangt und du keine Felder senden musst.Datei-Uploads hängen vom Ausführungskontext ab.
Teste Integrationsskripte mit echten Antworten des Dienstes, nicht nur mit Beispielausgaben.
XML transformieren
Nutze diese Funktionen, wenn ein anderes System XML sendet oder erwartet, besonders wenn das XML zu einem definierten Schema passen muss.
Mit parseXML() XML-Text in Daten umwandeln
parseXML() XML-Text in Daten umwandelnNutze parseXML(), um XML-Text in ein JSON-Objekt umzuwandeln, das du in Ninox prüfen kannst. Das ist besonders nützlich, wenn du Ninox per API mit externen Diensten verbindest und XML-Antworten verarbeiten musst. XML ist neben JSON ein gängiges Austauschformat.
Nutze es, wenn du:
Werte aus einer XML-Antwort lesen willst.
Felder aus importiertem XML extrahieren willst.
XML für spätere Logik in strukturierte Daten umwandeln willst.
parseXML(string)
string: der XML-Text, den du in ein JSON-Objekt umwandeln willst
Schauen wir uns einige Beispiele an:
Gibt ein JSON-Objekt zurück, das aus dem XML-Text erzeugt wurde, zum Beispiel:
Tipp:
Wenn du ein XSD-Schema hast, validiere externes XML vor dem Parsen.
Mit formatXML() XML-Text erstellen
formatXML() XML-Text erstellenNutze formatXML(), um JSON-Daten in XML-Text umzuwandeln.
Nutze es, wenn du:
XML für einen anderen Dienst vorbereiten willst.
geparste Daten in lesbares XML umformatieren willst.
formatXML(JSON)
formatXML(JSON, boolean)
JSON: die strukturierten Daten, die du in XML umwandeln willstboolean: ob die Ausgabe zur besseren Lesbarkeit optisch strukturiert sein soll
Schauen wir uns einige Beispiele an:
Formatiert das geparste Objekt zurück in gut lesbaren XML-Text.
Konvertiert das JSON-Objekt in strukturierten XML-Text. Schlüssel wie @type werden zu XML-Attributen. @ wird zum Textwert des Knotens.
Tipps:
Nutze die Pretty-Option, wenn Menschen das Ergebnis lesen sollen.
Nutze kompakte Ausgabe, wenn das Zielsystem nur die Nutzlast braucht.
Diese Funktion ist besonders nützlich für API-Integrationen, die XML statt JSON erwarten.
Termine erstellen
Nutze diese Funktionen, wenn du für deinen Workflow ein zeitbasiertes Element erstellen willst.
Mit appointment() einen Terminwert erstellen
appointment() einen Terminwert erstellenNutze appointment(), um zeitbezogene Werte in einen Terminwert umzuwandeln.
Nutze es, wenn du:
einen Termin oder Zeitslot aus Start- und Endwerten aufsetzen willst.
einen Zeitraum aus einem Startwert und einer Dauer erstellen willst.
einen geplanten Zeitraum an spätere Logik übergeben willst.
appointment(any, any)
erstes
any: der Start-Zeitstempelzweites
any: der End-Zeitstempel des Termins oder eine Dauer
Schauen wir uns einige Beispiele an:
Erstellt einen Termin aus zwei Zeitstempeln. Ninox nutzt automatisch den früheren Zeitstempel als Start.
Erstellt einen Termin aus einem Start-Datum mit Uhrzeit und einer Dauer von 1 Stunde und 45 Minuten.
Tipps:
Die Reihenfolge der Argumente ist egal, wenn du zwei Zeitstempel übergibst. Ninox nutzt den früheren Wert als Start.
Wenn Start und Ende am selben Tag liegen, zeigt die Anzeige meist nur ein Datum. Wenn der Zeitraum mehrere Tage umfasst, werden beide Daten gezeigt.
Das Verhalten von Integrationen kann von deiner Umgebung, dem Client und verbundenen Diensten abhängen. Prüfe HTTP- und E-Mail-Workflows in derselben Umgebung, die deine Nutzer in Produktion verwenden.
Zuletzt aktualisiert
War das hilfreich?