Datei-Plugin
Das File Plugin der 365 business Proxy Application ermöglicht den vollumfänglichen Zugriff auf lokale Dateisysteme, Netzlaufwerke und UNC-Pfade.
Es gehört zu den Standard-Plugins und kann direkt über die Seite Proxy Application Clients in Microsoft Dynamics 365 Business Central installiert werden.
AL-Integration
Alle Funktionen werden über die Codeunit bdev.PRX Proxy Application (ID 5523630) bereitgestellt.
Beispiel
Im folgenden Beispiel wird ein Ordner eingelesen, eine vorhandene Datei ggf. gelöscht und eine neue Datei mit dem Inhalt "Hello, World!" erstellt:
procedure ExampleFilePlugin
var
files: Record "bdev.PRX File Item" temporary;
proxyApp: Codeunit "bdev.PRX Proxy Application";
begin
// get file list for directory "C:\temp"
proxyApp.ListFiles(
files,
'C:\temp'
);
// check whether "hello-world.txt" exists
files.Reset();
files.SetRange("Name", 'hello-world.txt');
files.SetRange("Is File", true);
if (files.FindFirst()) then
// if file exists, delete it
proxyApp.DeleteFile(files."File Path");
// create file "hello-world.txt"
proxyApp.PostFile(
'C:\temp\hello-world.txt',
GetFileWithContent('Hello, World!')
);
end;
local procedure GetFileWithContent(content: Text) file: Codeunit "Temp Blob"
var
stream: OutStream;
begin
file.CreateOutStream(stream, TextEncoding::UTF8);
stream.WriteText(content);
exit(file);
end;
Funktionen im Überblick
Dateien auflisten – (ListFiles)
files: Record "bdev.PRX File Item" temporary := ListFiles([clientId: Guid,] filePath: Text [,fileFilter: Text])
ListFiles(var files: Record "bdev.PRX File Item" temporary, [clientId: Guid,] filePath: Text [,fileFilter: Text])
Parameter
clientId: Guid(Optional)
Gibt die ID des Proxy Application Client an, auf dem die Operation ausgeführt werden soll.filePath: Text
Gibt den Pfad oder UNC-Pfad an, für den die Dateiliste abgerufen werden soll.fileFilter: Text
Gibt den Filter (z.B.*.txt) an, der bei der Auflistung angewandt werden soll.
Rückgabe
Gibt die temporäre Tabelle bdev.PRX File Item zu, die die Dateiliste darstellt.
Prüfen ob Datei existiert (FileExists)
fileExists: Boolean := FileExists([clientId: Guid,] filePath: Text)
Parameter
clientId: Guid(Optional)
Gibt die ID des Proxy Application Client an, auf dem die Operation ausgeführt werden soll.filePath: Text
Gibt den Pfad oder UNC-Pfad der Datei an.
Rückgabe
Gibt true zurück, wenn die Datei existiert.
Datei lesen (GetFile)
file: Codeunit "Temp Blob" := GetFile([clientId: Guid,] filePath: Text)
Parameter
clientId: Guid(Optional)
Gibt die ID des Proxy Application Client an, auf dem die Operation ausgeführt werden soll.filePath: Text
Gibt den Pfad oder UNC-Pfad der Datei an.
Rückgabe
Gibt Codeunit "Temp Blob" zurück, mit dem Inhalt der Datei.
Datei schreiben (PostFile)
success: Boolean := PostFile([clientId: Guid,] filePath: Text, file: Codeunit "Temp Blob")
Parameter
clientId: Guid(Optional)
Gibt die ID des Proxy Application Client an, auf dem die Operation ausgeführt werden soll.filePath: Text
Gibt den Pfad oder UNC-Pfad der Datei an.file: Codeunit "Temp Blob"
Die Datei die geschrieben werden soll.
Rückgabe
Gibt true zurück, wenn die Datei erfolgreich geschrieben wurde.
Datei löschen (DeleteFile)
success: Boolean := DeleteFile([clientId: Guid,] filePath: Text)
Parameter
clientId: Guid(Optional)
Gibt die ID des Proxy Application Client an, auf dem die Operation ausgeführt werden soll.filePath: Text
Gibt den Pfad oder UNC-Pfad der Datei an.
Rückgabe
Gibt true zurück, wenn die Datei erfolgreich gelöscht wurde.
Datei verschieben (MoveFile)
success: Boolean := MoveFile([clientId: Guid,] fromFilePath: Text, toFilePath: Text [, overwrite: Boolean])
Parameter
clientId: Guid(Optional)
Gibt die ID des Proxy Application Client an, auf dem die Operation ausgeführt werden soll.fromFilePath: Text
Gibt den Pfad oder UNC-Pfad der Datei an, die verschoben werden soll.toFilePath: Text
Gibt den Zielpfad oder UNC-Pfad an, zu dem die Datei verschoben werden soll.overwrite: Boolean
Gibt an, ob die Datei am Ziel überschrieben werden soll, falls sie bereits existiert.
Rückgabe
Gibt true zurück, wenn die Datei erfolgreich verschoben wurde.
Datei kopieren (CopyFile)
success: Boolean := CopyFile([clientId: Guid,] fromFilePath: Text, toFilePath: Text [, overwrite: Boolean])
Parameter
clientId: Guid(Optional)
Gibt die ID des Proxy Application Client an, auf dem die Operation ausgeführt werden soll.fromFilePath: Text
Gibt den Pfad oder UNC-Pfad der Datei an, die kopiert werden soll.toFilePath: Text
Gibt den Zielpfad oder UNC-Pfad an, zu dem die Datei kopiert werden soll.overwrite: Boolean
Gibt an, ob die Datei am Ziel überschrieben werden soll, falls sie bereits existiert.
Rückgabe
Gibt true zurück, wenn die Datei erfolgreich kopiert wurde.
Datei umbenennen (RenameFile)
success: Boolean := RenameFile([clientId: Guid,] filePath: Text, newFilePath: Text)
Parameter
clientId: Guid(Optional)
Gibt die ID des Proxy Application Client an, auf dem die Operation ausgeführt werden soll.filePath: Text
Gibt den Pfad oder UNC-Pfad der Datei an.newFilePath: Text
Gibt den neuen Namen und Pfad der Datei an.
Rückgabe
Gibt true zurück, wenn die Datei erfolgreich umbenannt wurde.
Prüfen ob Verzeichnis existiert (DirectoryExists)
success: Boolean := DirectoryExists([clientId: Guid,] directoryPath: Text)
Parameter
clientId: Guid(Optional)
Gibt die ID des Proxy Application Client an, auf dem die Operation ausgeführt werden soll.directoryPath: Text
Gibt den Pfad oder UNC-Pfad des Verzeichnis an.
Rückgabe
Gibt true zurück, wenn das Verzeichnis existiert.
Verzeichnis erstellen (CreateDirectory)
success: Boolean := CreateDirectory([clientId: Guid,] directoryPath: Text)
Parameter
clientId: Guid(Optional)
Gibt die ID des Proxy Application Client an, auf dem die Operation ausgeführt werden soll.directoryPath: Text
Gibt den Pfad oder UNC-Pfad des Verzeichnis an, das erstellt werden soll.
Rückgabe
Gibt true zurück, wenn das Verzeichnis erstellt wurde.
Verzeichnis löschen (DeleteDirectory)
success: Boolean := DeleteDirectory([clientId: Guid,] directoryPath: Text [, recursive: Boolean])
Parameter
clientId: Guid(Optional)
Gibt die ID des Proxy Application Client an, auf dem die Operation ausgeführt werden soll.directoryPath: Text
Gibt den Pfad oder UNC-Pfad des Verzeichnis an, das gelöscht werden soll.recursive: Boolean
Gibt an, ob das Verzeichnis rekursiv gelöscht werden soll.
Rückgabe
Gibt true zurück, wenn das Verzeichnis gelöscht wurde.
Verzeichnis verschieben (MoveDirectory)
success: Boolean := MoveDirectory([clientId: Guid,] fromDirectoryPath: Text, toDirectoryPath: Text)
Parameter
clientId: Guid(Optional)
Gibt die ID des Proxy Application Client an, auf dem die Operation ausgeführt werden soll.fromDirectoryPath: Text
Gibt den Pfad oder UNC-Pfad des Verzeichnis an, das verschoben werden soll.toDirectoryPath: Text
Gibt den Pfad oder UNC-Pfad an, zu dem das Verzeichnis verschoben werden soll.
Rückgabe
Gibt true zurück, wenn das Verzeichnis verschoben wurde.
Verzeichnis kopieren (CopyDirectory)
success: Boolean := CopyDirectory([clientId: Guid,] fromDirectoryPath: Text, toDirectoryPath: Text)
Parameter
clientId: Guid(Optional)
Gibt die ID des Proxy Application Client an, auf dem die Operation ausgeführt werden soll.fromDirectoryPath: Text
Gibt den Pfad oder UNC-Pfad des Verzeichnis an, das kopiert werden soll.toDirectoryPath: Text
Gibt den Pfad oder UNC-Pfad an, zu dem das Verzeichnis kopiert werden soll.
Rückgabe
Gibt true zurück, wenn das Verzeichnis kopiert wurde.