Zum Inhalt springen

Neue Rezeptur erstellen

Einführung

Ein Citizen Integrator-Rezept ist eine wiederverwendbare Integrationsvorlage, die eine Schritt-für-Schritt-Anleitung durch Citizen Integrator bietet, verfügbar über das Harmony-Portal. Citizen Integrator Rezepte können von Mitgliedern einer Harmony-Organisation verwendet werden, sodass sie ganz einfach ein Design Studio konfigurieren können Integration für einen bestimmten Anwendungsfall.

Dieses Dokument behandelt die manuelle Erstellung von Citizen Integrator-Rezepten. Rezepte können auch über die Citizen Integrator-Schnittstelle erstellt werden. Siehe Citizen Integrator - Rezept generieren oder bearbeiten für weitere Einzelheiten.

Ein Citizen Integrator-Rezept besteht aus zwei Teilen:

  • Ein Design Studio Jitterpak (Dateiendung .jpk oder .JPK).
  • Eine Citizen Integrator Rezept-Metadaten-JSON-Datei (Dateierweiterung .json oder .JSON), das die Schritte bereitstellt, die ein Benutzer durchläuft, um die Integration zu konfigurieren.

Hier ist eine Zusammenfassung der Schritte, die zum Erstellen eines Rezepts erforderlich sind, das dann über die Citizen Integrator Weboberfläche verfügbar gemacht werden kann:

Schritt 1: Erstellen Sie ein Jitterpak

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 Sie die Rezeptmetadaten

Erstellen Sie eine Rezeptmetadatendatei (eine JSON-Datei). Die Rezeptmetadaten enthalten die Schritte, die Benutzer über die Weboberfläche ausführen, und verknüpfen vom Benutzer bereitgestellte Informationen mit dem Jitterpak. Siehe Erstellen von Rezeptmetadaten für bewährte Vorgehensweisen, eine Beispielanleitung, eine Beschreibung der Rezeptschritttypen und eine Dokumentation der Komponenten einer Rezeptmetadatendatei.

Schritt 3: Überprüfen Sie die Rezeptmetadaten

Überprüfen Sie Ihre Rezeptmetadatendatei mithilfe der jbcli. Siehe Rezept validieren der Jitterbit-Befehlszeilenschnittstelle.

Schritt 4: Laden Sie das Jitterpak und die Rezeptmetadaten hoch

Laden Sie Ihr Jitterpak und die Rezeptmetadatendatei in Ihr Rezept-Repository hoch. Siehe Neues Rezept und Jitterpak hochladen der Jitterbit-Befehlszeilenschnittstelle. Sie können Rezepte auch über die Citizen Integrator Weboberfläche hochladen, wie unter Citizen Integrator - Dashboard beschrieben oder Citizen Integrator - Meine Rezepte Seiten.

Schritt 5: Konfigurieren und einsetzen des Rezepts

Ihr neues Rezept steht nun den Mitgliedern Ihrer Organisation zur Nutzung über die Citizen Integrator Weboberfläche zur Verfügung. Siehe Citizen Integrator - Rezept konfigurieren für Benutzeranweisungen zum Konfigurieren und Bereitstellen von Rezepten.

Erstellen Sie Jitterpaks für Rezepte

Wenn Sie ein neues Citizen Integrator-Rezept erstellen, 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. Weitere Informationen finden Sie in den Materialien unter Design Studio und Jitterpaks.

Notiz

Citizen Integrator-Rezepte werden von Design Studio erstellt Projekte. Für Integration Studio, verwenden Sie stattdessen Integrationsrezepte oder Prozessvorlagen, erhältlich bei Jitterbit Marketplace.

Bewährte Methoden für Jitterpak

Beim Erstellen eines Jitterpak zur Verwendung mit Citizen Integrator-Rezepten empfehlen wir die folgenden Best Practices für die Rezepterstellung:

  • Definieren Sie Ihre typischen Anwendungsfälle

    Bevor Sie mit einem Jitterpak oder Rezept beginnen, sollten Sie eine gute Vorstellung davon haben, was Ihre Benutzer mit dem Rezept erreichen können sollen. Bedenken Sie, dass Sie bei Bedarf mehrere Rezepte erstellen können. Der Anwendungsfall hilft Ihnen bei der Entscheidung, was Sie in Ihr Jitterpak einbauen und welche Schritte ein Benutzer über die Citizen Integrator-Schnittstelle ausführen soll.

  • Referenzbeispiele als Hilfestellung für den Einstieg

    Schauen Sie sich unsere öffentlichen Jitterpaks als Referenz an, oder wenn Sie eines finden, das Ihrem Anwendungsfall ähnelt, möchten Sie vielleicht sogar damit beginnen. Um eines der für unsere öffentlichen Rezepte erstellten Jitterpaks herunterzuladen, folgen Sie Holen Sie sich ein bestimmtes Rezept und speichern Sie das Jitterpak lokal unter Jitterbit-Befehlszeilenschnittstelle. Oder konsultieren Sie unsere Jitterpak-Bibliothek.

  • Erstellen Sie, wo immer möglich, Projektvariablen

    Projektvariablen sind der Schlüssel zum Erstellen von Rezepten, die von einem Benutzer einfach über die Citizen Integrator Weboberfläche ausgefüllt werden können. Stellen Sie sich Projektvariablen als Felder mit bestimmten Informationen vor, die Benutzer bei der Verwendung Ihres Rezepts angeben sollen. Erstellen Sie diese Elemente dann als Projektvariablen in Ihrem Jitterpak. Zum Beispiel Verbindungsinformationen für neue Endpoints.

  • Namespace-Projektvariablen zur späteren Referenz

    Wenn Sie Projektvariablen erstellen, empfiehlt es sich, ihnen Namespaces zuzuweisen. Eine Projektvariable für Host könnte beispielsweise „Host“ heißen, um anzuzeigen, dass sie sich auf einen Host bezieht. Dadurch können die Projektvariablen beim Erstellen Ihrer Rezeptmetadaten leichter gelesen werden.

  • Platzieren Sie Operationen auf der Stammebene, wenn Sie sie über einen Rezeptschritt ausführen möchten

    Alle Operation, die Sie über einen RunOperation-Schritt in Ihrem Rezept ausführen möchten, müssen in der Stammebene des Operationsordners in Design Studio abgelegt werden. Das heißt, wenn Sie Operationen in Unterordnern unter Ihrem Operationsbaum haben, werden diese nicht ausgeführt, wenn sie über einen RunOperation-Schritt verfügbar gemacht werden. Dieser Vorbehalt gilt nur für Operationen, die in einem bestimmten Schritt des Rezepts ausgeführt werden. Wenn sich Ihre Operationen in Unterordnern befinden, werden sie beim Speichern und Bereitstellen des Rezepts trotzdem ausgeführt.

  • Fügen Sie WriteToOperationLog in Vorgänge ein, die Sie über einen Rezeptschritt ausführen möchten

    Fügen Sie WriteToOperationLog in Vorgänge ein, die Sie über einen RunOperation-Schritt in Ihrem Rezept ausführen möchten (siehe Protokollierungs- und Fehlerfunktionen). Die WriteToOperationLog-Meldungen werden im Panel unter der Schaltfläche „RunOperation“ in der Citizen Integrator-Oberfläche angezeigt und geben dem Rezeptbenutzer Feedback zum ausgeführten Operation.

  • Verwenden Sie zum Testen Projektvariablenwerte, entfernen Sie dann jedoch die Werte beim Exportieren als Jitterpak

    Wenn Sie in Ihrem Jitterpak Projektvariablen verwenden, achten Sie darauf, beim Exportieren des Jitterpak keine spezifischen Werte einzuschließen. Denken Sie daran, dass die Werte normalerweise leer sind, sodass 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 achten Sie darauf, diese vor dem Exportieren zu 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 einschließen“. Dies ist die standardmäßige und empfohlene Methode zum Entfernen von Projektvariablenwerten.

    • Einige Werte: Um nur bestimmte Projektvariablen zu entfernen, entfernen Sie einfach den Standardwert der Projektvariable. Diese Option ist möglicherweise geeigneter als die Verwendung des oben beschriebenen Kontrollkästchens, wenn Sie absichtlich einige Projektvariablenwerte beibehalten möchten. Wenn Ihr Rezept beispielsweise innerhalb Ihrer Organisation privat ist, können Sie Informationen wie eine URL einfügen, die sich nicht von Benutzer zu Benutzer ändert, der das Rezept ausfüllt.

  • Beachten Sie die integrierten Zeitpläne

    Wenn Sie einen Zeitplan in das Jitterpak aufnehmen, notieren Sie sich, wann die Operation ausgeführt werden soll, und dokumentieren Sie dies unbedingt in den Rezeptmetadaten. Andernfalls werden die Benutzer den in das Jitterpak integrierten Zeitplan nicht bemerken. Zeitpläne können derzeit nicht in einem Rezept konfiguriert werden.

Erstellen von Rezept-Metadaten

Sie können mit der Erstellung von Citizen Integrator Rezeptmetadaten beginnen, während Sie Ihr Jitterpak erstellen, oder die Metadaten erstellen, wenn Sie fertig sind. Die Rezeptmetadaten bieten zwei Hauptfunktionen:

  1. Definiert die Schritte, die Benutzer ausführen müssen, um das Rezept über die Citizen Integrator-Schnittstelle zu konfigurieren.
  2. Verbindet alle vom Benutzer bereitgestellten Werte wieder mit dem zugehörigen Jitterpak des Rezepts, sodass die neu konfigurierten Operation wie erwartet über Jitterbit ausgeführt werden.

Dieser Abschnitt ist so organisiert, dass er eine Liste mit Best Practices zum Erstellen von Rezepten, eine Beispiel-Anleitung zum Erstellen eines Rezepts, die Arten von Schritten, die im Rezept verwendet werden können, und schließlich eine umfassende Liste aller möglichen Teile der Rezept-Metadatendatei enthält.

Bewährte Methoden für Metadaten

Diese bewährten Vorgehensweisen sind beim Erstellen Ihrer Citizen Integrator Rezeptmetadatendatei für diejenigen hilfreich, die zum ersten Mal Rezepte erstellen.

  • Referenzbeispiele zum Vergleich der Citizen Integrator Schnittstelle mit den Rezept-Metadaten

    Sehen Sie sich an, wie unsere öffentlichen Rezepte strukturiert sind, und vergleichen Sie, was Sie in der Citizen Integrator-Oberfläche sehen, mit der tatsächlichen Rezept-Metadatendatei für dieses Rezept. Wenn Sie eines finden, das Ihrem Anwendungsfall ähnelt, möchten Sie vielleicht sogar damit beginnen.

  • Erstellen Sie Ihr Rezept in Iterationen

    Rechnen Sie damit, dass Sie Anpassungen an Ihrem Jitterpak vornehmen müssen, während Sie an Ihren Rezeptmetadaten arbeiten, und umgekehrt. Sie können jederzeit eine erste Version hochladen, prüfen, wie sie in der Citizen Integrator-Oberfläche angezeigt wird und funktioniert, und dann Ihre Rezeptdateien über Citizen Integrator - Meine Rezepte weiter aktualisieren Seite oder indem Sie Neues Rezept und Jitterpak hochladen und Ein vorhandenes Rezept und Jitterpak aktualisieren der Jitterbit-Befehlszeilenschnittstelle.

  • Fügen Sie Einführungs- und Überprüfungsschritte in die Rezeptmetadaten ein

    Es wird empfohlen, mit einem Einführungsschritt zu beginnen und mit einem Überprüfungsschritt zu enden, um die Konsistenz der Rezepte zu wahren. Diese Abschnitte verwenden beide die org.jitterbit.integration.data.entity.Description Typ (beschrieben unter Schritttypen).

    • In der Einleitung sollte erklärt werden, wofür das Rezept verwendet wird, etwaige Einschränkungen beschrieben, Standardfelder aufgelistet und/oder erforderliche Informationen bereitgestellt werden, die jemand, der das Rezept verwendet, kennen sollte.

    • Der Überprüfungsschritt sollte dem Benutzer das erwartete Verhalten bei der Bereitstellung des konfigurierten Rezepts zusammenfassen und bestätigen. Wenn Sie einen Zeitplan in das Jitterpak aufnehmen, ist der Überprüfungsschritt ein guter Ort, um die Zeit zu dokumentieren, zu der der Operation ausgeführt werden soll. Denken Sie daran, die Zeitzone anzugeben (UTC ist die Standardeinstellung in Design Studio, Sie können die Zeit in Design Studio jedoch auch in die gewünschte Zeitzone konvertieren und diese angeben).

  • Standardisieren Sie Namen in Ihren Rezeptmetadaten

    Standardisieren Sie Ihren Rezeptnamen, Projektnamen, Dateinamen und Ihre 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 die Endpoints richtungsweisend anordnen

    Ordnen Sie bei der Migration von einem Endpoint zu einem anderen (z. B. Migration von Salesforce-Konten zu NetSuite-Unternehmen) die Endpoints der Reihe nach:

    • In JSON-Datei: "name": "Migrate Salesforce Accounts to NetSuite Companies"
    • In JSON-Datei: "projectName": "salesforce_accounts-to-netsuite_companies"
    • Verzeichnis: salesforce-to-netsuite/accounts-to-companies/
    • Dateinamen: salesforce_accounts-to-netsuite_companies.jpk Und salesforce_accounts-to-netsuite_companies.json
  • Für die Endpoint Endpoints alphabetisch sortieren

    Für die Synchronisierung zweier Endpoints (z. B. Synchronisierung von Salesforce-Konten und NetSuite Unternehmen) sortieren Sie die Endpoints alphabetisch:

    • In JSON-Datei: "name": "Synchronize NetSuite Companies and Salesforce Accounts"
    • In JSON-Datei: "projectName": "netsuite_companies-salesforce_accounts"
    • Verzeichnis: netsuite-salesforce/companies-accounts/
    • Dateinamen: netsuite_companies-salesforce_accounts.jpk Und netsuite_companies-salesforce_accounts.json
  • Definieren Sie Projektvariablen am Ende der Rezeptmetadaten

    Alle Projektvariablen, die in Ihrem Jitterpak verwendet und in Ihren Rezeptmetadatenschritten referenziert werden, sollten am Ende Ihrer Rezeptmetadatendatei definiert werden.

  • Schritte ausblenden, die Sie in andere Schritte einbetten möchten

    Sie können ein verstecktes Attribut für einen Schritt angeben, um ihn vor dem Rendern in der Citizen Integrator-Schnittstelle zu verbergen, 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 zum Testen von Verbindungsinformationen einrichten, ihn aber als Schaltfläche „Verbindung testen“ in einen anderen Schritt einbinden 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 beim Hochladen der Datei vom System generiert. Diese Felder stehen am Anfang und am 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 mithilfe von Alle Rezepte auflisten herausfinden der Jitterbit-Befehlszeilenschnittstelle.
    • guid: Erforderlich Dieses Feld wird ausgefüllt, wenn ein zugehöriges Jitterpak in das Rezept-Repository hochgeladen wird. Die GUID (Globally Unique Identifier) wird mit der des zugehörigen Jitterpak ausgefüllt. Dieses Feld ist jedoch erforderlich, Sie müssen es also trotzdem in die Datei aufnehmen. Der tatsächliche Identifikator wird beim Hochladen aktualisiert.
    • createdAt: Der Unix-Epochenzeitstempel in Millisekunden, wann das Rezept zum ersten Mal hochgeladen wurde.
    • updatedAt: Der Unix-Epochenzeitstempel in Millisekunden, wann das Rezept zuletzt aktualisiert wurde.
    • aktualisiert von

      • 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 ist Eigentum 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).

    • Autor

      • 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 Metadaten des Rezepts zurückzugeben (siehe Jitterbit Command Line Interface).

  • Verwenden Sie HTML für Rich Text

    Wenn Sie Links, Listen, Fettschrift usw. in Ihren Rezeptschritten verwenden möchten, versuchen Sie es mit HTML. Die meisten Felder, in denen Sie diese verwenden möchten, erlauben die Verwendung von HTML, wodurch Sie mehr Kontrolle über das Aussehen und die Funktionalität der Rezeptschritte haben.

  • Vor dem Hochladen validieren

    Es ist immer eine gute Idee, sicherzustellen, dass Ihre Rezeptmetadaten validiert werden, bevor Sie sie hochladen. Verwenden Sie dazu Rezept validieren (siehe Jitterbit-Befehlszeilenschnittstelle). Sie sollten keine Rezepte hochladen, die nicht validiert werden, da sie für Benutzer, die versuchen, das Rezept zu konfigurieren, Fehlermeldungen enthalten.

  • Überprüfen Sie die Protokolle zur Fehlerbehebung

    Nachdem Sie Ihr Rezept hochgeladen haben, können Sie es auch testen, indem Sie es über die Citizen Integrator-Schnittstelle konfigurieren und bereitstellen. Vergessen Sie nicht, dass dieselben Tools zum Debuggen verfügbar sind wie für jedes andere Jitterbit-Projekt. Siehe Citizen Integrator - Meine Rezepte oder überprüfen Sie Operation, Projekte, Aktivitäten usw. innerhalb der Management Console.

Beispielexemplarische Vorgehensweise

Dieser Abschnitt bietet eine Schritt-für-Schritt-Anleitung zum Erstellen eines Rezepts für die Verwendung mit der Citizen Integrator-Weboberfläche. In diesem Beispiel werden einige der gebräuchlichsten Rezeptelemente verwendet, die Sie normalerweise verwenden. Eine vollständige Liste der Optionen, die Sie in Rezepte aufnehmen können, finden Sie unter Rezept-Metadatendefinitionen.

Für dieses Beispiel erstellen wir ein Rezept, das Konten von Salesforce synchronisiert und sie zu Zendesk hochlädt. Sie können diese Demonstration nachvollziehen, indem Sie das neueste Rezept für Salesforce zu Zendesk herunterladen, indem Sie Ein bestimmtes Rezept abrufen und Jitterpak lokal speichern der Jitterbit-Befehlszeilenschnittstelle.

Schritt 1: Projekt im Design Studio erstellen

Der erste Schritt besteht darin, Ihr Projekt in Design Studio einzurichten. Beachten Sie beim Erstellen Ihres Projekts die Jitterpak Best Practices oben, die speziell für die Erstellung von Jitterpaks zur Verwendung mit Rezepten dienen.

Diese Komponenten des Jitterpak werden für das Rezept „Salesforce zu Zendesk“ verwendet:

  • Operationen: Dieses Jitterpak ist so eingerichtet, dass Jitterbit beim Ausführen der Operation RunNow Salesforce Abfrage, um Informationen zu den Fällen abzurufen (Fälle abfragen) und diese Salesforce-Fälle dann verwendet, um Tickets in Zendesk zu aktualisieren und einzufügen ( Zendesk-Tickets erstellen). Wenn Sie das Jitterpak heruntergeladen haben, um mitzumachen, können Sie auf jedes Element des Diagramms klicken, um mehr über die Komponenten der Operationen zu erfahren.

  • Transformations: Jede Transformation wurde so zugeordnet, dass die entsprechenden Standardfelder im Rezept enthalten sind. Viele Rezepte beinhalten die Zuordnung von Standardfeldern von einem Endpoint zu einem anderen. In diesem Beispiel verwendet die Salesforce Abfrage nur die entsprechenden Felder für dieses spezielle Rezept (d. h. Fallnummer, Ursprung, Betreff, angegebene Email, angegebener Name). Wenn Sie Ihr eigenes Rezept für die Verwendung in einer Organisation erstellen, die benutzerdefinierte Salesforce Felder verwendet, können Sie diese auch in Ihr Rezept integrieren, solange die Zuordnung hier definiert ist.

  • Quellen und Ziele: Definieren Sie alle Quellen und Ziele wie Sie es normalerweise für jedes Design Studio Projekt tun würden. Dieses spezielle Rezept verwendet temporären Speicher für Salesforce-Konten und Salesforce Fälle und HTTP-Ziele als Verbindungsparameter für Zendesk.

  • Webdienstmethoden und gehostete HTTP- Endpoints: Dieses Jitterpak verwendet keine dieser Komponenten, aber Sie können sie genauso konfigurieren wie für jedes andere Design Studio Projekt.

  • Zeitpläne: Dieses Jitterpak enthält keinen Zeitplan, aber Sie können hier einen einfügen, wenn Sie beispielsweise möchten, dass der Operation täglich ausgeführt wird. Da der Zeitplan vom Benutzer des Rezepts nicht konfiguriert werden kann, sollten Sie in einem Textfeld des Rezepts angeben, wann Ihr Operation ausgeführt werden soll. Ein typischer Ort, um dies hinzuzufügen, ist der Schritt „Überprüfen“.

  • Email Nachrichten: Dieses Jitterpak enthält keine Email-Nachrichten, aber Sie können diese mithilfe von Projektvariablen einrichten, wenn Ihr Rezept Email Benachrichtigungen generieren soll.

  • Scripts: In diesem Jitterpak werden Scripts verwendet, um Nachrichten in das Protokoll zu schreiben, einschließlich spezifischer Erfolgs- und Fehlermeldungen.

  • Projektvariablen: Projektvariablen sind der Schlüssel zum Erstellen konfigurierbarer Rezepte. Normalerweise 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 dann zu entfernen, bevor Sie das Jitterpak exportieren.

  • Jitterbit Connect: Da dieses Jitterpak Salesforce verwendet, sind die Verbindungsinformationen für die Organisation in diesem Abschnitt enthalten.

  • Konnektoren: Dieses Jitterpak verwendet keine Konnektoren, viele andere öffentliche Rezepte jedoch schon. Wenn Sie ein neues Rezept mit einem Konnektor erstellen möchten, empfiehlt es sich möglicherweise, ein anderes Beispiel mit einem der Konnektoren wie Autodesk herunterzuladen.

Schritt 2: Testen Sie das Design Studio Projekt

Nachdem Ihre Komponenten definiert sind, speichern, einsetzen und führen Sie Ihr Design Studio Projekt aus, um sicherzustellen, dass es erfolgreich ausgeführt wird.

Sie können das Operation auf etwaige Fehlermeldungen überprüfen.

Schritt 3: Exportieren Sie das Design Studio Projekt

Entfernen Sie alle Projektvariablenwerte oder andere Anmeldeinformationen, die Sie in Ihr Rezept einbauen möchten, und exportieren Sie Ihr Design Studio Projekt als Jitterpak.

In diesem Beispiel entfernen wir Projektvariablen und Anmeldeinformationen beim Export. Sie können vorerst an jedem beliebigen Ort speichern, da Sie das Jitterpak später hochladen werden (siehe Citizen Integrator - Meine Rezepte oder die Jitterbit-Befehlszeilenschnittstelle).

Schritt 4: Rezept-Metadaten erstellen

Nachdem Sie nun ein Jitterpak erstellt haben, können Sie Ihre Rezept-Metadaten so anpassen, dass sie mit den Komponenten in Ihrem Jitterpak übereinstimmen.

Lesen Sie die Best Practices für Metadaten oben zum Erstellen Ihrer Rezept-Metadatendatei sowie der Schritttypen, wenn Sie ein neues Rezept beginnen. Eine vollständige Liste der Rezeptdefinitionen finden Sie unter Rezeptmetadatendefinitionen unten als Referenz.

Unten finden Sie die vollständige JSON-Datei zum Definieren der Rezeptmetadaten von Salesforce zu Zendesk, gefolgt von einer Aufschlüsselung der einzelnen Abschnitte 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"
    }
  ],
}
  • Beschreibung: Erforderlich

    Dieses Feld sollte eine Beschreibung des Rezepts enthalten.

    "description": "Sync accounts from Salesforce and upsert to Zendesk"
    

  • guid: Erforderlich

    Dieses Feld kann beim ersten Hochladen des Rezepts jeden beliebigen Wert enthalten; beim Hochladen mit einem zugehörigen Jitterpak wird der -Wert durch die GUID (Globally Unique Identifier) des zugehörigen Jitterpaks ersetzt.

    "guid": "8yg7df8a-b526-4d14-a49d-39090d63a426"
    

  • Name: Erforderlich

    Dieses Feld sollte den Namen des Rezepts enthalten.

    "name": "Salesforce to Zendesk"
    
    Wird als Titel des Rezepts in der Rezeptliste angezeigt:

    Wird als Titel des Rezepts unter Konfigurationsschritte angezeigt:

  • Projektname: Erforderlich

    Dieses Feld sollte mit dem Namen der Jitterpak-Datei (JPK) übereinstimmen.

    "projectName": "Salesforce to Zendesk"
    

  • Schritte: Erforderlich

    Die Schritte definieren die Konfigurationsschritte in der Citizen Integrator Schnittstelle. Die verwendeten Schrittattribute im Salesforce zu-Zendesk-Rezept finden Sie weiter unten, gefolgt von einem Vergleich des Citizen Integrator -Schnittstelle und die JSON-Metadaten für den Schritt.

    • Name: Erforderlich Dieses Feld ist der Name des Schritts.
    • Beschreibung: Erforderlich Dieses Feld ist eine Beschreibung des Schritts.
    • label: Dieses Feld ist ein Label, das zur Darstellung eines Schrittnamens verwendet werden kann, der sich vom definierten unterscheidet. Name des Schritts.
    • Typ: Erforderlich Dieses Feld ist der Typ, der diesem Schritt zugeordnet ist. Siehe Schritttypen für eine Erklärung der verschiedenen Schritttypen.
    • erforderlich: Dieser Wert kann auf true oder false gesetzt werden. Wenn true, muss der Rezeptschritt abgeschlossen werden wenn das Rezept konfiguriert wird, bevor die Aktionen Verbindung testen oder Vorgang ausführen verwendet werden.
    • hidden: Dieser Wert kann auf true oder false gesetzt werden. Wenn true, wird der Schritt im Citizen Integrator ausgeblendet. Schnittstelle. Dies kann nützlich sein, wenn Sie Schritte haben, die Sie nicht anzeigen möchten, z. B. zum Testen der Verbindung Informationen. Wenn „false“, wird der Schritt angezeigt. Der Standardwert ist „false“, d. h. Schritte werden standardmäßig angezeigt.
    • Pfad: Verwenden Sie diesen Wert, wenn Sie Schritte ausblenden und in anderen Schritten darauf verweisen möchten. Dieser Wert sollte definiert, wenn Sie planen, einen versteckten Schritt in einen anderen Schritt einzubetten. Wenn Sie beispielsweise einen Test einbinden möchten Mit der Schaltfläche „Verbindung“ innerhalb eines Schritts können Sie den Schritt zum Testen der Verbindungsinformationen ausblenden und dann in ein weiterer Schritt. Wir bezeichnen es als die Definition eines Pfads.
    • Eigenschaften: Kann nur verwendet werden, wenn keine Projektvariablen verwendet werden. Dazu gehören Eigenschaften, die mit dem Schritt. In einem Schritt können Sie entweder Eigenschaften oder Projektvariablen zuweisen, aber nicht beides gleichzeitig.
      • Name: Erforderlich Dieses Feld ist der Name der Eigenschaft, die für diesen Schritt definiert wird.
      • defaultValue: Dieses Feld kann einen Standardwert enthalten, der der Eigenschaft zugeordnet ist. Normalerweise ist dies wird verwendet, um Anweisungs- oder Informationstext in einen Schritt einzufügen.
      • Beschreibung: Dieses Feld kann Standardtext enthalten, der im Textfeld angezeigt wird.
    • Projektvariablen: Kann nur verwendet werden, wenn Eigenschaften nicht verwendet werden. Dazu gehört eine Liste von Projektvariablen gruppiert, die konfigurierbare Entitäten darstellen. In einem Schritt können Sie entweder projectVariables oder Eigenschaften zugewiesen, aber nicht beide gleichzeitig.
      • Namen: Erforderlich Dieses Feld enthält eine Liste aller Projektvariablen, die in diesem Schritt verwendet werden.
      • Aktion: Dieses Feld definiert alle Aktionen. Normalerweise werden diese als Schaltflächen innerhalb eines Schritts verwendet, um Aktionen, die als versteckte Schritte definiert werden können.
        • Name: Erforderlich Dieses Feld ist der Name der Aktion.
        • displayName: Dieses Feld kann verwendet werden, wenn Sie einen anderen Namen in der Bürgeranzeige anzeigen möchten. Integrator-Schnittstelle.
        • useStepAsRequest: Required Dieses Feld wird verwendet, um den Pfad zu Eigenschaften anzugeben, die definiert sind in ein weiterer Schritt, der nicht gerendert wird. Verwenden Sie denselben Wert, den Sie im ausgeblendeten Schritt für „Pfad“ definiert haben.

    Hinweis “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 Endpoint-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: Salesforce Verbindungsinformationen testen

    JSON-Metadaten für 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 Endpoint-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üfen

    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>"
        }
      ]
    }
    
  • Projektvariablen: Dieser Abschnitt definiert alle Projektvariablen, die in den Rezeptschritten verwendet werden. Beachten Sie, dass dies eine neue Abschnitt der Rezept-Metadatendatei, der am Ende nach den Schritten kommt und nicht zu verwechseln ist mit dem Projektvariablen, die innerhalb der Schritte selbst verwendet werden.

    • Name: Erforderlich Dieses Feld enthält den Namen der Projektvariable, wie sie in Ihrem Jitterpak verwendet wird.
    • displayName: Dieses Feld kann verwendet werden, wenn Sie einen anderen Namen für die Anzeige im Citizen Integrator wünschen. -Schnittstelle.
    • Beschreibung: Dieses Feld kann verwendet werden, um Text unterhalb des Feldes einzufügen, beispielsweise um Anweisungen zu geben für was Benutzer eingeben sollen.
    • Typ: Dieses Feld kann verwendet werden, um den Typ des Wertes zu definieren, den der Benutzer angeben kann. Der Standardwert ist Zeichenfolge. Sie können auch Integer, Float, Double, Datum, Uhrzeit, Boolean, Passwort, Enumeration, Dropdown, Kontrollkästchen oder Textbereich.
    • erforderlich: Dieser Wert kann auf true oder false gesetzt werden. Wenn true, wird das Projektvariablenfeld muss ausgefüllt werden, wenn das Rezept vor dem Testen der Verbindung oder dem Ausführen des Vorgangs konfiguriert wird. Aktionen können verwendet werden.
    • regex: Dieses Feld kann verwendet werden, um einen regulären Ausdruck (String) anzugeben, der Der Wert der Projektvariable muss übereinstimmen, wenn das Rezept vor dem Testen der Verbindung oder dem Ausführen des Vorgangs konfiguriert wird. Aktionen können verwendet werden. Zum Beispiel: .+@.+[.].+.
    • Wert: Dieses Feld kann verwendet werden, wenn Sie Ihrer Projektvariable einen Standardwert zuweisen möchten. Dies kann verwendet werden, um einen Standardwert mit anderen optionalen Werten für die Projektvariable bereitzustellen. Ein weiteres Beispiel für JSON-Metadaten mit Werten und Optionen finden Sie unten in Beispiel 2.
    • Optionen: Dieses Feld kann verwendet werden, um mögliche Werte in einem Dropdown-Menü, einem Text- Bereich oder Kontrollkästchen anzuzeigen. Ein weiteres Beispiel für JSON-Metadaten mit Werten und Optionen finden Sie unten in Beispiel 2 .

    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"
      }
    ]
    

Schritttypen

Jeder Schritt in den Metadaten des Citizen Integrator-Rezepts hat ein „Typ“-Attribut, das den Typ des Schritts angibt. Diese Schritte entsprechen direkt mit den Benutzern, die sie über die Citizen Integrator-Schnittstelle sehen werden, und die Arten dieser Schritte entsprechen direkt mit Design Studio.

Dies sind die möglichen verfügbaren Schritttypen. Weitere Informationen zu den einzelnen Schritttypen finden Sie im Folgenden Abschnitte.

Beschreibung

org.jitterbit.integration.data.entity.Description

Dieser Schritttyp sollte verwendet werden, wenn detaillierte Informationen zu einem Rezept oder einem Schritt bereitgestellt werden müssen, oder kann als Überprüfung am Ende des Rezepts verwendet werden.

  • 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 die Eigenschaft „submitOperationsToRun“ enthält, wendet die Schaltfläche Speichern und beenden diese Logik in Bezug auf die Vorgänge an, die zur Ausführung übermittelt werden müssen. Beachten Sie, dass die Schaltfläche Speichern und beenden keine Vorgänge zur Ausführung übermittelt, wenn diese Optionen nicht festgelegt sind.

    • Es werden keine Vorgänge zur Ausführung übermittelt, wenn:

      {
        "name": "submitOperationsToRun",
        "value": ""
      }
      
    • Nur die angegebenen Vorgänge werden zur Ausführung übermittelt, wenn:

      {
      "name": "submitOperationsToRun",
      "value": "Operation1;Operation2"
      }
      
    • Alle Vorgänge werden zur Ausführung übermittelt, wenn die Eigenschaft nicht vorhanden ist:

      {
      "name": "submitOperationsToRun",
      "value": "*"
      }
      

Projektvariable

org.jitterbit.integration.data.entity.ProjectVariable

Dieser Schritttyp wird verwendet, um eine Reihe von Projektvariablen zusammenzufassen. Er kann auch verwendet werden, um einen Endpoint neu zu definieren Definition. 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 zum Testen einer Endpoint verwendet. Es muss zusammen mit einem Endpoint.
    • „submit-http-form“: Dies muss zusammen mit einem HTTP-Formular verwendet werden (siehe unten).

Ausführen einer Operation

org.jitterbit.integration.data.entity.RunOperation

Dieser Schritttyp wird verwendet, um eine Operation Durchführen, um dem Benutzer Tests 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"
          }
        ]
      }
    

API-Bindung

org.jitterbit.integration.data.entity.ApiBinding

Dieser Schritttyp wird verwendet, wenn Vorgänge als APIs externalisiert werden müssen.

  • “assignTo”: Damit können Sie die URI in einer Projektvariable speichern, die im Jitterpak verwendet werden kann. Für 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 Schritttyp wird verwendet, wenn eine Interaktion mit einem HTTP- Endpoint erforderlich ist. Projektvariablen können als Eingaben verwendet werden für Anfragen/Header.

  • 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": "" }
        ]
       }
    

Konnektor

org.jitterbit.integration.data.connector.*

Diese werden für die jeweils aufgeführten Endpoints 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-Metadatendefinitionen

Diese Unterabschnitte decken die vollständigen Metadatendefinitionen für Rezepte ab, wie sie in Jitterbit definiert sind. Diese Abschnitte beschreiben alle möglichen Teile der JSON-Metadatendatei. Alle erforderlichen Felder sind am Ende jedes Abschnitts aufgeführt.

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: |`TISCHROWEND`
           "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

Eigentum

  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-Detailinformationen 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

Bedienung

  Operation:
    type: object
    properties:
      operationGuid:
        type: string
        description: "The GUID of the operation"
      operationName:
        type: string
        description: "The name of the operation"

Bereitstellen einer Antwort

  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

Etikett

  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

Umfeld

  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"

Agent

  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

Informationen zur Endpoint

  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)"

Operationsprotokoll

  OperationLog:
    type: object
    properties:
      records:
        type: array
        items:
          See separate definition for Operation Log Record

Operationsprotokolldatensatz

  OperationLogRecord:
    type: object
    properties:
      attributes:
        See separate definition for Record
      childRecords:
        See separate definition for Operation Log

Details des Vorgangsprotokolls

  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ühren der Operation

  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"

Aufzeichnen

  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

Endpoint

  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