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 ProjekttargetId
: Dateityp-Ziel im aktuellen Projekt
Optionale Parameter
deleteSource
: Boolesches Flag (Standardfalse
), 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 überschreibenfileFilter
: 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 überschreibenfileFilter
: 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 sollenfilename
: 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");