[Gelöst] Datei im temp. Pfad auf Service Tier

13. April 2016 09:43

Hallo zusammen,

ein Benutzer nutzt eine lokale Excel Datei um diese mit einem Report (über Excel Buffer) zu verarbeiten. Dabei wird die Datei natürlich vorher von uns Codeunit 419 "File Management" mit der Funktion "UploadFileSilent" auf den Server geladen. Damit das Service Tier die Datei verarbeiten kann. Sie liegt dann auf einen temporären Userpfad (XXX) auf dem Server, wie zum Beispiel:
C:\ProgramData\Microsoft\Microsoft Dynamics NAV\80\Server\MicrosoftDynamicsNavServer$nodeX\users\default\XXX\TEMP

Soweit alles kein Thema. Für Supportfälle wäre es uns aber sehr hilfreich, wenn wird die Originaldatei die verarbeitet wird, im direkten Zugriff haben. Das heißt ich hätte die gern auf einem Pfad liegen, wo wir im Supportteam auch drauf zu greifen können. Deshalb würde ich die gern die Datei noch zusätzlich wo anders hinladen. Allerdings wird da der einzelne User kein Zugriff haben (Datenschutzgründe), dass heißt nur der Service Tier Benutzer hat dort Zugriff und natürlich das Supportteam.

Wie kann ich das anstellen? Hat da jemand eine Idee / Hilfestellung für mich?

Gruß
sas_fisch
Zuletzt geändert von sas_fisch am 15. April 2016 14:54, insgesamt 1-mal geändert.

Re: Datei im temp. Pfad auf Service Tier

15. April 2016 09:23

Ein einfacher Weg wäre in der CU419, Funktion UploadFileSilent, vor dem EXIT via COPY die Datei zusätzlich auf eurem Fileserver abzulegen. Hierbei musst du natürlich eine entsprechende Struktur verwenden, z.B. Username + Zeitstempel, damit es nicht zu Problemen mit doppelten Dateinamen kommt. Nachteil ist, dass du dann das Verzeichnis temporär säubern musst.

Alternativ könntest du in der Funktion ServerTempFileName der Codeunit die Erstellung des Temp-Files ändern, sodass du hier eine Datei auf eurem Fileserver erstellst statt die Systemfunktion CREATETEMPFILE zu verwenden. Ich weiß aber nicht ob das funktioniert, wenn die User keinen Zugriff auf den Fileserver haben.

Re: Datei im temp. Pfad auf Service Tier

15. April 2016 14:54

Hi,

danke für die Ideen, was auf alle Fälle funktioniert ist in der CU 419 in der Funktion UploadFileSilent, wie vorgeschlagen, was zu machen. Ich hab es jetzt so probiert, dass ich mich direkt nach diesem Statement einhänge:

IF NOT UPLOAD('',Magicpath,AllFilesDescriptionTxt,GetFileName(TempClientFile),ServerFileName) THEN

Von der Idee mach ich das genauso, also
UPLOAD('',Magicpath,AllFilesDescriptionTxt,GetFileName(TempClientFile),FileServerFileName);

Hier braucht nicht der Benutzer, sondern das Service Tier Zugriff auf den Fileserver.

Ich überlege gerade, ob es nicht einfacher wäre die Datein in einer Protokolltabelle als BLOB Field zu speichern. Die kann man ja auch regelmäßig leeren. Der Vorteil, man könnte die genaue Uhrzeit, Datum, User und den Report noch zusätzlich als Information festhalten. Mal sehen... Thema ist jedenfalls gelöst. DANKE!

Gruß
Sabrina