Zum Inhalt springen

Connector-Tutorial-Szenario 3: Datei ablegen

Einführung

Dieses Szenario demonstriert die Verwendung einer Dropbox-Aktivität Put File, bei der eine Datei von einem FTP Server gelesen und dann in Dropbox abgelegt (geschrieben) wird.

In diesem Szenario legt ein Script zunächst globale Variablen mit einem Dateipfad und einem Dateinamen fest und liest von einem FTP Server, um eine globale Variable mit dem Dateiinhalt festzulegen. Die Transformation schreibt diese Variablen dann mithilfe einer Dropbox-Aktivität Put File in Dropbox.

!!! note "Hinweis“ Ähnlich wie Szenario 2: Datei abrufen wird die Datei als Textdatei und nicht als XML-Datei mit codiertem Inhalt und Metadaten abgelegt.

Hier ist der abgeschlossene Operation:

Bild

Wichtig

Um diesen Operation und dieses Szenario abzuschließen, schließen Sie die im Dropbox Connector-Tutorial erforderliche Voraussetzungseinrichtung ab.

Sie sollten über Folgendes verfügen:

  • Zugriff auf ein Dropbox-Konto und einen FTP Server.
  • Dropbox- und FTP Anschlüsse konfiguriert.
  • Zugriff auf assets/sample-data directory des Dropbox-Connector-Repositorys.

1. Beispieldatei in Dropbox kopieren

Falls noch nicht vorhanden, kopieren Sie die Beispieldatei (customers.csv) aus dem assets/sample-data directory des Dropbox-Connectors zu Ihrem Dropbox-Konto.

2. Hinzufügen eines Script zu einer Operation

Fügen Sie einem neuen Operation ein Script hinzu. Bearbeiten Sie das Script und geben Sie ihm den entsprechenden Namen.

Legen Sie den Inhalt des Jitterbit Script wie folgt fest:

<trans>
$ftpPath = "/";
$ftpFilename = "customers.csv";
$ftpContents = ReadFile("<TAG>activity:ftp/FTP/ftp_read/Read</TAG>");

WriteToOperationLog("Read from path " + $ftpPath);
WriteToOperationLog("Read file " + $ftpFilename);
WriteToOperationLog("Read " + Length($ftpContents) + " bytes");

$dropboxPath = $ftpPath;
$dropboxFilename = CVTDate(Now(), "GeneralDate", "yyyy_mm_dd_HH_MM_SS")
    + "_" + $ftpFilename;
$dropboxFilepath = $dropboxPath + $dropboxFilename;
$dropboxContents = Base64Encode($ftpContents);

WriteToOperationLog("DropboxFilename: " + $dropboxFilename);
</trans>

Dadurch wird die Datei gelesen und mit Base64 kodiert unter /customers.csv vom FTP Server. Passen Sie die Variablenwerte ggf. an, wenn sich Ihre Datei an einem anderen Ort oder unter einem anderen Namen befindet.

Schließen Sie das Script, um zum Workflow zurückzukehren.

3. Fügen Sie der Operation eine FTP Leseaktivität hinzu

Ziehen Sie eine FTP Aktivität Lesen aus der Design-Komponentenpalette zur Komponenten-Drop-Zone auf der Design-Canvas, um eine Instanz einer FTP -Lese-Aktivität in einem neuen Operation zu erstellen. Doppelklicken Sie auf die Aktivität, um sie zu öffnen.

Konfigurieren Sie es wie folgt:

  • Name: Geben Sie einen geeigneten identifizierenden Namen ein.
  • Pfad: Geben Sie eine globale Variable mit dem Namen ein [ftpPath]
  • Dateien abrufen: Geben Sie eine globale Variable mit dem Namen ein [ftpFilename]

Bild

Klicken Sie auf Weiter und dann auf Fertig, um zum Workflow zurückzukehren.

4. Fügen Sie der Operation eine Dropbox Put File-Aktivität hinzu

Ziehen Sie einen Dropbox-Aktivitätstyp Put File aus der Komponentenpalette in den Operation nach der FTP Aktivität Read.

Konfigurieren Sie den Dateinamen als [dropboxFilename] und klicken Sie auf Weiter:

image

Klicken Sie auf Fertig, um zum Workflow zurückzukehren:

Bild

5. Fügen Sie der Operation eine Transformation hinzu

Fügen Sie vor der Dropbox-Aktivität Datei ablegen eine Transformation hinzu.

Wenn die Transformation geöffnet wird, geben Sie ihr einen Namen und fügen Sie Scripts hinzu path Und content Zielfelder zur Abbildung der globalen Variablen dropboxFilepath Und dropboxContents zu den jeweiligen Feldern.

Klicken Sie auf das Symbol Schließen, um die Transformation zu speichern und zum Workflow zurückzukehren:

Bild

6. Ausführen des Operation

Kehren Sie zum Workflow zurück und einsetzen Sie den Operation aus. Sobald der Operation abgeschlossen ist und die Datei in Dropbox abgelegt (geschrieben) wurde, sollten Sie im Operation Protokollmeldungen wie diese sehen, wenn die Datei erfolgreich vom FTP Server in Dropbox kopiert wurde:

Bild

Variationen

Sie können dieses Beispiel ändern, um Probleme zu untersuchen, die Entwickler von Konnektoren berücksichtigen müssen.

Sie können beispielsweise das Pfadfeld in der Transformation auf eine leere Zeichenfolge setzen und dann in der Dropbox-Aktivität Datei ablegen den Pfad entweder mit einem fest codierten Wert oder mithilfe einer bereits definierten Variable angeben ($dropboxPath). Dadurch wird die Datei an den vom Script festgelegten Speicherort geschrieben.

Der Code für den Dropbox-Connector (put-file-request.xsd) erfordert, dass der Pfad definiert wird, wie durch das [1] links neben dem Feldnamen in der Transformation. Sie können jedoch verlangen, dass es stattdessen in der Benutzeroberfläche für die Dropbox-Aktivität Datei ablegen definiert wird, indem Sie den Code konfigurieren (adapter.json), das die Benutzeroberfläche beschreibt.

Im Fall des Dropbox-Connectors ist der Connector-Code (PutFileActivity.java) ist so geschrieben, dass die in der Dropbox-Aktivität Put File angegebene Definition, sofern angegeben, Vorrang vor dem in der Transformation angegebenen Wert hat.

Der von Ihnen verwendete Ansatz hängt davon ab, wie Sie einen Connector verwenden oder konfigurieren möchten.