Erstellung von Citizen Integrator-Rezepten für Jitterbit Design Studio
Einführung
Ein Citizen Integrator-Rezept ist eine wiederverwendbare Integrationsvorlage, die eine schrittweise Anleitung durch Citizen Integrator bietet, die über das Harmony-Portal verfügbar ist. Citizen Integrator-Rezepte können von Mitgliedern einer Harmony-Organisation verwendet werden, damit sie eine Design Studio Integration für einen spezifischen Anwendungsfall einfach konfigurieren können.
Dieses Dokument behandelt die manuelle Erstellung von Citizen Integrator-Rezepten. Rezepte können auch über die Benutzeroberfläche des Citizen Integrators erstellt werden. Siehe Citizen Integrator - Rezept generieren oder bearbeiten für Details.
Ein Citizen Integrator-Rezept besteht aus zwei Teilen:
- Einem Design Studio Jitterpak (Dateiendung
.jpk
oder.JPK
). - Einer Citizen Integrator-Rezept-Metadaten-JSON-Datei (Dateiendung
.json
oder.JSON
), die die Schritte bereitstellt, die ein Benutzer durchläuft, um die Integration zu konfigurieren.
Hier ist eine Zusammenfassung der Schritte, die erforderlich sind, um ein Rezept zu erstellen, das dann über die Weboberfläche des Citizen Integrators verfügbar gemacht werden kann:
Schritt 1: Erstellen eines Jitterpaks
Erstellen Sie ein Jitterpak (JPK) mit Jitterbit Design Studio. Das Jitterpak wird als Grundlage für das Rezept verwendet. Siehe Erstellen von Jitterpaks für Rezepte.
Schritt 2: Erstellen der Rezeptmetadaten
Erstellen Sie eine Rezeptmetadatendatei (eine JSON-Datei). Die Rezeptmetadaten umfassen die Schritte, die Benutzer über die Weboberfläche ausführen, und verknüpfen die vom Benutzer bereitgestellten Informationen mit dem Jitterpak. Siehe Erstellen von Rezeptmetadaten für bewährte Praktiken, eine Beispielanleitung, eine Beschreibung der Rezeptschrittarten und die Dokumentation der Komponenten einer Rezeptmetadatendatei.
Schritt 3: Validieren der Rezeptmetadaten
Validieren Sie Ihre Rezeptmetadatendatei mit jbcli
. Siehe Validieren eines Rezepts der
Jitterbit-Befehlszeilenschnittstelle.
Schritt 4: Laden Sie die Jitterpak- und Rezeptmetadaten hoch
Laden Sie Ihre Jitterpak- und Rezeptmetadatendatei in Ihr Rezept-Repository hoch. Siehe Laden Sie ein neues Rezept und Jitterpak hoch der Jitterbit-Befehlszeilenschnittstelle. Sie können Rezepte auch über die Weboberfläche des Citizen Integrators hochladen, wie auf den Seiten Citizen Integrator - Dashboard oder Citizen Integrator - Meine Rezepte beschrieben.
Schritt 5: Konfigurieren und Bereitstellen des Rezepts
Ihr neues Rezept steht jetzt Mitgliedern Ihrer Organisation über die Weboberfläche des Citizen Integrators zur Verfügung. Siehe Citizen Integrator - Rezept konfigurieren für Benutzeranweisungen zur Konfiguration und Bereitstellung von Rezepten.
Jitterpaks für Rezepte erstellen
Beim Erstellen eines neuen Citizen Integrator-Rezepts empfehlen wir, zunächst ein Design Studio Jitterpak zu erstellen, das die Projektstruktur für Ihre Rezeptvorlage enthält.
Jitterpaks sind nicht spezifisch für die Rezeptfunktionalität; sie sind eine Kernfunktion der vollständigen Design Studio-Anwendung. Benutzer, die neue Rezepte erstellen möchten, sollten bereits mit Design Studio vertraut sein. Für weitere Informationen verweisen Sie bitte auf die Materialien unter Design Studio und Jitterpaks.
Hinweis
Citizen Integrator-Rezepte werden aus Design Studio Projekten erstellt. Für Integration Studio verwenden Sie stattdessen Integrationsrezepte oder Prozessvorlagen, die im Jitterbit Marketplace verfügbar sind.
Jitterpak-Best Practices
Beim Erstellen eines Jitterpaks zur Verwendung mit Citizen Integrator-Rezepten empfehlen wir diese Best Practices für die Rezeptentwicklung:
-
Definieren Sie Ihren typischen Anwendungsfall
Bevor Sie mit einem Jitterpak oder Rezept beginnen, sollten Sie eine gute Vorstellung davon haben, was Ihre Benutzer durch die Verwendung des Rezepts erreichen können. Bedenken Sie, dass Sie bei Bedarf mehrere Rezepte erstellen können. Der Anwendungsfall hilft Ihnen zu entscheiden, was Sie in Ihr Jitterpak einbauen und welche Schritte ein Benutzer über die Citizen Integrator-Oberfläche ausfüllen soll.
-
Referenzbeispiele zur Unterstützung beim Einstieg
Schauen Sie sich unsere öffentlichen Jitterpaks zur Referenz an, oder wenn Sie eines finden, das Ihrem Anwendungsfall ähnlich ist, möchten Sie vielleicht sogar damit beginnen. Um eines der Jitterpaks, die für unsere öffentlichen Rezepte erstellt wurden, herunterzuladen, folgen Sie Get a Specific Recipe and Save the Jitterpak Locally unter Jitterbit Command Line Interface. Oder beziehen Sie sich auf unsere Jitterpak-Bibliothek.
-
Erstellen Sie Projektvariablen, wo immer möglich
Projektvariablen sind entscheidend für die Erstellung von Rezepten, die von einem Benutzer über die Weboberfläche des Citizen Integrators einfach ausgefüllt werden können. Denken Sie an Projektvariablen als Felder mit spezifischen Informationen, die Sie von Benutzern verlangen möchten, wenn sie Ihr Rezept verwenden. Erstellen Sie diese Elemente dann als Projektvariablen in Ihrem Jitterpak. Zum Beispiel Verbindungsinformationen für neue Endpunkte.
-
Namespace-Projektvariablen zur späteren Referenz
Wenn Sie Projektvariablen erstellen, ist es eine gute Praxis, sie zu namespace. Zum Beispiel könnte eine Projektvariable für den Host "db.host" genannt werden, um anzuzeigen, dass sie sich auf einen Datenbank-Host bezieht. Dies erleichtert das Lesen der Projektvariablen beim Erstellen Ihrer Rezeptmetadaten.
-
Platzieren Sie Operationen auf der Root-Ebene, wenn Sie sie über einen Rezeptschritt ausführen möchten
Jede Operation, die Sie über einen RunOperation-Schritt in Ihrem Rezept ausführen möchten, muss auf der Root-Ebene des Operationsordners innerhalb des Design Studios platziert werden. Das heißt, wenn Sie Operationen in Unterordnern unter Ihrem Operationsbaum haben, werden diese nicht ausgeführt, wenn sie über einen RunOperation-Schritt exponiert werden. Diese Einschränkung gilt nur für Operationen, die in einem bestimmten Schritt des Rezepts ausgeführt werden. Wenn sich Ihre Operationen in Unterordnern befinden, werden diese weiterhin ausgeführt, wenn das Rezept gespeichert und bereitgestellt wird.
-
Fügen Sie WriteToOperationLog bei Operationen hinzu, die Sie über einen Rezeptschritt ausführen möchten
Fügen Sie WriteToOperationLog bei Operationen hinzu, die Sie über einen RunOperation-Schritt in Ihrem Rezept ausführen möchten (siehe Protokollierungs- und Fehlerfunktionen). Die WriteToOperationLog-Nachrichten werden im Panel unter dem RunOperation-Button in der Citizen Integrator-Oberfläche angezeigt und geben dem Rezeptbenutzer Feedback zur ausgeführten Operation.
-
Verwenden Sie Projektvariablenwerte zum Testen, entfernen Sie jedoch die Werte beim Exportieren als Jitterpak
Wo immer Sie Projektvariablen in Ihrem Jitterpak verwenden, stellen Sie sicher, dass Sie beim Exportieren des Jitterpaks keine spezifischen Werte einfügen. Denken Sie daran, dass die Werte normalerweise leer sind, damit sie vom Benutzer beim Konfigurieren des Rezepts ausgefüllt werden können. Es ist immer eine gute Idee, Ihr Design Studio-Projekt mit spezifischen Werten zu testen, aber stellen Sie sicher, dass Sie diese vor dem Export entfernen. Hier sind einige Optionen zum Entfernen von Werten:
-
Alle Werte: Um alle Projektvariablenwerte zu entfernen, deaktivieren Sie beim Exportieren als Jitterpak das Kontrollkästchen "Projektvariablenwerte einbeziehen". Dies ist die Standard- und empfohlene Methode, um Projektvariablenwerte zu entfernen.
-
Einige Werte: Um nur spezifische Projektvariablen zu entfernen, entfernen Sie einfach den Standardwert der Projektvariablen. Diese Option kann geeigneter sein als die oben beschriebene Checkbox, wenn Sie absichtlich einige Projektvariablenwerte beibehalten möchten. Wenn Ihr Rezept beispielsweise privat innerhalb Ihrer Organisation ist, könnten Sie Informationen wie eine URL einfügen, die sich nicht pro Benutzer ändert, der das Rezept ausfüllt.
-
-
Beachten Sie die integrierten Zeitpläne
Wenn Sie einen Zeitplan innerhalb des Jitterpaks einfügen, beachten Sie, wann die Operation geplant ist, und dokumentieren Sie dies in den Rezeptmetadaten. Andernfalls sind die Benutzer sich des Zeitplans, der im Jitterpak integriert ist, nicht bewusst. Zeitpläne können derzeit nicht innerhalb eines Rezepts konfiguriert werden.
Erstellen Sie Rezeptmetadaten
Sie können beginnen, die Metadaten für Citizen Integrator-Rezepte zu erstellen, während Sie Ihr Jitterpak erstellen, oder die Metadaten erstellen, wenn Sie fertig sind. Die Rezeptmetadaten bieten zwei Hauptfunktionen:
- Definiert die Schritte, die Benutzer durchlaufen müssen, um das Rezept über die Benutzeroberfläche des Citizen Integrators zu konfigurieren.
- Verbindet alle benutzereingereichten Werte mit dem zugehörigen Jitterpak des Rezepts, sodass die neu konfigurierten Operationen wie erwartet über Jitterbit ausgeführt werden.
Dieser Abschnitt ist so organisiert, dass er eine Liste von Best Practices für die Erstellung von Rezepten, eine Beispielanleitung zur Erstellung eines Rezepts, die Arten von Schritten, die im Rezept verwendet werden können, und schließlich eine umfassende Liste aller möglichen Teile der Rezeptmetadatendatei bietet.
Best Practices für Metadaten
Bei der Erstellung Ihrer Metadatendatei für Citizen Integrator-Rezepte sind diese Best Practices hilfreich für diejenigen, die neu in der Erstellung von Rezepten sind.
-
Beziehen Sie sich auf Beispiele, um die Benutzeroberfläche des Citizen Integrators mit den Rezeptmetadaten zu vergleichen
Werfen Sie einen Blick darauf, wie unsere öffentlichen Rezepte strukturiert sind, und vergleichen Sie, was Sie in der Benutzeroberfläche des Citizen Integrators sehen, mit der tatsächlichen Metadatendatei für dieses Rezept. Wenn Sie eines finden, das Ihrem Anwendungsfall ähnlich ist, möchten Sie vielleicht sogar damit beginnen.
-
Benutzeroberfläche des Citizen Integrators: Greifen Sie über das Harmony-Portal auf die Benutzeroberfläche des Citizen Integrators zu. Weitere Details finden Sie unter Citizen Integrator - Dashboard.
-
Rezeptmetadaten: Laden Sie die Rezeptmetadaten für eines unserer öffentlichen Rezepte herunter, indem Sie Ein bestimmtes Rezept abrufen und das Jitterpak lokal speichern der Jitterbit-Befehlszeilenschnittstelle folgen.
-
-
Erstellen Sie Ihr Rezept in Iterationen
Erwarten Sie, dass Sie Anpassungen an Ihrem Jitterpak vornehmen müssen, während Sie an Ihren Rezeptmetadaten arbeiten, und umgekehrt. Sie können immer eine erste Version hochladen, überprüfen, wie sie in der Benutzeroberfläche des Citizen Integrators angezeigt wird und funktioniert, und dann Ihre Rezeptdateien von der Seite Citizen Integrator - Meine Rezepte oder durch Befolgen von Ein neues Rezept und Jitterpak hochladen und Ein bestehendes Rezept und Jitterpak aktualisieren der Jitterbit-Befehlszeilenschnittstelle weiter aktualisieren.
-
Einführung und Überprüfungsschritte in die Rezeptmetadaten einfügen
Es wird empfohlen, mit einem Einführungsschritt zu beginnen und mit einem Überprüfungsschritt zu enden, um die Rezepte konsistent zu halten. Diese Abschnitte verwenden beide den Typ
org.jitterbit.integration.data.entity.Description
(beschrieben unter Schrittarten).-
Die Einführung sollte verwendet werden, um zu erklären, wofür das Rezept verwendet wird, etwaige Einschränkungen zu beschreiben, Standardfelder aufzulisten und/oder Informationen zu Voraussetzungen bereitzustellen, die jemand, der das Rezept verwendet, beachten sollte.
-
Der Überprüfungsschritt sollte zusammenfassen und dem Benutzer das erwartete Verhalten bestätigen, wenn das konfigurierte Rezept bereitgestellt wird. Wenn Sie einen Zeitplan innerhalb des Jitterpaks einfügen, ist der Überprüfungsschritt ein guter Ort, um die Zeit zu dokumentieren, zu der die Operation geplant ist. Denken Sie daran, die Zeitzone anzugeben (UTC ist der Standard innerhalb von Design Studio, aber Sie könnten die Zeit auch in Ihre gewünschte Zeitzone innerhalb von Design Studio umrechnen und diese angeben).
-
-
Namen innerhalb Ihrer Rezeptmetadaten standardisieren
Standardisieren Sie Ihren Rezeptnamen, Projektnamen, Dateinamen und Verzeichnisstruktur. Dies hilft, unbeabsichtigte Fehler bei der Bezugnahme auf Teile innerhalb des Rezepts zu vermeiden und erleichtert die Verwaltung aller Teile Ihres Rezepts.
-
Für die Migration von Endpunkt zu Endpunkt, Endpunkte richtungsbezogen anordnen
Bei Migrationen von einem Endpunkt zu einem anderen (z. B. Migration von Salesforce-Konten zu NetSuite-Unternehmen) die Endpunkte richtungsbezogen anordnen:
- In der JSON-Datei:
"name": "Migrate Salesforce Accounts to NetSuite Companies"
- In der JSON-Datei:
"projectName": "salesforce_accounts-to-netsuite_companies"
- Verzeichnis:
salesforce-to-netsuite/accounts-to-companies/
- Dateinamen:
salesforce_accounts-to-netsuite_companies.jpk
undsalesforce_accounts-to-netsuite_companies.json
- In der JSON-Datei:
-
Für die Endpunktsynchronisierung, Endpunkte alphabetisch anordnen
Bei der Synchronisierung von zwei Endpunkten (z. B. Synchronisierung von Salesforce-Konten und NetSuite-Unternehmen) die Endpunkte alphabetisch anordnen:
- In der JSON-Datei:
"name": "Synchronize NetSuite Companies and Salesforce Accounts"
- In der JSON-Datei:
"projectName": "netsuite_companies-salesforce_accounts"
- Verzeichnis:
netsuite-salesforce/companies-accounts/
- Dateinamen:
netsuite_companies-salesforce_accounts.jpk
undnetsuite_companies-salesforce_accounts.json
- In der JSON-Datei:
-
Definieren Sie Projektvariablen am Ende der Rezeptmetadaten
Alle Projektvariablen, die innerhalb Ihres Jitterpaks verwendet und in den Schritten der Rezeptmetadaten referenziert werden, sollten am Ende Ihrer Rezeptmetadatendatei definiert werden.
-
Verstecken Sie Schritte, die Sie in andere Schritte einbetten möchten
Sie können ein verstecktes Attribut für einen Schritt angeben, um ihn im Citizen Integrator-Interface auszublenden, aber dann diesen Schritt mit einem Pfad referenzieren, der auf eine Aktion mit "useStepAsRequest" zeigt. Dies ist eine gute Idee, wenn Sie beispielsweise einen Schritt für das Testen von Verbindungsinformationen eingerichtet haben, ihn jedoch als Testverbindungs-Schaltfläche innerhalb eines anderen Schrittes einfügen möchten.
-
Lassen Sie Felder weg, die beim Hochladen der Rezeptmetadaten generiert werden
Einige Felder in der Rezeptmetadatendatei werden beim Hochladen der Datei nicht angegeben und stattdessen vom System generiert, wenn die Datei hochgeladen wird. Diese Felder befinden sich am Anfang und Ende der Rezeptmetadatendatei.
- id: Dieses Feld wird ausgefüllt, wenn die Rezeptmetadaten in das Rezept-Repository hochgeladen werden. Nach dem Hochladen können Sie die generierte Rezept-ID mit Alle Rezepte auflisten der Jitterbit-Befehlszeilenschnittstelle herausfinden.
- guid: Erforderlich Dieses Feld wird ausgefüllt, wenn ein zugehöriges Jitterpak in das Rezept-Repository hochgeladen wird. Die GUID (global eindeutiger Bezeichner) wird mit der des zugehörigen Jitterpaks ausgefüllt. Dieses Feld ist jedoch erforderlich, daher müssen Sie es weiterhin in der Datei angeben. Der tatsächliche Bezeichner wird beim Hochladen aktualisiert.
- createdAt: Der Unix-Epoch-Zeitstempel in Millisekunden, wann das Rezept erstmals hochgeladen wurde.
- updatedAt: Der Unix-Epoch-Zeitstempel in Millisekunden, wann das Rezept zuletzt aktualisiert wurde.
-
updatedBy
- userId: Der Harmony-Benutzername der Person, die das Rezept zuletzt aktualisiert hat.
- name: Der Name der Person, die das Rezept zuletzt aktualisiert hat.
- orgName: Der Name der Organisation, zu der die Person gehört, die das Rezept zuletzt aktualisiert hat.
-
orgid: Die ID der Organisation, zu der die Person gehört, die das Rezept hochgeladen hat. Das Rezept gehört dieser Organisation und nur der Rezeptautor oder ein Org-Admin kann das Rezept aktualisieren oder löschen (siehe Citizen Integrator - Meine Rezepte oder die Jitterbit-Befehlszeilenschnittstelle).
-
author
- **userId:** Der Harmony-Benutzername der Person, die das Rezept hochgeladen hat. - **name:** Der Name der Person, die das Rezept hochgeladen hat. - **orgName:** Der Name der Organisation, zu der die Person gehört, die das Rezept hochgeladen hat.
Nach dem Hochladen eines Rezepts können Sie die für diese Felder generierten Werte sehen, wenn Sie Ein bestimmtes Rezept abrufen verwenden, um die Rezeptmetadaten zurückzugeben (siehe die Jitterbit-Befehlszeilenschnittstelle).
-
Verwenden Sie HTML für Rich Text
Wenn Sie Links, Listen, Fettdruck usw. innerhalb Ihrer Rezeptschritte verwenden möchten, versuchen Sie, HTML zu verwenden. Die meisten Felder, in denen Sie diese verwenden möchten, erlauben die Verwendung von HTML, was Ihnen mehr Kontrolle über das Aussehen und die Funktionalität der Rezeptschritte gibt.
-
Vor dem Hochladen validieren
Es ist immer eine gute Idee, sicherzustellen, dass Ihre Rezeptmetadaten vor dem Hochladen validiert werden. Tun Sie dies, indem Sie Ein Rezept validieren verwenden (siehe die Jitterbit-Befehlszeilenschnittstelle). Sie sollten keine Rezepte hochladen, die nicht validiert werden, da sie Fehler für Benutzer aufweisen, die versuchen, das Rezept zu konfigurieren.
-
Protokolle zur Fehlersuche überprüfen
Nachdem Sie Ihr Rezept hochgeladen haben, können Sie es auch testen, indem Sie es über die Benutzeroberfläche des Citizen Integrators konfigurieren und bereitstellen. Vergessen Sie nicht, dass alle gleichen Werkzeuge zur Fehlersuche verfügbar sind, wie sie für jedes andere Jitterbit-Projekt verfügbar sind. Siehe Citizen Integrator - Meine Rezepte oder überprüfen Sie die Betriebsprotokolle, Projekte, Aktivitäten usw. innerhalb der Management-Konsole.
Beispiel-Walkthrough
Dieser Abschnitt bietet eine Anleitung zur Erstellung eines Rezepts für die Verwendung mit der Citizen Integrator-Weboberfläche. Dieses Beispiel verwendet einige der häufigeren Elemente von Rezepten, die Sie normalerweise antreffen könnten. Eine vollständige Liste der Optionen, die Sie in Rezepten einfügen können, finden Sie unter Rezeptmetadaten-Definitionen.
In diesem Beispiel erstellen wir ein Rezept, das Konten von Salesforce synchronisiert und sie in Zendesk aktualisiert. Sie können dieser Demonstration folgen, indem Sie das neueste Rezept für Salesforce zu Zendesk herunterladen, indem Sie Ein bestimmtes Rezept abrufen und Das Jitterpak lokal speichern der Jitterbit-Befehlszeilenschnittstelle folgen.
Schritt 1: Projekt im Design Studio erstellen
Der erste Schritt besteht darin, Ihr Projekt im Design Studio einzurichten. Beim Erstellen Ihres Projekts sollten Sie sich auf die oben genannten Jitterpak-Best Practices beziehen, die spezifisch für die Erstellung von Jitterpaks zur Verwendung mit Rezepten sind.
Diese Komponenten des Jitterpaks werden für das Rezept von Salesforce zu Zendesk verwendet:
-
Operationen: Dieses Jitterpak ist so eingerichtet, dass beim Ausführen der RunNow-Operation Jitterbit Salesforce abfragt, um Informationen über die Fälle zu erhalten (Fälle abfragen), und dann diese Salesforce-Fälle verwendet, um Tickets in Zendesk zu aktualisieren und einzufügen (Zendesk-Tickets erstellen). Wenn Sie das Jitterpak heruntergeladen haben, um mitzufolgen, können Sie auf jedes Element des Diagramms klicken, um mehr über die Komponenten der Operationen zu erfahren.
-
Transformationen: Jede Transformation wurde so zugeordnet, dass die entsprechenden Standardfelder im Rezept enthalten sind. Viele Rezepte beinhalten die Zuordnung von Standardfeldern von einem Endpunkt zu einem anderen. In diesem Beispiel verwendet die Salesforce-Abfrage nur die entsprechenden Felder für dieses spezifische Rezept (d.h. Fallnummer, Ursprung, Betreff, bereitgestellte E-Mail, bereitgestellter Name). Wenn Sie Ihr eigenes Rezept für die Verwendung in einer Organisation erstellen, die benutzerdefinierte Salesforce-Felder verwendet, könnten Sie auch wählen, diese in Ihr Rezept zu integrieren, solange die Zuordnung hier definiert ist.
-
Quellen & Ziele: Definieren Sie alle Quellen und Ziele, wie Sie es normalerweise für ein Design Studio-Projekt tun würden. Dieses spezielle Rezept verwendet temporären Speicher für Salesforce-Konten und Salesforce-Fälle sowie HTTP-Ziele als Verbindungsparameter für Zendesk.
-
Webdienstmethoden & gehostete HTTP-Endpunkte: Dieses Jitterpak verwendet keine dieser Komponenten, aber Sie können sie genauso konfigurieren, wie Sie es für jedes andere Design Studio-Projekt tun würden.
-
Zeitpläne: Dieses Jitterpak enthält keinen Zeitplan, aber Sie können hier einen hinzufügen, wenn Sie beispielsweise möchten, dass die Operation täglich ausgeführt wird. Da der Zeitplan nicht vom Benutzer des Rezepts konfiguriert werden kann, sollten Sie sicherstellen, dass Sie in einem Textfeld des Rezepts vermerken, wann Ihre Operation geplant ist. Ein typischer Ort, um dies hinzuzufügen, ist der Überprüfungs-Schritt.
-
E-Mail-Nachrichten: Dieses Jitterpak enthält keine E-Mail-Nachrichten, aber Sie können wählen, diese mithilfe von Projektvariablen einzurichten, wenn Sie möchten, dass Ihr Rezept E-Mail-Benachrichtigungen generiert.
-
Skripte: In diesem Jitterpak werden Skripte verwendet, um Nachrichten in das Protokoll zu schreiben, einschließlich spezifischer Erfolgs- und Fehlermeldungen.
-
Projektvariablen: Projektvariablen sind entscheidend für die Erstellung konfigurierbarer Rezepte. Typischerweise werden Projektvariablen überall dort verwendet, wo Benutzer während der Rezeptkonfiguration Werte angeben sollen. In diesem Jitterpak haben wir Projektvariablen für Salesforce- und Zendesk-Anmeldeinformationen. Denken Sie daran, Ihr Design Studio-Projekt mit echten Werten zu testen und diese vor dem Export des Jitterpaks zu entfernen.
-
Jitterbit Connect: Da dieses Jitterpak Salesforce verwendet, sind die Verbindungsanmeldeinformationen für die Organisation in diesem Abschnitt enthalten.
-
Connectoren: Dieses Jitterpak verwendet keine Connectoren, aber viele andere öffentliche Rezepte tun dies. Wenn Sie ein neues Rezept mit einem Connector erstellen möchten, kann es eine gute Idee sein, ein anderes Beispiel herunterzuladen, das einen der Connectoren wie Autodesk verwendet.
Schritt 2: Testen Sie das Design Studio-Projekt
Nachdem Ihre Komponenten definiert sind, speichern, bereitstellen und führen Sie Ihr Design Studio-Projekt aus, um sicherzustellen, dass es erfolgreich läuft.
Sie können das Betriebsprotokoll auf Fehlermeldungen überprüfen.
Schritt 3: Exportieren Sie das Design Studio-Projekt
Entfernen Sie alle Projektvariablenwerte oder andere Anmeldeinformationen, die Sie in Ihr Rezept einbauen werden, und exportieren Sie Ihr Design Studio-Projekt als Jitterpak.
In diesem Beispiel entfernen wir Projektvariablen und Anmeldeinformationen in der Exportphase. Sie können es vorerst an jedem gewünschten Ort speichern, da Sie das Jitterpak später hochladen werden (siehe Citizen Integrator - Meine Rezepte oder die Jitterbit-Befehlszeilenschnittstelle).
Schritt 4: Erstellen Sie Rezeptmetadaten
Jetzt, da Sie ein Jitterpak erstellt haben, können Sie Ihre Rezeptmetadaten anpassen, damit sie mit den Komponenten in Ihrem Jitterpak übereinstimmen.
Beziehen Sie sich auf die Best Practices für Metadaten oben, um Ihre Rezeptmetadatendatei zu erstellen, sowie auf die Schrittarten, wenn Sie ein neues Rezept beginnen. Eine vollständige Liste der Rezeptdefinitionen finden Sie in den Rezeptmetadaten-Definitionen unten zur Referenz.
Die vollständige JSON-Datei, die zur Definition der Rezeptmetadaten von Salesforce zu Zendesk verwendet wird, ist unten angegeben, gefolgt von einer Aufschlüsselung jedes Abschnitts der Rezeptmetadatendatei.
JSON-Metadaten - Salesforce zu Zendesk
{
"description": "Sync accounts from Salesforce and upsert to Zendesk",
"name": "Salesforce to Zendesk",
"guid": "8yg7df8a-b526-4d14-a49d-39090d63a426",
"projectName": "Salesforce to Zendesk",
"steps": [
{
"name": "Introduction",
"description": "Sync accounts from Salesforce and upsert them to Zendesk",
"label": "Introduction",
"type": "org.jitterbit.integration.data.entity.Description",
"hidden": false,
"properties": [
{
"name": "template",
"defaultValue": "<div><p>This <b>Recipe</b> Syncs accounts from Salesforce and upserts them to Zendesk.</p></div>"
}
]
},
{
"name": "Salesforce Endpoint Project Variables",
"description": "Set-up the source Salesforce endpoint project variables",
"type": "org.jitterbit.integration.data.entity.ProjectVariable",
"hidden": false,
"properties": [],
"projectVariables": {
"names": [
"com.salesforce.username",
"com.salesforce.password",
"com.salesforce.token"
],
"action": {
"name": "test-endpoint-connection",
"displayName": "Test Connection",
"useStepAsRequest": "/Source/SalesforceEndpoint"
}
}
},
{
"name": "Test Salesforce Connection Information",
"description": "Test Salesforce endpoint connection information",
"label": "Source Endpoint (Salesforce)",
"type": "org.jitterbit.integration.data.entity.SalesforceConnector",
"hidden": true,
"path": "/Source/SalesforceEndpoint",
"properties": [
{
"name": "version",
"defaultValue": "37.0"
},
{
"name": "host",
"defaultValue": "https://login.salesforce.com"
},
{
"name": "username",
"defaultValue": "[com.salesforce.username]"
},
{
"name": "password",
"hidden": false,
"defaultValue": "[com.salesforce.password]"
},
{
"name": "token",
"hidden": false,
"defaultValue": "[com.salesforce.token]"
},
{
"name": "sandbox",
"defaultValue": "0"
}
]
},
{
"name": "Zendesk Endpoint Project Variables",
"description": "Set-up the target Zendesk endpoint project variables",
"type": "org.jitterbit.integration.data.entity.ProjectVariable",
"hidden": false,
"properties": [],
"projectVariables": {
"names": [
"com.zendesk.username",
"com.zendesk.password"
]
}
},
{
"name": "RunNow",
"description": "The Run Now operation runs the integration right now.",
"label": "RunNow",
"type": "org.jitterbit.integration.data.entity.RunOperation",
"hidden": false,
"path": "/Operations/RunNow",
"properties": [
{
"name": "operationName",
"defaultValue": "RunNow",
"description": "Run the recipe to get Salesforce accounts and upsert them to NetSuite right now."
}
]
},
{
"name": "Review",
"description": "Push this recipe to the cloud",
"label": "Review",
"type": "org.jitterbit.integration.data.entity.Description",
"hidden": false,
"properties": [
{
"name": "template",
"defaultValue": "<div><p>When you click <b>Save</b> this recipe will be ran daily at 3am indefinitely</p></div>"
}
]
}
],
"projectVariables": [
{
"name": "com.salesforce.username",
"displayName": "Salesforce Login",
"description": "Please provide your Salesforce username or email."
},
{
"name": "com.salesforce.password",
"displayName": "Salesforce Password",
"description": "Please provide your Salesforce password.",
"type": "password"
},
{
"name": "com.salesforce.token",
"displayName": "Salesforce Security Token",
"description": "Please provide your Salesforce security token.",
"type": "password"
},
{
"name": "com.zendesk.username",
"displayName": "Zendesk Login",
"description": "Please provide your Zendesk email."
},
{
"name": "com.zendesk.password",
"displayName": "Zendesk Password",
"description": "Please provide your Zendesk password.",
"type": "password"
}
],
}
-
description: Erforderlich
Dieses Feld sollte eine Beschreibung des Rezepts enthalten.
"description": "Konten von Salesforce synchronisieren und in Zendesk upserten"
-
guid: Erforderlich
Dieses Feld kann beim ersten Hochladen des Rezepts jeden Wert enthalten; beim Hochladen mit einem zugehörigen Jitterpak wird der Wert durch die GUID (global eindeutiger Bezeichner) des zugehörigen Jitterpak ersetzt.
"guid": "8yg7df8a-b526-4d14-a49d-39090d63a426"
-
name: Erforderlich
Dieses Feld sollte den Namen des Rezepts enthalten.
Wird als Titel des Rezepts in der Rezeptliste angezeigt:"name": "Salesforce to Zendesk"
Wird als Titel des Rezepts unter den Konfigurationsschritten angezeigt:
-
projectName: Erforderlich
Dieses Feld sollte mit dem Namen der Jitterpak (JPK)-Datei übereinstimmen.
"projectName": "Salesforce to Zendesk"
-
steps: Erforderlich
Die Schritte definieren die Konfigurationsschritte in der Citizen Integrator-Oberfläche. Die Schrittattribute, die im Rezept Salesforce to Zendesk verwendet werden, sind unten aufgeführt, gefolgt von einem Vergleich der Citizen Integrator-Oberfläche und den JSON-Metadaten für den Schritt.
- name: Erforderlich Dieses Feld ist der Name des Schrittes.
- description: Erforderlich Dieses Feld ist eine Beschreibung des Schrittes.
- label: Dieses Feld ist ein Label, das verwendet werden kann, um einen Schrittname darzustellen, der sich vom definierten Namen des Schrittes unterscheidet.
- type: Erforderlich Dieses Feld ist der Typ, der mit diesem Schritt verbunden ist. Siehe Schrittarten für eine Erklärung der verschiedenen Schrittarten.
- required: Dieser Wert kann auf true oder false gesetzt werden. Wenn true, muss der Rezeptschritt abgeschlossen werden, bevor die Aktionen Testverbindung oder Operation ausführen verwendet werden können.
- hidden: Dieser Wert kann auf true oder false gesetzt werden. Wenn true, wird der Schritt in der Citizen Integrator-Oberfläche verborgen. Dies kann nützlich sein, wenn Sie Schritte haben, die Sie nicht anzeigen möchten, z. B. für Testverbindungsinformationen. Wenn false, wird der Schritt angezeigt. Der Standardwert ist false, was bedeutet, dass Schritte standardmäßig angezeigt werden.
- path: Verwenden Sie dies, wenn Sie Schritte ausblenden und in anderen Schritten darauf verweisen möchten. Dieser Wert sollte definiert werden, wenn Sie planen, einen versteckten Schritt in einen anderen Schritt einzubetten. Wenn Sie beispielsweise einen Testverbindungsbutton innerhalb eines Schrittes einfügen möchten, können Sie den Schritt für Testverbindungsinformationen ausblenden und dann in einem anderen Schritt darauf verweisen. Der Weg, wie wir darauf verweisen, besteht darin, einen Pfad zu definieren.
- properties: Kann nur verwendet werden, wenn projectVariables nicht verwendet werden. Diese umfassen Eigenschaften, die mit dem Schritt verbunden sind. In einem Schritt können entweder Eigenschaften oder projectVariables zugewiesen werden, aber nicht beides gleichzeitig.
- name: Erforderlich Dieses Feld ist der Name der für diesen Schritt definierten Eigenschaft.
- defaultValue: Dieses Feld kann einen Standardwert enthalten, der mit der Eigenschaft verbunden ist. Typischerweise wird dies verwendet, um Anweisungen oder Informationen in einen Schritt einzufügen.
- description: Dieses Feld kann Standardtext enthalten, der im Textfeld angezeigt wird.
- projectVariables: Kann nur verwendet werden, wenn Eigenschaften nicht verwendet werden. Diese umfassen eine Liste von Projektvariablen, die zusammengefasst werden und konfigurierbare Entitäten darstellen. In einem Schritt können entweder projectVariables oder Eigenschaften zugewiesen werden, aber nicht beides gleichzeitig.
- names: Erforderlich Dieses Feld enthält eine Liste aller Projektvariablen, die in diesem Schritt verwendet werden.
- action: Dieses Feld definiert alle Aktionen. Typischerweise werden diese als Schaltflächen innerhalb eines Schrittes verwendet, um Aktionen auszuführen, die als versteckte Schritte definiert sein können.
- name: Erforderlich Dieses Feld ist der Name der Aktion.
- displayName: Dieses Feld kann verwendet werden, wenn Sie einen anderen Namen anzeigen möchten, der in der Citizen Integrator-Oberfläche angezeigt wird.
- useStepAsRequest: Erforderlich Dieses Feld wird verwendet, um den Pfad zu Eigenschaften bereitzustellen, die in einem anderen Schritt definiert sind, der nicht gerendert wird. Verwenden Sie denselben Wert, den Sie für "path" im versteckten Schritt definiert haben.
Schritt 1: Einführung
JSON-Metadaten für Schritt 1
{ "name": "Introduction", "description": "Sync accounts from Salesforce and upsert them to Zendesk", "label": "Introduction", "type": "org.jitterbit.integration.data.entity.Description", "hidden": false, "properties": [ { "name": "template", "defaultValue": "<div><p>This <b>Recipe</b> Syncs accounts from Salesforce and upserts them to Zendesk.</p></div>" } ] },
Schritt 2: Salesforce-Endpunkt-Projektvariablen
JSON-Metadaten für Schritt 2
{ "name": "Salesforce Endpoint Project Variables", "description": "Set-up the source Salesforce endpoint project variables", "type": "org.jitterbit.integration.data.entity.ProjectVariable", "hidden": false, "properties": [], "projectVariables": { "names": [ "com.salesforce.username", "com.salesforce.password", "com.salesforce.token" ], "action": { "name": "test-endpoint-connection", "displayName": "Test Connection", "useStepAsRequest": "/Source/SalesforceEndpoint" } } },
Versteckter Schritt: Test Salesforce-Verbindungsinformationen
JSON-Metadaten für den versteckten Schritt
{ "name": "Test Salesforce Connection Information", "description": "Test Salesforce endpoint connection information", "label": "Source Endpoint (Salesforce)", "type": "org.jitterbit.integration.data.entity.SalesforceConnector", "hidden": true, "path": "/Source/SalesforceEndpoint", "properties": [ { "name": "version", "defaultValue": "37.0" }, { "name": "host", "defaultValue": "https://login.salesforce.com" }, { "name": "username", "defaultValue": "[com.salesforce.username]" }, { "name": "password", "hidden": false, "defaultValue": "[com.salesforce.password]" }, { "name": "token", "hidden": false, "defaultValue": "[com.salesforce.token]" }, { "name": "sandbox", "defaultValue": "0" } ] },
Schritt 3: Zendesk-Endpunkt-Projektvariablen
JSON-Metadaten für Schritt 3
{ "name": "Zendesk Endpoint Project Variables", "description": "Set-up the target Zendesk endpoint project variables", "type": "org.jitterbit.integration.data.entity.ProjectVariable", "hidden": false, "properties": [], "projectVariables": { "names": [ "com.zendesk.username", "com.zendesk.password" ] } },
Schritt 4: RunNow
JSON-Metadaten für Schritt 4
{ "name": "RunNow", "description": "The Run Now operation runs the integration right now.", "label": "RunNow", "type": "org.jitterbit.integration.data.entity.RunOperation", "hidden": false, "path": "/Operations/RunNow", "properties": [ { "name": "operationName", "defaultValue": "RunNow", "description": "Run the recipe to get Salesforce accounts and upsert them to NetSuite right now." } ] },
Schritt 5: Überprüfung
JSON-Metadaten für Schritt 5
{ "name": "Review", "description": "Push this recipe to the cloud", "label": "Review", "type": "org.jitterbit.integration.data.entity.Description", "hidden": false, "properties": [ { "name": "template", "defaultValue": "<div><p>When you click <b>Save</b> this recipe will be ran daily at 3am indefinitely</p></div>" } ] }
-
projectVariables: Dieser Abschnitt definiert alle Projektvariablen, die in den Rezeptschritten verwendet werden. Beachten Sie, dass dies ein neuer Abschnitt der Rezeptmetadatendatei ist, der am Ende nach den Schritten kommt, und nicht mit den innerhalb der Schritte verwendeten projectVariables verwechselt werden sollte.
- name: Erforderlich Dieses Feld enthält den Namen der Projektvariablen, wie er in Ihrem Jitterpak verwendet wird.
- displayName: Dieses Feld kann verwendet werden, wenn Sie einen anderen Namen im Citizen Integrator-Interface anzeigen möchten.
- description: Dieses Feld kann verwendet werden, um Text unter dem Feld einzufügen, um beispielsweise Anweisungen zu geben, was Benutzer eingeben sollen.
- type: Dieses Feld kann verwendet werden, um den Typ des Wertes zu definieren, den der Benutzer bereitstellen kann. Der Standardwert ist string. Sie können auch integer, float, double, date, time, boolean, password, enum, dropdown, checkboxes oder textarea verwenden.
- required: Dieser Wert kann auf true oder false gesetzt werden. Wenn true, muss das Projektvariablenfeld ausgefüllt werden, bevor die Aktionen Testverbindung oder Operation ausführen verwendet werden können.
- regex: Dieses Feld kann verwendet werden, um einen regulären Ausdruck (string) bereitzustellen, der mit dem Wert der Projektvariablen übereinstimmen muss, wenn das Rezept konfiguriert wird, bevor die Aktionen Testverbindung oder Operation ausführen verwendet werden können. Zum Beispiel:
.+@.+[.].+
. - value: Dieses Feld kann verwendet werden, wenn Sie einen Standardwert für Ihre Projektvariablen zuweisen möchten. Dies kann verwendet werden, um einen Standardwert mit anderen optionalen Werten für die Projektvariablen bereitzustellen. Ein zusätzliches Beispiel für JSON-Metadaten mit Werten und Optionen wird in Beispiel 2 unten bereitgestellt.
- options: Dieses Feld kann verwendet werden, um mögliche Werte in einem Dropdown-Menü, Textbereich oder Checkboxen anzuzeigen. Ein zusätzliches Beispiel für JSON-Metadaten mit Werten und Optionen wird in Beispiel 2 unten bereitgestellt.
JSON-Metadatenbeispiel 1
"projectVariables": [ { "name": "com.salesforce.username", "displayName": "Salesforce Login", "description": "Please provide your Salesforce username or email." }, { "name": "com.salesforce.password", "displayName": "Salesforce Password", "description": "Please provide your Salesforce password.", "type": "password" }, { "name": "com.salesforce.token", "displayName": "Salesforce Security Token", "description": "Please provide your Salesforce security token.", "type": "password" }, { "name": "com.zendesk.username", "displayName": "Zendesk Login", "description": "Please provide your Zendesk email." }, { "name": "com.zendesk.password", "displayName": "Zendesk Password", "description": "Please provide your Zendesk password.", "type": "password" } ]
JSON-Metadatenbeispiel 2
"projectVariables": [ { "name": "myDropdown", "displayName": "Dropdown Test", "value": "ProdOperation", "type": "dropdown", "description": "A field to test the dropdown feature", "options": [ { "name": "Development", "value": "DevOperation" }, { "name": "Production", "value": "ProdOperation" } ] }, { "name": "myCheckboxes", "displayName": "Checkbox Test", "value": "ProdOperation", "type": "checkboxes", "description": "A field to test the checkbox feature", "options": [ { "name": "Development", "value": "DevOperation" }, { "name": "Production", "value": "ProdOperation" } ] }, { "name": "myTextarea", "displayName": "Comments", "type": "textarea", "value": "This is a comment for the textarea", "description": "SAP Language" } ]
Schrittarten
Jeder Schritt innerhalb der Metadaten des Citizen Integrator-Rezepts hat ein Attribut "type", das den Typ des Schrittes angibt. Diese Schritte entsprechen direkt denjenigen, die Benutzer in der Benutzeroberfläche des Citizen Integrators sehen, und die Typen dieser Schritte entsprechen direkt dem Design Studio.
Dies sind die verfügbaren Schrittarten. Zusätzliche Informationen zu jeder Schrittart sind in den folgenden Abschnitten enthalten.
org.jitterbit.integration.data.entity.Description
org.jitterbit.integration.data.entity.ProjectVariable
org.jitterbit.integration.data.entity.RunOperation
org.jitterbit.integration.data.entity.SalesforceConnector
org.jitterbit.integration.data.entity.GenericProperties
org.jitterbit.integration.data.entity.Schedule
org.jitterbit.integration.data.entity.ApiBinding
org.jitterbit.integration.data.entity.HttpForm
org.jitterbit.integration.data.entity.TemporaryStorage
org.jitterbit.integration.data.entity.FileShare
org.jitterbit.integration.data.connector.FTPEndpoint
org.jitterbit.integration.data.connector.DBEndpoint
org.jitterbit.integration.data.connector.AutoDeskEndpoint
org.jitterbit.integration.data.connector.NetSuiteEndpoint
org.jitterbit.integration.data.connector.SapEndpoint
org.jitterbit.integration.data.connector.JMSEndpoint
org.jitterbit.integration.data.connector.MSAXEndpoint
org.jitterbit.integration.data.connector.Four51Endpoint
org.jitterbit.integration.data.connector.ClarizenEndpoint
org.jitterbit.integration.data.connector.QuickBooksEndpoint
Beschreibung
org.jitterbit.integration.data.entity.Description
Dieser Schrittstyp sollte verwendet werden, wenn detaillierte Informationen über ein Rezept oder einen Schritt bereitgestellt werden müssen, oder kann am Ende des Rezepts als Überprüfung verwendet werden.
-
Zum Beispiel:
{ "name": "Introduction", "description": "Insert accounts into a postgres database", "label": "Introduction", "type": "org.jitterbit.integration.data.entity.Description", "properties": [ { "name": "template", "defaultValue": "<div>...</div>" }
-
Wenn dieser Schritt der letzte Schritt innerhalb eines Rezepts ist (definiert als Überprüfungsschritt) und er die Eigenschaft "submitOperationsToRun" enthält, dann wird die Schaltfläche Speichern & Beenden diese Logik bezüglich der Operationen anwenden, die zur Ausführung eingereicht werden müssen. Beachten Sie, dass, wenn diese Optionen nicht gesetzt sind, die Schaltfläche Speichern & Beenden keine Operationen zur Ausführung einreichen wird.
-
Es werden keine Operationen zur Ausführung eingereicht, wenn:
{ "name": "submitOperationsToRun", "value": "" }
-
Nur die angegebenen Operationen werden zur Ausführung eingereicht, wenn:
{ "name": "submitOperationsToRun", "value": "Operation1;Operation2" }
-
Alle Operationen werden zur Ausführung eingereicht, wenn die Eigenschaft nicht vorhanden ist:
{ "name": "submitOperationsToRun", "value": "*" }
-
Projektvariable
org.jitterbit.integration.data.entity.ProjectVariable
Dieser Schrittstyp wird verwendet, um eine Gruppe von Projektvariablen zusammenzufassen. Er kann auch verwendet werden, um eine Endpunktdefinition neu zu definieren. Eine optionale "Aktion" kann daran angehängt werden.
-
Zum Beispiel:
{ "name": "Ftp Endpoint", "description": "Set-up the Source FTP Endpoint project variables", "type": "org.jitterbit.integration.data.entity.ProjectVariable", "projectVariables": { "names": [ "acme.org.ftp.host", "acme.org.ftp.username", "acme.org.ftp.password", "acme.org.ftp.path", "acme.org.ftp.filename" ], "action": { "name": "test-endpoint-connection", "displayName": "Test Connection", "useStepAsRequest": "/Source/FtpSite" } } }
-
Diese "Aktionen" werden unterstützt:
- "test-endpoint-connection": Dies wird verwendet, um eine Endpunktverbindung zu testen. Es muss zusammen mit einem Endpunkt verwendet werden.
- "submit-http-form": Dies muss zusammen mit einem HTTP-Formular verwendet werden (siehe unten).
Ausführungsoperation
org.jitterbit.integration.data.entity.RunOperation
Dieser Schrittstyp wird verwendet, um eine Operation auszuführen, um dem Benutzer das Testen zu ermöglichen.
-
Zum Beispiel:
{ "name": "Run Now", "description": "Run Now operation - fetch the csv file, parse and insert into database", "label": "Run Now", "type": "org.jitterbit.integration.data.entity.RunOperation", "path": "/Operation/SyncAccounts", "properties": [ { "name": "operationName", "defaultValue": "SyncAccounts", "description": "Synchronize Accounts" } ] }
ApiBinding
org.jitterbit.integration.data.entity.ApiBinding
Dieser Schrittstyp wird verwendet, wenn es notwendig ist, Operationen als APIs zu externalisieren.
-
"assignTo": Dies ermöglicht es Ihnen, die URI in einer Projektvariablen zu speichern, die innerhalb des Jitterpak verwendet werden kann. Zum Beispiel:
{ "name": "Review the WebHooks associated to this recipe", "description": "The following Web API will be registered as webhooks to your system", "type": "org.jitterbit.integration.data.entity.ApiBinding", "bindings": { "apis": [ { "apiName": "FetchAccounts", "publicName": "citizen-fetchaccounts", "version": "v1", "sslOnly": "True", "timeout": "30", "enableCORS": "False", "assignTo": "acme.com.myservice.fetchaccounts.uri", "methods": [ { "method": "GET", "operationName": "RunNow", "responseType": "FINAL_TARGET" // possible - values "NO_RESPONSE", "FINAL_TARGET", "VARIABLE" } ] } ], "action": { "name": "import-api-packs", "displayName": "Bind API(s)", "useStepAsRequest": "" } } }
HttpForm
org.jitterbit.integration.data.entity.HttpForm
Dieser Schrittstyp wird verwendet, wenn eine Interaktion mit einem HTTP-Endpunkt erforderlich ist. Projektvariablen können als Eingaben für Anfragen/Kopfzeilen verwendet werden.
-
Zum Beispiel:
{ "name": "ConstantContact Endpoint Project Variables", "description": "Set up the target Constant Contact endpoint project variable. Enter one of com.constantcontact.listid or com.constantcontact.listname.", "type": "org.jitterbit.integration.data.entity.ProjectVariable", "projectVariables": { "names": [ "com.constantcontact.apikey", "com.constantcontact.accesstoken", "com.constantcontact.listid", "com.constantcontact.listname" ], "action": { "name": "submit-http-form", "displayName": "Test Connection", "useStepAsRequest": "/Target/ConstantContactEndpoint" } } }, ... { "name": "Test ConstantContact Connection Information", "description": "Test ConstantContact endpoint connection information", "label": "Target Endpoint (ConstantContact)", "type": "org.jitterbit.integration.data.entity.HttpForm", "hidden": true, "path": "/Target/ConstantContactEndpoint", "properties": [ { "name": "verb", "defaultValue": "GET" }, { "name": "url", "defaultValue": "https://api.constantcontact.com/v2/lists?api_key=[com.constantcontact.apikey]" }, { "name": "headers", "defaultValue": "Authorization: Bearer [com.constantcontact.accesstoken]" }, { "name": "httpRequest", "defaultValue": "" }, { "name": "httpResponse", "defaultValue": "" } ] }
Connector
org.jitterbit.integration.data.connector.*
Diese werden für die jeweiligen aufgeführten Endpunkte verwendet:
org.jitterbit.integration.data.connector.FTPEndpoint
org.jitterbit.integration.data.connector.DBEndpoint
org.jitterbit.integration.data.connector.AutoDeskEndpoint
org.jitterbit.integration.data.connector.NetSuiteEndpoint
org.jitterbit.integration.data.connector.SapEndpoint
org.jitterbit.integration.data.connector.JMSEndpoint
org.jitterbit.integration.data.connector.MSAXEndpoint
org.jitterbit.integration.data.connector.Four51Endpoint
org.jitterbit.integration.data.connector.ClarizenEndpoint
org.jitterbit.integration.data.connector.QuickBooksEndpoint
Rezept-Metadaten-Definitionen
Diese Unterabschnitte behandeln die vollständigen Metadaten-Definitionen für Rezepte, wie sie innerhalb von Jitterbit definiert sind. Diese Abschnitte beschreiben alle möglichen Teile der JSON-Metadatendatei. Alle erforderlichen Felder sind am Ende jedes Abschnitts aufgeführt.
- Rezept
- Schritt
- Aktion
- API
- API-Methode
- Eigenschaft
- Bereitstellungsdetails Jitterpak
- Operation
- Bereitstellungsantwort
- Rezeptintegration
- Tag
- Autor
- Umgebung
- Agent
- Agentengruppe
- Anmeldeantwort
- Organisation
- Organisationsdetails
- Endpunktverbindungsinformationen
- HTTP-Verbindungsparameter
- Schlüsselwert
- Fehler
- Betriebsprotokoll
- Betriebsprotokolleintrag
- Details zum Betriebsprotokoll
- Nachrichten- und Feldname
- Ergebnisdateikategorie und GUID
- Betriebsantwort ausführen
- Datensatz
- Benutzerinformationen
- Bereitstellungsstatus
- Endpunktinformationen
- AWS-Fehler
Rezept
Recipe:
type: object
properties:
id:
type: string
description: "The numerical ID of the recipe"
guid:
type: string
description: "Unique identifier representing a recipe"
author:
See separate definition for Author
orgId:
type: string
description: "The Organization ID"
description:
type: string
description: "Description of Recipe"
name:
type: string
description: "Name of Recipe"
projectName:
type: string
description: "Name of the Jitterbit Project (or Jitterpak)"
displayName:
type: string
description: "Display name of Recipe"
summary:
type: string
description: "Short description of Recipe"
tags:
type: array
items:
See separate definition for Tag
description: List of tags
steps:
type: array
items:
See separate definition for Step
projectVariables:
type: array
items:
See separate definition for property
createdAt:
type: number
description: "Number of milliseconds since the UNIX epoch (Jan 1 1970 12am UTC)"
updatedAt:
type: number
description: "Number of milliseconds since the UNIX epoch (Jan 1 1970 12am UTC)"
updatedBy:
See separate definition for Author
version:
type: string
description: "Version of the recipe. Incremented when updated."
required:
- guid
- description
- name
- projectName
- steps
Schritt
Step:
properties:
name:
type: string
description: "Name of step"
description:
type: string
description: "Description of the step"
guid:
type: string
description: "A unique id associated to the step"
label:
type: string
description: "A label that can be used for rendering instead of the name property"
type:
type: string
enum:
- org.jitterbit.integration.data.entity.Description
- org.jitterbit.integration.data.entity.ProjectVariable
- org.jitterbit.integration.data.entity.RunOperation
- org.jitterbit.integration.data.connector.FTPEndpoint
- org.jitterbit.integration.data.connector.DBEndpoint
- org.jitterbit.integration.data.connector.AutoDeskEndpoint
- org.jitterbit.integration.data.connector.NetSuiteEndpoint
- org.jitterbit.integration.data.connector.SapEndpoint
- org.jitterbit.integration.data.connector.JMSEndpoint
- org.jitterbit.integration.data.entity.SalesforceConnector
- org.jitterbit.integration.data.entity.GenericProperties
- org.jitterbit.integration.data.entity.Schedule
- org.jitterbit.integration.data.entity.ApiBinding
- org.jitterbit.integration.data.entity.HttpForm
- org.jitterbit.integration.data.entity.TemporaryStorage
- org.jitterbit.integration.data.entity.FileShare
- org.jitterbit.integration.data.connector.MSAXEndpoint
- org.jitterbit.integration.data.connector.QuickBooksEndpoint
- org.jitterbit.integration.data.connector.ClarizenEndpoint
- org.jitterbit.integration.data.connector.Four51Endpoint
description: |
"Type associated with this step; these are possible values:
org.jitterbit.integration.data.entity.Description
org.jitterbit.integration.data.entity.ProjectVariable,
org.jitterbit.integration.data.entity.RunOperation,
org.jitterbit.integration.data.connector.FTPEndpoint,
org.jitterbit.integration.data.connector.DBEndpoint,
org.jitterbit.integration.data.connector.AutoDeskEndpoint,
org.jitterbit.integration.data.connector.NetSuiteEndpoint,
org.jitterbit.integration.data.connector.SapEndpoint,
org.jitterbit.integration.data.connector.JMSEndpoint,
org.jitterbit.integration.data.entity.SalesforceConnector,
org.jitterbit.integration.data.entity.GenericProperties,
org.jitterbit.integration.data.entity.ApiBinding,
org.jitterbit.integration.data.entity.Schedule,
org.jitterbit.integration.data.entity.HttpForm,
org.jitterbit.integration.data.entity.FileShare,
org.jitterbit.integration.data.entity.TemporaryStorage,
org.jitterbit.integration.data.connector.MSAXEndpoint,
org.jitterbit.integration.data.connector.QuickBooksEndpoint,
org.jitterbit.integration.data.connector.ClarizenEndpoint,
org.jitterbit.integration.data.connector.Four51Endpoint"
hidden:
type: boolean
description: "Indicate if this step should be renderable or not"
required:
type: boolean
description: "Whether the step requires validation or not"
properties:
type: array
description: "Properties associated with this step; in a step you can have either properties or projectVariables but not both at the same time"
items:
See separate definition for property
path:
type: string
description: "If this step maps to an entry in Jitterpak provide the path to; in general, this is valid for endpoints"
projectVariables:
type: object
description: "A list of project variables grouped together to represent a configurable entities; this cannot be used if properties are defined"
properties:
names:
type: array
items:
type: string
action:
See separate definition for Action
description: "Describe an action that can be invoked using properties from specified step; example: test connection endpoint"
required:
- names
bindings:
type: object
properties:
apis:
type: array
items:
See separate definition for API
action:
See separate definition for Action
required:
- name
- description
- type
Aktion
Action:
properties:
name:
type: string
displayName:
type: string
useStepAsRequest:
type: string
description: "Use properties from a specified steps within the recipe; usually such a step is defined as a hidden step that is not rendered"
required:
- name
- useStepAsRequest
API
API:
properties:
apiName:
type: string
description: "Name of the API"
publicName:
type: string
description: "The public name of the API; this name would be part of the URI that will be public"
description:
type: string
description: "A short description of the api"
version:
type: string
description: "Version of the API"
sslOnly:
type: boolean
description: "Indicate if should only listen over HTTPS only - defaults to true"
timeout:
type: number
description: "Indicate after how many seconds to timeout; default is 30s"
enableCORS:
type: boolean
description: "Indicate if the cors should be enabled or not; defaults to false"
assignTo:
type: string
description: "Assign the API URL to a project variable defined within the associated JPK"
methods:
type: array
items:
See separate definition for API Method
required:
- apiName
- publicName
- description
- version
- methods
API-Methode
APIMethod:
properties:
method:
type: string
description: "Indicate the HTTP verb for to use for this APIMethod (PUT|POST|DELETE|GET)"
enum:
- GET
- DELETE
- POST
- PUT
operationName:
type: string
description: "Name of operation that will be invoked when this APIMethod is invoked"
responseType:
type: string
description: "Response type returned by the operation; defaults to NO_RESPONSE"
enum:
- VARIABLE
- FINAL_TARGET
- NO_RESPONSE
required:
- method
- operationName
Eigenschaft
Property:
properties:
name:
type: string
description: "Property name"
defaultValue:
type: string
description: "Default value associated to this property"
value:
type: string
description: "A value assigned by the user; if no value is provided by default the defaultValue will be assigned"
type:
type: string
description: "Indicate the type of the value; integer, float, double, date, time, boolean, string, password, textarea, enum; default string"
description:
type: string
description: "Provide a description of this property"
hidden:
type: boolean
description: "Default value will be false"
displayName:
type: string
description: "Name used for displaying; if not defined then the name property will be used"
required:
type: boolean
description: "Whether the property requires a value or not"
regex:
type: boolean
description: "Regex that the value should match"
required:
- name
Jitterpak-Details bereitstellen
DeployJpkDetails:
type: object
properties:
envId:
type: string
description: "Environment ID of the deployed recipe."
envName:
type: string
description: "Environment name"
projectId:
type: string
description: "Deployed recipe ID"
projectGuid:
type: string
description: "Deployed project GUID"
projectName:
type: string
description: "Deployed project name"
oldProjectVariables:
type: array
items:
See separate definition for property
Operation
Operation:
type: object
properties:
operationGuid:
type: string
description: "The GUID of the operation"
operationName:
type: string
description: "The name of the operation"
Bereitstellungsantwort
DeployResponse:
properties:
deployJpkDetails:
type: array
items:
See separate definition for Deploy JPK Details
operations:
type: array
items:
See separate definition for Operation
Rezeptintegration
RecipeIntegration:
allOf:
- See separate definition for Recipe
- properties:
deployedRecipeId:
description: "ID of the deployed configured recipe (this is the same as the ID of a Jitterbit project that is deployed to an environment)"
type: string
Tag
Tag:
type: object
properties:
key:
type: string
description: "A key that can be used for searching the recipe later; possible values: source, target, search"
value:
type: string
description: "A value that can be in a search to match a recipe"
required:
- key
- value
Autor
Author:
type: object
properties:
userId:
type: string
description: "ID of the recipe's author"
name:
type: string
description: "Name of the recipe's author"
orgName:
type: string
description: "Name of the organization that this user is part of"
required:
- userId
- name
Umgebung
Environment:
type: object
properties:
id:
type: string
description: "A unique ID associated to environment"
orgId:
type: string
description: "The ID of the org that this environment is part of"
name:
type: string
description: "Name of the environment"
agentGroupName:
type: string
description: "The agent group associated with this environment"
agentGroupId:
type: string
description: "The ID of the agent group"
urlPrefix:
type: string
description: "Prefix URL associated to environment"
Agent
Agent:
type: object
properties:
id:
type: string
description: "Unique ID of the agent"
name:
type: string
description: "Name of the agent"
os:
type: string
description: "Type of operating system where agent is running"
osVersion:
type: string
description: "Type of operating system where agent is running"
jitterbitVersion:
type: string
description: "Version of the Jitterbit agent"
hostname:
type: string
description: "Name of the host"
ipv4Address:
type: string
description: "IPV4 Address"
ipv6Address:
type: string
description: "IPV6 Address"
agentGroupName:
type: string
description: "Associate the agent with the named agent group"
status:
type: string
description: "Indicates if the agent is running"
agentGroupId:
type: string
description: "Id of the agent group that this agent is part of"
Agentengruppe
AgentGroup:
type: object
properties:
id:
type: string
description: "ID of the agent group"
name:
type: string
description: "Name of the agent group"
description:
type: string
description: "Description of the agent group"
Anmeldeantwort
LoginResponse:
type: object
properties:
authenticationToken:
type: string
description: "Token that is used for authentication/authorizing client's REST requests"
status:
type: boolean
description: "Indicate if the user is active or not"
defaultOrgId:
type: string
description: "Default organization id that the user has logged into"
orgs:
type: array
description: "Organizations that the user is part of"
items:
See separate definition for Organization
Organisation
Org:
type: object
properties:
orgId:
type: string
description: "ID of the organization"
orgName:
type: string
description: "Name of the organization"
orgZoneUrl:
type: string
description: "Zone URL associated to this organization"
urlPrefix:
type: string
description: "The URL prefix used for the API gateway for this organization"
apiHost:
type: string
description: "The DNS hostname used by this organization when exposing APIs"
Organisationsdetails
OrgDetail:
allOf:
- See separate definition for Recipe
- properties:
orgType:
description: "Type of org"
type: number
active:
description: "Indicate if this org is active or not"
type: boolean
legalName:
description: "The legal name of the org"
type: string
environments:
type: array
items:
See separate definition for Environment
Verbindungsinformationen für Endpunkte
EndpointConnectionInfo:
type: object
description: "Object that defines the properties associated to a connection endpoint"
properties:
keyValues:
type: array
items:
See separate definition for KeyValue
HTTP-Verbindungsparameter
HttpConnectionParams:
type: object
properties:
verb:
type: array
items:
See separate definition for property
url:
type: array
items:
See separate definition for property
headers:
type: array
items:
See separate definition for property
httpRequest:
type: array
items:
See separate definition for property
httpResponse:
type: array
items:
See separate definition for property
username:
type: array
items:
See separate definition for property
password:
type: array
items:
See separate definition for property
errorIfRegexMatch:
type: array
items:
See separate definition for property
errorMessageRegexSearch:
type: array
items:
See separate definition for property
Schlüsselwert
KeyValue:
type: object
properties:
key:
type: string
value:
type: string
Fehler
Error:
type: object
properties:
code:
type: integer
description: "Code associated with this error; in general, maps to an HTTP Code"
message:
type: string
description: "A description of the error"
fields:
type: string
description: "Fields that report the error (optional)"
Betriebsprotokoll
OperationLog:
type: object
properties:
records:
type: array
items:
See separate definition for Operation Log Record
Protokolleintrag der Operation
OperationLogRecord:
type: object
properties:
attributes:
See separate definition for Record
childRecords:
See separate definition for Operation Log
Protokolldetails der Operation
OperationLogDetails:
type: object
properties:
operationName:
type: string
mainMessage:
type: string
sourceRecords:
type: integer
description: Number of source records
targetRecords:
type: integer
description: Number of target records
failedRecords:
type: integer
description: Number of failed records
successRecords:
type: integer
description: Number of success records
filesProcessed:
type: integer
description: Number of files processed
messageAndFieldName:
type: array
items:
See separate definition for Message and Field Name
resultFileCategoryAndGuid:
type: array
items:
See separate definition for Result File Category and GUID
Nachricht und Feldname
MessageAndFieldName:
type: object
properties:
message:
type: string
fieldName:
type: string
Ergebnisdateikategorie und GUID
ResultFileCategoryAndGuid:
type: object
properties:
category:
type: number
fileGuid:
type: number
Ausführungsoperation Antwort
RunOperationResponse:
type: object
properties:
orgId:
type: string
description: "ID of the organization associated with the environment where the operation has been deployed and executed"
environmentId:
type: string
description: "ID of the environment where the operation has been deployed and executed"
operationInstanceGuid:
type: string
description: "GUID of the operation instance"
operationGuid:
type: string
description: "GUID of the operation"
submittedAt:
type: string
description: "Date when the operation was submitted for execution"
Datensatz
Record:
type: object
properties:
operationInstanceGuid:
type: string
description: "GUID of an instance of an operation; represents an execution of an operation"
parentInstanceGuid:
type: string
description: "GUID associated to the parent operation; an operation that has been triggered/executed this operation instance"
operationGuid:
type: string
description: "GUID associated to this operation"
operationName:
type: string
description: "Name of the operation"
operationStatusId:
type: number
description: "Possible value for the operation statusId: SUBMITTED(0), PENDING(1), CANCELED(2), RUNNING(3), SUCCESS(4), SUCCESS_WITH_INFO(5), SUCCESS_WITH_WARNING(6), ERROR(7), CANCEL_REQUESTED(8), SUCCESS_WITH_CHILD_ERROR(9), RECEIVED(10), UNKNOWN(-1)"
operationStatus:
type: string
description: "Status of the operation - see operationStatusId for possible values"
environmentId:
type: string
description: "ID of the environment where operation has been deployed and running"
environmentName:
type: string
description: "Name of the environment where operation has been deployed and running"
agentId:
type: string
description: "ID of the agent where operation has been running"
agentName:
type: string
description: "Name of the agent where operation has been running"
projectName:
type: string
description: "Name of the Jitterbit pack associated to the recipe"
message:
type: string
description: "The message associated with this operation indicating the status of it"
operationEnteredTimestamp:
type: number
description: "Timestamp when the operation was entered"
operationStartedTimestamp:
type: number
description: "Timestamp when the operation was started"
operationStatusTimestamp:
type: number
description: "Timestamp of the operation status"
debugModeEnabled:
type: boolean
description: "Indicate if the debug mode is enabled or not"
debugFilePresent:
type: boolean
description: "Indicate if there is a debug file present for downloading"
Benutzerinformationen
UserInfo:
type: object
properties:
title:
type: string
phone:
type: string
company:
type: string
postalCode:
type: string
subscription:
type: string
signUpSource:
type: string
offeringEnumId:
type: string
active:
type: string
timezone:
type: string
Bereitgestellter Status
DeployedStatus:
type: object
properties:
good:
type: integer
warn:
type: integer
error:
type: integer
Endpunktinformationen
EndpointInfo:
type: object
properties:
name:
type: string
description: "Name of the endpoint"
category:
type: string
description: "Indicates the category this endpoint is part of; examples: crm, database"
icon:
type: string
description: "Path to fetch the icon associated with this endpoint"
required:
- name
- icon
AWS-Fehler
AWSError:
type: object
properties:
code:
type: string
message:
type: string
retryable:
type: boolean
statusCode:
type: number
hostname:
type: string
region:
type: string
retryDelay:
type: number
requestId:
type: string
extendedRequestId:
type: string
cfId:
type: string