Zum Inhalt springen

Dateifunktionen im Jitterbit Design Studio

Dateifunktionen ermöglichen es Skripten, Dateien auf Agenten zu manipulieren, die über Quellen verfügbar sind und an Ziele geschrieben werden.

Hinweis

Sonderzeichen, die für die Prozentkodierung (auch bekannt als URL-Kodierung) verwendet werden, werden für FTP- und SFTP-Übertragungen im Design Studio unterstützt.

ArchiveFile

Deklaration

void ArchiveFile(string sourceId, string targetId[, bool deleteSource])

Syntax

ArchiveFile(<sourceId>, <targetId>[, <deleteSource>])

Erforderliche Parameter

  • sourceId: Dateityp-Quelle im aktuellen Projekt
  • targetId: Dateityp-Ziel im aktuellen Projekt

Optionale Parameter

  • deleteSource: Boolesches Flag (Standard false), das angibt, ob die Quelle nach dem erfolgreichen Schreiben in das Ziel gelöscht werden soll

Beschreibung

Liest eine Datei von einer Dateityp-Quelle und schreibt sie in ein Dateityp-Ziel. Diese Funktion kombiniert die Funktionen ReadFile und WriteFile, führt automatisch FlushFile aus und bietet die Option, die Quelldatei zu löschen.

Die in diesem Funktionsaufruf verwendete Dateityp-Quelle und das Dateityp-Ziel müssen im aktuellen Projekt als Quelle und Ziel definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Da nur eine Datei archiviert wird, wird empfohlen, die Quelle so zu erstellen, dass sie nur eine einzige Datei zurückgibt. Wenn mehrere Dateien zurückgegeben werden, wird nur die erste verwendet.

Wie die Funktion WriteFile wird diese Funktion keine vorhandene Datei im Ziel überschreiben.

Wenn die Funktion ArchiveFile fehlschlägt, schlägt die Operation nicht fehl. Ein Skript wird abgebrochen, eine Warnung wird zum Betriebsprotokoll hinzugefügt, und die Operation wird fortgesetzt.

Archivierung versus Kopieren

  • Wenn deleteSource true ist, wird die Datei archiviert (mit anderen Worten, verschoben) vom Quell- zum Zielort und von der Quelle entfernt.
  • Wenn deleteSource false ist, wird die Datei vom Quell- zum Zielort kopiert und bleibt in der Quelle.

Hinweis

Endpunkte, die mit dem zugrunde liegenden Hostwert des Dateityp-Endpunkts erstellt wurden, sind in der Endpunktnutzungsberichterstattung enthalten und zählen zu Ihrer Lizenz.

Beispiele

// Retrieve list of files from a source
localFiles = FileList("<TAG>Sources/Local File Source</TAG>");

// Create a global archive filename
$archiveFilename = "archive.[date]-[time]." + localFiles[0];

// Archive (moves) a file, using [archiveFilename] in the target filename(s) field
ArchiveFile("<TAG>Sources/Local File Source</TAG>",
    "<TAG>Targets/FTP Target</TAG>", true);

// Copies a file, using [archiveFilename] in the target filename(s) field
ArchiveFile("<TAG>Sources/Local File Source</TAG>",
    "<TAG>Targets/FTP Target</TAG>", false);

DeleteFile

Deklaration

int DeleteFile(string sourceId[, string fileFilter])

Syntax

DeleteFile(<sourceId>[, <fileFilter>])

Erforderliche Parameter

  • sourceId: Dateityp-Quelle im aktuellen Projekt

Optionale Parameter

  • fileFilter: Dateifilter oder Dateiname, um die Quelldefinition zu überschreiben

Beschreibung

Löscht eine Datei aus der angegebenen Quelle.

Die in diesem Funktionsaufruf verwendete Dateityp-Quelle muss als Quelle im aktuellen Projekt definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Wenn der Quellfilter mehr als eine Datei auswählt, wird ein Fehler ausgelöst. Um mehrere Dateien zu löschen, verwenden Sie stattdessen die Funktion DeleteFiles.

Die Methode gibt eine Ganzzahl von entweder 0 oder 1 zurück: Sie gibt 1 zurück, wenn die Datei gelöscht wurde; 0, wenn die Datei nicht gefunden werden konnte.

Der zweite Parameter, fileFilter, ist optional und kann verwendet werden, um den im Quelldefinition verwendeten Dateifilter zu überschreiben. Ein Dateiname kann verwendet werden. Alternativ kann eine globale Variable verwendet werden, um den Dateifilter in der Quelldefinition zu überschreiben. Globale Variablen werden in der Quelldefinition als [de_name] referenziert.

Hinweis

Endpunkte, die mit dem zugrunde liegenden Hostwert des Dateityp-Endpunkts erstellt wurden, sind in der Endpunktnutzungsberichterstattung enthalten und zählen zu Ihrer Lizenz.

Beispiele

// Löschen Sie die Datei "ExampleFile.txt" aus der "File Share Source"
DeleteFile("<TAG>Sources/File Share Source</TAG>", "ExampleFile.txt");

DeleteFiles

Deklaration

int DeleteFiles(string sourceId[, string fileFilter])

Syntax

DeleteFiles(<sourceId>[, <fileFilter>])

Erforderliche Parameter

  • sourceId: Dateityp-Quelle im aktuellen Projekt

Optionale Parameter

  • fileFilter: Dateifilter oder Dateiname, um die Quellendefinition zu überschreiben

Beschreibung

Löscht eine oder mehrere Dateien aus der angegebenen Quelle.

Die in diesem Funktionsaufruf verwendete Dateityp-Quelle muss als Quelle im aktuellen Projekt definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Diese Methode löscht mehrere Dateien, falls welche gefunden werden, basierend auf dem Dateifilter der Quellendefinition. Ein ganzzahliger Wert wird zurückgegeben, der angibt, wie viele Dateien gelöscht wurden. Ein Rückgabewert von 0 bedeutet, dass keine Dateien gefunden wurden, die dem Dateifilter entsprechen.

Wenn ein angegebener Pfad in der Quelle nicht gefunden werden kann, wird ein Fehler ausgelöst. Wenn dies eine Möglichkeit ist, sollte die Funktion in eine Eval-Funktion eingebettet werden.

Um eine einzelne Datei zu löschen, verwenden Sie stattdessen die Funktion DeleteFile.

Der zweite Parameter, fileFilter, ist optional und kann verwendet werden, um den in der Quellendefinition verwendeten Dateifilter zu überschreiben. Ein Dateiname kann verwendet werden. Alternativ kann eine globale Variable verwendet werden, um den Dateifilter in der Quellendefinition zu überschreiben. Globale Variablen werden in der Quellendefinition als [de_name] referenziert.

Hinweis

Endpunkte, die mit dem zugrunde liegenden Hostwert des Dateityp-Endpunkts erstellt wurden, sind in der Endpunktnutzungsberichterstattung enthalten und zählen zu Ihrer Lizenz.

Beispiele

// Löschen Sie alle Textdateien (".txt") im Quellverzeichnis "File Source"
DeleteFiles("<TAG>Sources/File Source</TAG>","*.txt");

DirList

Deklaration

array DirList(string sourceId[, string path, string fileFilter])

Syntax

DirList(<sourceId>[, <path>, <fileFilter>])

Erforderliche Parameter

  • sourceId: Dateityp-Quelle im aktuellen Projekt

Optionale Parameter

  • path: Dateipfad, um die Quelldefinition zu überschreiben
  • fileFilter: Dateifilter oder Dateiname, um die Quelldefinition zu überschreiben

Beschreibung

Gibt eine Liste von Verzeichnissen zurück, die in einer Quelle enthalten sind, wobei optional ein Pfad und ein Filter angegeben werden können, um die Ergebnisse einzuschränken.

Diese Methode gibt ein Array mit den Verzeichnisnamen zurück.

Die in diesem Funktionsaufruf verwendete Dateityp-Quelle muss als Quelle im aktuellen Projekt definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Der Parameter fileFilter ist optional und kann verwendet werden, um den in der Quelldefinition verwendeten Dateifilter zu überschreiben. Ein Dateiname kann verwendet werden. Alternativ kann eine globale Variable verwendet werden, um den Dateifilter in der Quelldefinition zu überschreiben. Globale Variablen werden in der Quelldefinition als [de_name] referenziert.

Hinweis

Endpunkte, die mit dem zugrunde liegenden Hostwert des Dateityp-Endpunkts erstellt wurden, sind in der Endpunktnutzungsberichterstattung enthalten und zählen zu Ihrer Lizenz.

Beispiele

// Returns the count of the list of all the text files (".txt")
// in the "example" folder of the source "File Share Source"
Length(DirList("<TAG>Sources/File Share Source</TAG>",
    "\\\\server\\example","*.txt"));

FileList

Deklaration

array FileList(string sourceId[, string path, string fileFilter])

Syntax

FileList(<sourceId>[, <path>, <fileFilter>])

Erforderliche Parameter

  • sourceId: Dateityp-Quelle im aktuellen Projekt

Optionale Parameter

  • path: Dateipfad, um die Quellendefinition zu überschreiben
  • fileFilter: Dateifilter oder Dateiname, um die Quellendefinition zu überschreiben

Beschreibung

Gibt eine Liste von Dateinamen zurück, die in einer Quelle enthalten sind. Dies wird die gleiche Liste von Dateien sein, die erhalten wird, wenn die Verbindung einer Dateityp-Quelle getestet wird, es sei denn, ein Dateifilter wird angegeben, um den in der Aktivitätskonfiguration angegebenen Filter zu überschreiben.

Die in diesem Funktionsaufruf verwendete Dateityp-Quelle muss als Quelle im aktuellen Projekt definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Der Parameter path ist optional und kann verwendet werden, um den in der Quellendefinition verwendeten Pfad zu überschreiben.

Der Parameter fileFilter ist optional und kann verwendet werden, um den in der Quellendefinition verwendeten Dateifilter zu überschreiben. Ein Dateiname kann verwendet werden. Alternativ kann eine globale Variable verwendet werden, um den Dateifilter in der Quellendefinition zu überschreiben. Globale Variablen werden in der Quellendefinition als [de_name] referenziert.

Die Methode gibt ein Array zurück, das die Dateinamen enthält, die entweder dem Dateifilter der Quelle oder der überschriebenen Quelle entsprechen.

Hinweis

Endpunkte, die unter Verwendung des zugrunde liegenden Hostwerts des Dateityp-Endpunkts erstellt wurden, sind in Endpunktnutzungsberichten enthalten und zählen zu Ihrer Lizenz.

Beispiele

// Gibt die Anzahl der Liste von
// allen Dateien in der Quelle "File Share Source" zurück
Length(FileList("<TAG>Sources/File Share Source</TAG>"));

FlushAllFiles

Deklaration

void FlushAllFiles([string targetId])

Syntax

FlushAllFiles([<targetId>])

Optionale Parameter

  • targetId: Dateityp-Ziel im aktuellen Projekt

Beschreibung

Persistiert Daten, die in einen Dateipuffer mit WriteFile() geschrieben wurden.

Das in diesem Funktionsaufruf verwendete Dateityp-Ziel muss als Ziel im aktuellen Projekt definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Wenn FlushAllFiles mit einem targetId als Argument aufgerufen wird, werden alle Dateien, die mit diesem Ziel geschrieben wurden, geleert (siehe die Funktion FlushFile). Wenn FlushAllFiles ohne Argument aufgerufen wird, werden alle Dateien, die mit WriteFile an beliebige Ziele geschrieben wurden, in ihre jeweiligen Ziele persistiert.

Siehe auch die Funktion FlushFiles.

Warnung

Wenn eine zum Schreiben angegebene Datei bereits existiert, wird ein Fehler ausgelöst, wenn FlushFile oder FlushAllFiles aufgerufen wird. Verwenden Sie DeleteFile oder DeleteFiles, um vorhandene Dateien vor dem Leeren zu entfernen.

Hinweis

Endpunkte, die mit dem zugrunde liegenden Hostwert des Dateityp-Endpunkts erstellt wurden, sind in Endpunktnutzungsberichten enthalten und zählen zu Ihrer Lizenz.

Beispiele

// Write "contents1" to the file specified by the FTP target
WriteFile("<TAG>Targets/FTP Target</TAG>", contents1);

// Write "contents2" to a file "copy.txt",
// overriding that specified by the FTP target
WriteFile("<TAG>Targets/FTP Target</TAG>", contents2, "copy.txt");

// Flush both files to the target
FlushAllFiles("<TAG>Targets/FTP Target</TAG>");

FlushFile

Deklaration

void FlushFile(string targetId[, string filename])

Syntax

FlushFile(<targetId>[, <filename>])

Erforderliche Parameter

  • targetId: Dateityp-Ziel im aktuellen Projekt

Optionale Parameter

  • filename: Dateiname, um die Zieldefinition zu überschreiben

Beschreibung

Persistiert Daten, die in einen Datei-Puffer mit WriteFile geschrieben wurden. Wenn FlushFile aufgerufen wird, werden die aktuellen Inhalte des Puffers an das Ziel geschrieben und der lokale Puffer verworfen.

Das in diesem Funktionsaufruf verwendete Datei-Ziel muss als Ziel im aktuellen Projekt definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Der optionale Parameter filename kann verwendet werden, um den in der Zieldefinition verwendeten Dateinamen zu überschreiben, wenn er im Aufruf der WriteFile-Funktion ebenfalls überschrieben wurde. Das Leeren einer Datei, die noch nie beschrieben wurde, hat keine Auswirkungen.

Alternativ kann eine globale Variable verwendet werden, um den Dateinamen in der Zieldefinition zu überschreiben. Globale Variablen werden in der Zieldefinition als [de_name] referenziert. Wenn ein überschreibender Dateiname verwendet wird, wird jeder Puffer separat für jeden eindeutigen Namen geleert.

Siehe auch die Funktion FlushAllFiles.

Warnung

Wenn eine zum Schreiben angegebene Datei bereits existiert, wird ein Fehler ausgelöst, wenn FlushFile oder FlushAllFiles aufgerufen wird. Verwenden Sie DeleteFile oder DeleteFiles, um vorhandene Dateien vor dem Leeren zu entfernen.

Hinweis

Endpunkte, die mit dem zugrunde liegenden Hostwert des Datei-Typ-Endpunkts erstellt wurden, sind in Endpunktnutzungsberichten enthalten und zählen zu Ihrer Lizenz.

Beispiele

// Writing the variable "contents" to a target
WriteFile("<TAG>Targets/FTP Target</TAG>", contents);

// Flushing (actually writing) to the target
FlushFile("<TAG>Targets/FTP Target</TAG>");

// Write another file (overriding the filename in the target)
WriteFile("<TAG>Targets/FTP Target</TAG>", contents, "test.txt");

// Flushing the "test.txt" file explicitly
FlushFile("<TAG>Targets/FTP Target</TAG>", "test.txt");

ReadFile

Deklaration

string ReadFile(string sourceId[, string fileFilter])

Syntax

ReadFile(<sourceId>[, <fileFilter>])

Erforderliche Parameter

  • sourceId: Datei-Typ-Quelle im aktuellen Projekt

Optionale Parameter

  • fileFilter: Dateifilter oder Dateiname, um die Quellendefinition zu überschreiben

Beschreibung

Liest den Inhalt einer Datei aus einer Quelle.

Die in diesem Funktionsaufruf verwendete Dateityp-Quelle muss als Quelle im aktuellen Projekt definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Die Methode gibt den Inhalt der Datei zurück, auf die die Quelle verweist. Wenn der Quellenfilter mehr als eine Datei auswählt, wird die erste verwendet. Es wird empfohlen, eine Quelle anzugeben, die eine einzelne Datei eindeutig identifiziert.

Der Parameter fileFilter ist optional und kann verwendet werden, um den in der Quellendefinition verwendeten Dateifilter zu überschreiben. Ein Dateiname kann verwendet werden. Alternativ kann eine globale Variable verwendet werden, um den Dateifilter in der Quellendefinition zu überschreiben. Globale Variablen werden in der Quellendefinition als [de_name] referenziert.

Seit Harmony Version 8.20 schlägt die Operation nicht fehl, wenn die Funktion ReadFile() fehlschlägt. Ein Skript wird abgebrochen, eine Warnung wird zum Betriebsprotokoll hinzugefügt, und die Operation wird fortgesetzt.

Diese Methode kann verwendet werden, um Daten aus einer HTTP-Quelle zu lesen. In diesem Fall werden alle Jitterbit $jitterbit.source.http.* Variablen befüllt.

Warnung

Diese Funktion funktioniert nicht zuverlässig mit Dateien, die binäre Inhalte haben, da sie normalerweise nur einen Teil der Datei liest. Wenn die Datei binäre Inhalte hat, verwenden Sie stattdessen die Funktion Base64encodefile, um den gesamten Dateiinhalte zu lesen.

Hinweis

Endpunkte, die mit dem zugrunde liegenden Hostwert des Dateityp-Endpunkts erstellt wurden, sind in Endpunktnutzungsberichten enthalten und zählen zu Ihrer Lizenz.

Beispiele

$fileContents = ReadFile("<TAG>Sources/File Share Source</TAG>")

WriteFile

Deklaration

void WriteFile(string targetId, type fileContents[, string filename])

Syntax

WriteFile(<targetId>, <fileContents>[, <filename>])

Erforderliche Parameter

  • targetId: Dateityp-Ziel im aktuellen Projekt

Optionale Parameter

  • fileContents: Daten, die in die Datei geschrieben werden sollen
  • filename: Dateiname, um die Zieldefinition zu überschreiben

Beschreibung

Schreibt die fileContents in das durch targetId angegebene Dateityp-Ziel. Wenn fileContents vom Typ binär ist, werden die binären Daten in die Datei geschrieben. In allen anderen Fällen wird eine String-Darstellung der Daten geschrieben.

Das in diesem Funktionsaufruf verwendete Dateityp-Ziel muss als Ziel im aktuellen Projekt definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Der dritte Parameter, filename, ist optional und kann verwendet werden, um den im Ziel verwendeten Dateinamen zu überschreiben. Alternativ kann eine globale Variable verwendet werden, um den Dateinamen in der Zieldefinition zu überschreiben. Globale Variablen werden in der Zieldefinition als [de_name] referenziert.

Diese Methode kann auch verwendet werden, um Daten an ein HTTP-Ziel zu schreiben/zu posten. In diesem Fall werden die Variablen $jitterbit.target.http.* befüllt.

Seit Harmony Version 8.20 schlägt die Operation nicht fehl, wenn die Funktion WriteFile() fehlschlägt. Ein Skript wird abgebrochen, eine Warnung wird zum Betriebsprotokoll hinzugefügt, und die Operation wird fortgesetzt.

Pufferung und Leeren

Die Dateiinhalte werden lokal gepuffert, bis entweder FlushFile oder FlushAllFiles auf dem Ziel aufgerufen wird oder die Transformation erfolgreich abgeschlossen ist. Mehrmaliges Aufrufen von WriteFile, ohne FlushFile aufzurufen, fügt Daten zum aktuellen Puffer hinzu, und alles wird nur dann in das tatsächliche Dateityp-Ziel geschrieben, wenn es geleert wird. Ein Datei-Puffer wird eindeutig durch das Ziel (und potenziell den filename) identifiziert; zum Beispiel kann dasselbe Ziel verwendet werden, um in verschiedene Dateien im selben Verzeichnis zu schreiben, indem ein Dateiname angegeben wird, und jeder Datei-Puffer wird separat sein.

Dateien werden in einer Testtransformation nicht tatsächlich im Ziel geschrieben, es sei denn, FlushFile oder FlushAllFiles wird aufgerufen. Wenn eine Transformation in einem Vorgang oder als Teil eines Testvorgangs ausgeführt wird, wird die Datei geschrieben, wenn entweder die Transformation erfolgreich abgeschlossen wird oder wenn FlushFile oder FlushAllFiles im Skript aufgerufen wird.

Siehe auch die Funktionen FlushAllFiles und FlushFiles.

Warnung

Wenn eine zum Schreiben angegebene Datei bereits existiert, wird ein Fehler ausgelöst, wenn FlushFile oder FlushAllFiles aufgerufen wird. Verwenden Sie DeleteFile oder DeleteFiles, um vorhandene Dateien vor dem Flushen zu entfernen.

Hinweis

Endpunkte, die mit dem zugrunde liegenden Hostwert des Dateityp-Endpunkts erstellt wurden, sind in der Endpunktnutzungsberichterstattung enthalten und zählen zu Ihrer Lizenz.

Beispiele

// Write "contents" to a file in a target
WriteFile("<TAG>Targets/FTP Target</TAG>", contents);

// Use the filename "test.txt" instead of
// what is defined in the target
WriteFile("<TAG>Targets/FTP Target</TAG>", contents, "test.txt");