Dateifunktionen in Jitterbit Design Studio
Mithilfe von Dateifunktionen können Scripts Dateien auf Agenten bearbeiten, die über Quellen verfügbar sind und auf Ziele geschrieben werden.
Hinweis
Für die Prozentkodierung verwendete Sonderzeichen (auch als URL Kodierung bekannt) Dateinamen werden für FTP und SFTP-Übertragungen in Design Studio unterstützt.
ArchiveFile
Erklärung
void ArchiveFile(string sourceId, string targetId[, bool deleteSource])
Syntax
ArchiveFile(<sourceId>, <targetId>[, <deleteSource>])
Erforderliche Parameter
sourceId
: Dateitypquelle im aktuellen ProjekttargetId
: Dateitypziel im aktuellen Projekt
Optionale Parameter
deleteSource
: Boolesche Flagge (Standardfalse
) gibt an, ob die Quelle nach erfolgreichem Schreiben in das Ziel gelöscht werden soll
Beschreibung
Liest eine Datei aus einer Dateitypquelle und schreibt sie in ein Dateitypziel. Diese Funktion kombiniert die ReadFile
Und WriteFile
Funktionen, führt automatisch FlushFile
, und bietet eine Option zum Löschen der Quelldatei.
Der in diesem Funktionsaufruf verwendete Dateityp „Quelle“ und der Dateityp „Ziel“ müssen im aktuellen Projekt jeweils 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 nur eine einzige Datei zurückgegeben wird. Wenn mehrere Dateien zurückgegeben werden, wird nur die erste verwendet.
Wie dieWriteFile
Funktion, diese Funktion überschreibt keine vorhandene Datei auf dem Ziel.
Wenn die ArchiveFile
Funktion fehlschlägt, schlägt der Operation nicht fehl. Ein Script wird abgebrochen, dem Operation wird eine Warnung hinzugefügt und der Operation wird fortgesetzt.
Archivieren versus Kopieren
- Wenn
deleteSource
Isttrue
wird die Datei von der Quelle zum Ziel archiviert (also verschoben) und aus der Quelle entfernt. - Wenn
deleteSource
Istfalse
, wird die Datei von der Quelle zum Ziel kopiert und verbleibt auf der Quelle.
INFO: Diese Funktion ist in Harmony Version 8.26 verfügbar und höher.
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`[Archivdateiname] `in the target filename(s) field
ArchiveFile("<TAG>Sources/Local File Source</TAG>",
"<TAG>Targets/FTP Target</TAG>", true);
// Copies a file, using`[Archivdateiname] `in the target filename(s) field
ArchiveFile("<TAG>Sources/Local File Source</TAG>",
"<TAG>Targets/FTP Target</TAG>", false);
DeleteFile
Erklärung
int DeleteFile(string sourceId[, string fileFilter])
Syntax
DeleteFile(<sourceId>[, <fileFilter>])
Erforderliche Parameter
sourceId
: Dateitypquelle im aktuellen Projekt
Optionale Parameter
fileFilter
: Dateifilter oder Dateiname zum Überschreiben der Quelldefinition
Beschreibung
Löscht eine Datei aus der angegebenen Quelle.
Die in diesem Funktionsaufruf verwendete Dateitypquelle 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 ausgegeben. Um mehrere Dateien zu löschen, verwenden Sie die DeleteFiles
Funktion stattdessen.
Die Methode gibt eine Ganzzahl von 0 oder 1 zurück: Sie gibt 1 zurück, wenn die Datei gelöscht wurde, und 0, wenn die Datei nicht gefunden werden konnte.
Der zweite 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 wie folgt referenziert: [de_name]
in der Quelldefinition.
Beispiele
// Delete the file "ExampleFile.txt" from the "File Share Source"
DeleteFile("<TAG>Sources/File Share Source</TAG>", "ExampleFile.txt");
DeleteFiles
Erklärung
int DeleteFiles(string sourceId[, string fileFilter])
Syntax
DeleteFiles(<sourceId>[, <fileFilter>])
Erforderliche Parameter
sourceId
: Dateitypquelle im aktuellen Projekt
Optionale Parameter
fileFilter
: Dateifilter oder Dateiname zum Überschreiben der Quelldefinition
Beschreibung
Löscht eine oder mehrere Dateien aus der angegebenen Quelle.
Die in diesem Funktionsaufruf verwendete Dateitypquelle 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 Quelldefinition. Es wird eine Ganzzahl zurückgegeben, die angibt, wie viele Dateien gelöscht wurden. Die Rückgabe 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 ausgegeben. Wenn dies möglich ist, sollte die Funktion in ein Eval
Funktion.
Um eine einzelne Datei zu löschen, verwenden Sie die DeleteFile
Funktion stattdessen.
Der zweite 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 wie folgt referenziert: [de_name]
in der Quelldefinition.
Beispiele
// Delete all text (".txt") files in the source "File Source"
DeleteFiles("<TAG>Sources/File Source</TAG>","*.txt");
DirList
Erklärung
array DirList(string sourceId[, string path, string fileFilter])
Syntax
DirList(<sourceId>[, <path>, <fileFilter>])
Erforderliche Parameter
sourceId
: Dateitypquelle im aktuellen Projekt
Optionale Parameter
path
: Dateipfad zum Überschreiben der QuelldefinitionfileFilter
: Dateifilter oder Dateiname zum Überschreiben der Quelldefinition
Beschreibung
Gibt eine Liste der in einer Quelle enthaltenen Verzeichnisse zurück und gibt optional einen Pfad und einen Filter zur Einschränkung der Ergebnisse an.
Diese Methode gibt ein Array mit den Verzeichnisnamen zurück.
Die in diesem Funktionsaufruf verwendete Dateitypquelle 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 wie folgt referenziert: [de_name]
in der Quelldefinition.
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
Erklärung
array FileList(string sourceId[, string path, string fileFilter])
Syntax
FileList(<sourceId>[, <path>, <fileFilter>])
Erforderliche Parameter
sourceId
: Dateitypquelle im aktuellen Projekt
Optionale Parameter
path
: Dateipfad zum Überschreiben der QuelldefinitionfileFilter
: Dateifilter oder Dateiname zum Überschreiben der Quelldefinition
Beschreibung
Gibt eine Liste der in einer Quelle enthaltenen Dateinamen zurück. Dies ist dieselbe Liste der Dateien, die empfangen wird, wenn die Verbindung einer Dateitypquelle getestet wird, es sei denn, es wird ein Dateifilter angegeben, der den in der Aktivitätskonfiguration angegebenen Filter überschreibt.
Die in diesem Funktionsaufruf verwendete Dateitypquelle 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 Quelldefinition verwendeten Pfad zu überschreiben.
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 wie folgt referenziert: [de_name]
in der Quelldefinition.
Die Methode gibt ein Array zurück, das die Dateinamen enthält, die entweder dem Dateifilter der Quelle oder der überschriebenen Quelle entsprechen.
Beispiele
// Returns the count of the list of
// all the files in the source "File Share Source"
Length(FileList("<TAG>Sources/File Share Source</TAG>"));
FlushAllFiles
Erklärung
void FlushAllFiles([string targetId])
Syntax
FlushAllFiles([<targetId>])
Optionale Parameter
targetId
: Dateitypziel im aktuellen Projekt
Beschreibung
Behält in einen Dateipuffer geschriebene Daten bei WriteFile()
.
Das in diesem Funktionsaufruf verwendete Dateitypziel muss als Ziel im aktuellen Projekt definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.
Wenn FlushAllFiles
werden aufgerufen mit einem targetId
als Argument werden alle mit diesem Ziel geschriebenen Dateien gelöscht (siehe FlushFile
Funktion). Wenn FlushAllFiles
wird ohne Argument aufgerufen, alle Dateien, die mit WriteFile
an alle Ziele werden auf ihren jeweiligen Zielen gespeichert.
Siehe auch die FlushFiles
Funktion.
Warnung
Wenn eine zum Schreiben angegebene Datei bereits existiert, wird ein Fehler ausgegeben, wenn FlushFile
oder FlushAllFiles
heißt. Verwenden Sie DeleteFile
oder DeleteFiles
um vorhandene Dateien vor dem Leeren zu entfernen.
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
Erklärung
void FlushFile(string targetId[, string filename])
Syntax
FlushFile(<targetId>[, <filename>])
Erforderliche Parameter
targetId
: Dateitypziel im aktuellen Projekt
Optionale Parameter
filename
: Dateiname zum Überschreiben der Zieldefinition
Beschreibung
Behält in einen Dateipuffer geschriebene Daten bei WriteFile
. Wann FlushFile
aufgerufen wird, wird der aktuelle Inhalt des Puffers in das Ziel geschrieben und der lokale Puffer verworfen.
Das in diesem Funktionsaufruf verwendete Dateitypziel muss im aktuellen Projekt als Ziel 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 dieser in ähnlicher Weise beim Aufruf des WriteFile
Funktion. Das Leeren einer Datei, in die noch nie geschrieben wurde, hat keine Auswirkungen.
Alternativ kann eine globale Variable verwendet werden, um den Dateinamen in der Zieldefinition zu überschreiben. Globale Variablen werden wie folgt referenziert: [de_name]
in der Zieldefinition. Wenn ein überschriebener Dateiname verwendet wird, wird jeder Puffer für jeden eindeutigen Namen separat geleert.
Siehe auch die FlushAllFiles
Funktion.
Warnung
Wenn eine zum Schreiben angegebene Datei bereits existiert, wird ein Fehler ausgegeben, wenn FlushFile
oder FlushAllFiles
heißt. Verwenden Sie DeleteFile
oder DeleteFiles
um vorhandene Dateien vor dem Leeren zu entfernen.
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
Erklärung
string ReadFile(string sourceId[, string fileFilter])
Syntax
ReadFile(<sourceId>[, <fileFilter>])
Erforderliche Parameter
sourceId
: Dateitypquelle im aktuellen Projekt
Optionale Parameter
fileFilter
: Dateifilter oder Dateiname zum Überschreiben der Quelldefinition
Beschreibung
Liest den Inhalt einer Datei aus einer Quelle.
Die in diesem Funktionsaufruf verwendete Dateitypquelle muss im aktuellen Projekt als Quelle 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 Quellfilter 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 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 wie folgt referenziert: [de_name]
in der Quelldefinition.
Ab Harmony Version 8.20, wenn die ReadFile()
Funktion fehlschlägt, schlägt der Operation nicht fehl. Ein Script wird abgebrochen, dem Operation wird eine Warnung hinzugefügt und der Operation wird fortgesetzt.
Mit dieser Methode können Daten aus einer HTTP-Quelle gelesen werden. In diesem Fall werden alle Jitterbit $jitterbit.source.http.*
Variablen werden ausgefüllt.
Warnung
Diese Funktion funktioniert nicht zuverlässig bei Dateien mit binärem Inhalt, da sie normalerweise nur einen Teil der Datei liest. Wenn die Datei binären Inhalt hat, verwenden Sie die Base64encodefile-Funktion, um stattdessen den gesamten Dateiinhalt zu lesen.
Beispiele
$fileContents = ReadFile("<TAG>Sources/File Share Source</TAG>")
WriteFile
Erklärung
void WriteFile(string targetId, type fileContents[, string filename])
Syntax
WriteFile(<targetId>, <fileContents>[, <filename>])
Erforderliche Parameter
targetId
: Dateitypziel im aktuellen Projekt
Optionale Parameter
fileContents
: In die Datei zu schreibende Datenfilename
: Dateiname zum Überschreiben der Zieldefinition
Beschreibung
Schreibt der fileContents
zum Dateitypziel, das angegeben ist durch targetId
. Wenn fileContents
vom Typ „binär“ ist, werden die Binärdaten in die Datei geschrieben. In allen anderen Fällen wird eine Zeichenfolgendarstellung der Daten geschrieben.
Das in diesem Funktionsaufruf verwendete Dateitypziel 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 wie folgt referenziert: [de_name]
in der Zieldefinition.
Diese Methode kann auch verwendet werden, um Daten an ein HTTP-Ziel zu schreiben/zu posten. In diesem Fall $jitterbit.target.http.*
Variablen werden aufgefüllt.
Ab Harmony Version 8.20, wenn die WriteFile()
Funktion fehlschlägt, schlägt der Operation nicht fehl. Ein Script wird abgebrochen, dem Operation wird eine Warnung hinzugefügt und der Operation wird fortgesetzt.
Puffern und Spülen
Der Dateiinhalt wird lokal gepuffert, bis entweder FlushFile
oder FlushAllFiles
wird auf dem Ziel aufgerufen oder die Transformation wird erfolgreich abgeschlossen. Der Aufruf WriteFile
mehrmals ohne anzurufen FlushFile
fügt Daten an den aktuellen Puffer an und alles wird erst dann in das tatsächliche Dateitypziel geschrieben, wenn es geleert wird. Ein Dateipuffer wird eindeutig durch das Ziel (und möglicherweise den filename
); beispielsweise kann dasselbe Ziel durch Angabe eines Dateinamens zum Schreiben in verschiedene Dateien im selben Verzeichnis verwendet werden, und jeder Dateipuffer ist separat.
Bei einer Transformation werden Dateien nicht tatsächlich in das Ziel geschrieben, es sei denn, FlushFile
oder FlushAllFiles
aufgerufen wird. Wenn eine Transformation in einer Operation oder als Teil einer Operation ausgeführt wird, wird die Datei geschrieben, wenn entweder die Transformation erfolgreich abgeschlossen ist oder wenn FlushFile
oder FlushAllFiles
wird im Script aufgerufen.
Siehe auch die FlushAllFiles
Und FlushFiles
Funktionen.
Warnung
Wenn eine zum Schreiben angegebene Datei bereits existiert, wird ein Fehler ausgegeben, wenn FlushFile
oder FlushAllFiles
heißt. Verwenden Sie DeleteFile
oder DeleteFiles
um vorhandene Dateien vor dem Leeren zu entfernen.
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");