Connector SDK-Tutorial-Szenario 3: Datei hochladen
Einführung
Dieses Szenario demonstriert die Verwendung einer Dropbox Datei hochladen-Aktivität, bei der eine Datei von einem FTP-Server gelesen und dann in Dropbox hochgeladen (geschrieben) wird.
In diesem Szenario setzt ein Skript zunächst globale Variablen mit einem Dateipfad und Dateinamen, indem es von einem FTP-Server liest, um eine globale Variable mit dem Dateinhalt festzulegen. Die Transformation schreibt dann diese Variablen in Dropbox mithilfe einer Dropbox Datei hochladen-Aktivität.
Hinweis
Ähnlich wie im Szenario 2: Datei abrufen wird die Datei als Textdatei und nicht als XML-Datei mit codiertem Inhalt und Metadaten abgelegt.
Hier ist der abgeschlossene Vorgang:
Wichtig
Um diesen Vorgang und das Szenario abzuschließen, führen Sie die erforderlichen Vorbereitungen im Dropbox-Connector-Tutorial durch.
Sie sollten Folgendes haben:
- Zugriff auf ein Dropbox-Konto und einen FTP-Server.
- Konfigurierte Dropbox- und FTP-Connectoren.
- Zugriff auf das
assets/sample-data directory
des Dropbox-Connector-Repositorys.
1. Beispiel-Datei in Dropbox kopieren
Falls noch nicht vorhanden, kopieren Sie die Beispieldatei (customers.csv
) aus dem assets/sample-data directory
des Dropbox-Connectors in Ihr Dropbox-Konto.
2. Ein Skript zu einem Vorgang hinzufügen
Fügen Sie ein Skript zu einem neuen Vorgang hinzu. Bearbeiten Sie das Skript und setzen Sie den Namen entsprechend.
Setzen Sie den Inhalt des Jitterbit-Skripts wie folgt:
<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>
Dies liest und kodiert die Datei unter /customers.csv
vom FTP-Server mit Base64. Passen Sie die Variablenwerte nach Bedarf an, wenn sich Ihre Datei an einem anderen Ort oder unter einem anderen Namen befindet.
Schließen Sie das Skript, um zum Workflow zurückzukehren.
3. Fügen Sie eine FTP-Leseaktivität zur Operation hinzu
Ziehen Sie eine FTP Read-Aktivität aus der Design-Komponentenpalette in die Komponentenablagezone auf der Entwurfskanvas, um eine Instanz einer FTP Read-Aktivität in einer neuen Operation zu erstellen. Doppelklicken Sie auf die Aktivität, um sie zu öffnen.
Konfigurieren Sie sie wie folgt:
- Name: Geben Sie einen geeigneten Identifikationsnamen ein.
- Pfad: Geben Sie eine globale Variable mit dem Namen
[ftpPath]
ein. - Dateien abrufen: Geben Sie eine globale Variable mit dem Namen
[ftpFilename]
ein.
Klicken Sie auf Weiter und dann auf Fertig, um zum Workflow zurückzukehren.
4. Fügen Sie eine Dropbox-Datei-Upload-Aktivität zur Operation hinzu
Ziehen Sie einen Dropbox Put File-Aktivitätstyp aus der Komponentenpalette in die Operation nach der FTP Read-Aktivität.
Konfigurieren Sie den Dateinamen als [dropboxFilename]
und klicken Sie auf Weiter:
Klicken Sie auf Fertig, um zum Workflow zurückzukehren:
5. Fügen Sie eine Transformation zur Operation hinzu
Fügen Sie eine Transformation vor der Dropbox Put File-Aktivität hinzu.
Wenn die Transformation geöffnet wird, geben Sie ihr einen Namen und fügen Sie Skripte in die Zielfelder path
und content
ein, um die globalen Variablen dropboxFilepath
und dropboxContents
jeweils dem entsprechenden Feld zuzuordnen.
Klicken Sie auf das Schließen-Symbol, um die Transformationskonfiguration zu speichern und zum Workflow zurückzukehren:
6. Führen Sie die Operation aus
Kehren Sie zum Workflow zurück und implementieren und führen Sie die Operation aus. Sobald die Operation abgeschlossen ist und die Datei in Dropbox hochgeladen (geschrieben) wurde, sollten Sie Protokollnachrichten wie diese im Operationsprotokoll sehen, mit der Datei, die erfolgreich vom FTP-Server nach Dropbox kopiert wurde:
Variationen
Sie können dieses Beispiel modifizieren, um Probleme zu erkunden, die Entwickler von Konnektoren berücksichtigen müssen.
Zum Beispiel könnten Sie das Feld für den Pfad in der Transformation auf einen leeren String setzen und dann in der Dropbox Put File-Aktivität den Pfad entweder mit einem fest codierten Wert oder durch Verwendung einer bereits definierten Variablen ($dropboxPath
) angeben. Dies wird die Datei an dem durch das Skript festgelegten Ort speichern.
Der Code für den Dropbox-Konnektor (put-file-request.xsd
) erfordert, dass der Pfad definiert wird, wie durch die [1]
links vom Feldnamen in der Transformation angezeigt. Sie könnten jedoch verlangen, dass er stattdessen in der Benutzeroberfläche für die Dropbox Put File-Aktivität definiert wird, indem Sie den Code (adapter.json
) konfigurieren, der die Benutzeroberfläche beschreibt.
Im Fall des Dropbox-Konnektors ist der Konnektorkode (PutFileActivity.java
) so geschrieben, dass die Definition, die in der Dropbox Put File-Aktivität angegeben wird, falls spezifiziert, Vorrang vor dem Wert hat, der in der Transformation angegeben ist.
Der Ansatz, den Sie verwenden, hängt davon ab, wie Sie beabsichtigen, einen Konnektor zu verwenden oder zu konfigurieren.