So lesen und schreiben Sie Dateien in Frends.
Geschrieben vonOssi Galkin Vor über einer Woche aktualisiertTable of contentsGeschrieben für Frends Version 5.6.
Für erfolgreiche Integrationsprozesse sind häufig Dateioperationen erforderlich. Frends bietet einfach zu verwendende Tasks zur Handhabung von Dateien. Die meisten in Integrationsprozessen verarbeiteten Dateien enthalten Text und stehen daher im Mittelpunkt dieses Tutorials. Die Binärdateien werden kurz besprochen und abschließend wird ein etwas komplexerer Fall vorgestellt, bei dem ein Dateitrigger mehrere XML-Dateien empfängt und diese dann in JSON konvertiert und auf die Festplatte geschrieben werden.
Voraussetzungen
Um diese Anleitung durcharbeiten zu können, benötigen Sie die folgenden Voraussetzungen:
Editorrechte für Ihren Frends Tenant.
Freunde.DateienUndFreunde.JSON2Aufgabenimportiertan Ihre Freunde Mieter
Mustervergleich
Dateiaufgaben verwenden Mustervergleiche zur Bestimmung der bearbeiteten Dateien.
Die Suche beginnt beim Stammverzeichnis, das in den Eingabeparametern definiert ist. Als Platzhalter werden Sternchen (*) und zwei Sterne (**) verwendet. Ein Sternchen (*) entspricht einem oder mehreren Zeichen in einem Pfadsegment, d. h. einem alphanumerischen Zeichen zwischen Schrägstrichen. Zwei Sterne entsprechen einer beliebigen Anzahl von Pfadsegmenten, auch keinem.
Zum Beispiel**\Ausgabe\*\temp\*.txt
stimmt mit beiden der folgenden Pfade überein:
test\Unterordner\Ausgabe\2015\temp\Datei.txt
Produktion\Ausgabe\2016\temp\beispiel.txt
Weitere Informationen zum Mustervergleich finden Sie hierHier.
Verschiedene Aufgaben
Textdatei lesen
Grundlegende Verwendung vonDateien.LesenDie Aufgabe ist sehr einfach, normalerweise muss nur der Dateipfad definiert werden:
Der Inhalt der gelesenen Datei befindet sich unter der Eigenschaft Content. Er kann beispielsweise über die Referenz aufgerufen werden.#result[Lesen].Inhalt
:
Bei Bedarf können die Optionen zum Lesen einer Datei unter der Registerkarte „Optionen“ in den Aufgabenparametern geändert werden. Dateikodierung und Eingabe von Anmeldeinformationen für den Netzwerkstandort finden Sie hier beispielsweise.
Textdatei schreiben
Wie das Lesen einer Datei ist auch das Schreiben von Dateien normalerweise sehr einfach.Dateien.Schreiben
Normalerweise reicht es aus, Speicherort und Inhalt der Datei anzugeben:
Files.Write gibt den Pfad der geschriebenen Datei und ihre Größe in Megabyte zurück.
Lesen und Schreiben von Binärdateien
Aufgaben für FreundeDateien.ReadBytesUndDateien.WriteByteskann zum Lesen und Schreiben beliebiger Dateien verwendet werden. Sie funktionieren ähnlich wie Files.Read und Files.Write, der Inhalt wird jedoch als Byte-Array dargestellt.
Andere Dateivorgänge
Zusätzlich zu den oben genannten Aufgaben bietet Frends mehrere Aufgaben zum Suchen, Umbenennen, Verschieben, Löschen und Kopieren von Dateien.
Beispiel für die Verwendung von Dateiaufgaben zusammen mit anderen Frends-Elementen
In diesem Beispiel empfängt der Dateitrigger mehrere XML-Dateien, die dann in JSON konvertiert und auf die Festplatte geschrieben werden. Der Trigger kann mehrere Dateien empfangen, aber der Einfachheit halber werden sie in jeder Schleife einzeln verarbeitet.
Der Prozess beginnt mit einem Dateitrigger, bei dem ein Ordner angegeben werden muss, in den die Dateien geschrieben werden.
Für jede Schleife werden Informationen zu Dateien vom File Trigger per Referenz abgerufen:#trigger.daten.dateien
und definiert die Variableich
:
Files.Read Task wird verwendet, um Dateien in den Speicher zu lesen. Der Dateipfad wird über die Variable i als Referenz abgerufen.#var.in.FullPath:
Der Dateiinhalt wird dann von Task von XML in JSON konvertiertJSON.ConvertXmlStringToJToken. Es wird dauern#Ergebnis.Inhalt
als Eingabe, da es aus der Datei gelesenes XML enthält. Es wird in JToken konvertiert, eine benutzerfreundliche Möglichkeit, JSON in C# zu verarbeiten.
Der Einfachheit halber werden die JSON-Dateien nicht zusätzlich formatiert und in dasselbe Verzeichnis geschrieben, in dem die Originaldateien empfangen wurden. Der Dateiname ist derselbe, die Dateierweiterung wird von .xml in .json umgewandelt. JSON wird von Task Files.Write auf die Festplatte geschrieben. Es wird#Ergebnis
als Eingabe kann JToken direkt in einen String konvertiert werden.System.IO.Path.GetDirectoryName
Die Funktion wird verwendet, um das Verzeichnis der Datei abzurufen, die durch den Dateitrigger und die Funktion empfangen wurde.Dateiname ohne Erweiterung abrufen
wird verwendet, um einen Dateinamen ohne Erweiterung zu erhalten. Zusammen werden sie verwendet, um den Dateispeicherort zu definieren:
{{System.IO.Path.GetDirectoryName(#var.i.FullPath)}}\{{System.IO.Path.GetFileNameWithoutExtension(#var.i.FileName)}}.json
Jetzt ist der Beispielprozess bereit und kann getestet werden, indem er gespeichert und aktiviert und dann einige XML-Dateien in das Eingabeverzeichnis geschrieben werden.
Verwandte ArtikelCSV lesen und in XML umwandelnBenutzerdefinierte AufgabenBeispiel für die Zuordnung aus einem EDIFACT JToken-BaumBeispiel für das Erstellen einer EDIFACT-Nachricht aus JSONEinführung in das Erstellen einer JSON-Nachricht – ein nicht ganz einfaches Beispiel