Kein Zugriffsrecht auf ServerTempFileName bei Email Versand

Bild Microsoft Dynamics NAV 2017

Kein Zugriffsrecht auf ServerTempFileName bei Email Versand

Beitragvon elTorito » 26. August 2020 11:22

Guten morgen,

beim Versuch, aus einer Gebuchten Rechnung heraus, eine E-Mail zu versenden wird dies quittiert mit:

Die Datei "C:\ProgramData\Microsoft\Microsoft Dynamics NAV\100\Server\MicrosoftDynamicsNavServer$INSTANCE\users\default\XXX\USER\TEMP\__TEMP__9b59781a62854ca49b2db283cf3522de.tmp.pdf" wurde nicht gefunden.

Nav läuft in einer Citrix Umgebung. 3Tier, Vermute dass der Client keine Kenntnis hat wo das Temp File liegt, oder keine Zugriffsrechte.

Kann man den Temp Pfad, wo das File erstellt wird, ändern?

Vielen Dank
gruĂź Peter
Die letzten Worte eines Dieselfahrers: "lieber tot als Schub verlieren" Dieselfahrverbot
(Oo)=*=(oO)
Benutzeravatar
elTorito
 
Beiträge: 1042
Registriert: 16. Juni 2006 17:57
Wohnort: Viersen
Realer Name: Peter Karsten
Arbeitsort: Viersen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.60 ... NAV2009 -> NAV2018

Re: Kein Zugriffsrecht auf ServerTempFileName bei Email Vers

Beitragvon fiddi » 29. August 2020 07:17

Hallo,

den Pfad muss man eigentlich nicht ändern. Es kommt immer darauf an, was du mit der Datei vorhast, und wie Sie erzeugt wird.

Dreh- und Angelpunkt ist dabei meist die Codeunit "File Management" und/oder die Standard Mail Codeunits 397 Mail und 400 SMTP-Mail.

Willst du die Mail mit SMTP verschicken, kann das der Server machen, der sollte die Temp-Datei öffnen können. Willst du das ganze mit dem lokalen Outlook versenden, musst du die Datei zunächst auf den Client downloaden. Da hilft dir das File Management weiter.

Erzeugst du die PDF selbst, dann kannst du die Datei auf jeden Pfad speichern, auf den der Benutzer Zugriff hat, mit dem der Servicetier ausgefĂĽhrt wird (im Netzwerk UNC-Pfade). Hier sollte dann ein Domain- Benutzer mit entsprechenden Rechten zum Einsatz kommen, und nicht der System- Benutzer.

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7091
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: Kein Zugriffsrecht auf ServerTempFileName bei Email Vers

Beitragvon elTorito » 29. August 2020 11:53

Hallo fiddi,

danke fĂĽr die Antwort.

Das erzeugte PDF soll per E-Mail versendet werden. Wenn ich aus Gebuchte Rechnungen heraus die Standard Funktion per E-Mail versenden verwende, geht (sofern eingerichtet) der E-Mail Dialog auf (Page 9700) ,
an diesem Dialog wird schon die erstellte Datei nicht angehängt, weil kein Zugriff. Dort in der Page kann man ja noch ankreuzen ob das öffnen mit Outlook gewünscht ist, die Abfrage ob Outlook zur Verfügung steht passiert ja dann in CU9520 Mail Management.

Am schönsten wäre wenn Outlook aufgeht und die Datei dort dran gehängt wird.
Willst du das ganze mit dem lokalen Outlook versenden, musst du die Datei zunächst auf den Client downloaden. Da hilft dir das File Management weiter.


Ist dies kein Standard? Ich dachte das würde schon passieren, automatisch, dass die Datei auf den Client geladen wird, wenn man öffnen mit Outlook ankreuzt, aber wie oben geschrieben, zu dem Punkt kommt es erst gar nicht (weil Attachment schon nicht im Email Dialog angehängt wird).

Versand via Smtp geht leider nicht, da Ports gesperrt sind, Versand mĂĽsste ĂĽber Exchange Webservice passieren.


Mein "Workaround" sieht derzeit so aus, in CU419 File Management die Function ServerTempFileName()
Code: Alles auswählen
IF locuserMailSetup.GET(USERID) THEN;
IF locuserMailSetup."Path for Temp Files"<>'' THEN BEGIN
  FileName := CreateFileNameWithExtension(locuserMailSetup."Path for Temp Files"+FORMAT(CREATEGUID),FileExtension);
  IF TempFile.CREATE(FileName) THEN BEGIN   
    TempFile.CLOSE;
  END;
END ELSE BEGIN
  TempFile.CREATETEMPFILE;
  FileName := CreateFileNameWithExtension(TempFile.NAME,FileExtension);
  TempFile.CLOSE;
END;



Erstellt die Temporäre Datei in einem pfad welcher dem Benutzer hinterlegt wurde.

Hierbei frage ich mich ob ich durch diesen Workaorund Probleme an anderer Stelle bekommen kann wo evtl gezielt auf das den "Standard" Pfad abgefragt wird.

Beim E-Mail Versand klinke ich mich ein in CU 9520 SendViaSMtp()
Code: Alles auswählen
IF locUserMailSetup.GET(USERID) THEN;
IF locUserMailSetup.Mailtype = locUserMailSetup.Mailtype::Exchange THEN BEGIN
    WITH TempEmailItem DO BEGIN
      FileTxt := "Attachment File Path";
      WHILE STRPOS(FileTxt,'\') <>0 DO
        FileTxt := COPYSTR(FileTxt,1+STRPOS(FileTxt,'\'));
     
      varOldFile := "Attachment File Path";
      varNewFile := locUserMailSetup."Path for Temp Files"+"Attachment Name";
     
      IF FILE.RENAME(varOldFile,varNewFile) THEN;
     
      SendMailOverExchangeWebService("Send to", Subject,GetBodyText,varNewFile);
      IF EXISTS(varNewFile) THEN BEGIN 
        TestFile.OPEN(varNewFile); 
        TestFile.CLOSE; 
       ERASE(varNewFile);
      END; 
    END;
    EXIT(TRUE);
END ELSE BEGIN //Smtp Versand


Hier Prüfe ich ebenfalls ob ein Benutzerdefinierter Pfad hinterlegt ist und ob ein Häkchen Exchange angekreuzt ist, in dem Fall soll er über EWS versenden, sonst ganz normal über Smtp.

Da nach dem Prozedere die Temporäre Datei nicht gelöscht wurde, lösche ich diese hier nach dem Umbenennen und dem Versand.


Das ganze mĂĽsste ich noch auf der Citrix Umgebung testen mit einem Pfad wo der User auch Zugriff hat.

Meine Sorge bei der Sache ist dass wenn ich in der ServerTempFileName Funktion das TempFile an anderer Stelle ablege, dass evtl. andere Bereiche von NAV nicht auf dieses File zugreifen können weil es C:\ProgramData\Microsoft\Microsoft Dynamics NAV\100\Server\MicrosoftDynamicsNavServer$INSTANCE\users\default\XXX\USER\TEMP\ gesucht wird , es aber nun in c:\temp\ oder woanders liegt. Gibt ja bestimmt einige Funktionen welche auf ServerTempFileName zugreifen.


Falls ich das mit dem Datei Download zum Client falsch verstanden habe, wo mĂĽsste ich mich dann einklinken um das File erst zum Client downzuloaden und dann weitergeben?

Vielen Dank
gruĂź Peter
Die letzten Worte eines Dieselfahrers: "lieber tot als Schub verlieren" Dieselfahrverbot
(Oo)=*=(oO)
Benutzeravatar
elTorito
 
Beiträge: 1042
Registriert: 16. Juni 2006 17:57
Wohnort: Viersen
Realer Name: Peter Karsten
Arbeitsort: Viersen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.60 ... NAV2009 -> NAV2018

Re: Kein Zugriffsrecht auf ServerTempFileName bei Email Vers

Beitragvon fiddi » 29. August 2020 13:50

Hallo,

Ist dies kein Standard? Ich dachte das würde schon passieren, automatisch, dass die Datei auf den Client geladen wird, wenn man öffnen mit Outlook ankreuzt, aber wie oben geschrieben, zu dem Punkt kommt es erst gar nicht (weil Attachment schon nicht im Email Dialog angehängt wird).


leider nein.

Zum SMTP : Du musst auf deinem Exchange einen SMTP-Connector einrichten (funktioniert auch in der Cloud), der auf einen von dir vergebenen Port SMTP-Mails annimmt (auch verschlĂĽsselt), das ganze muss nur passend konfiguriert werden.

Der Versand über Outlook passiert auch über die Page 9700, da sollte ein kleines Häkchen sein ("In Outlook bearbeiten"). Dieses Häckchen ist auch abhängig von der Konfiguration automatisch gesetzt. Aber nur über den Client.

Wenn in Page 9700 schon kein Anhang gezeigt wird, dann hast du noch ein anderes (Berechtigungs!?)- Problem.

BTW: wolltet ihr nicht schon auf BC sein?

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7091
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: Kein Zugriffsrecht auf ServerTempFileName bei Email Vers

Beitragvon SilverX » 29. August 2020 14:58

Bevor du noch weitere Änderungen machst: bei der Version vermute ich, hast es schonmal funktioniert. Irgendwas muss sich geändert haben. Selbst wenn nicht, prüf mal die Berechtigungen wie hier beschrieben: https://community.dynamics.com/nav/f/mi ... sue/438721
Cheers
Carsten


This post is my own opinion and does not necessarily reflect the opinion or view of my employer.
SilverX
Microsoft Partner
Microsoft Partner
 
Beiträge: 1252
Registriert: 16. September 2006 14:07
Realer Name: Carsten Scholling
Arbeitsort: GĂĽtersloh
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2013+

Re: Kein Zugriffsrecht auf ServerTempFileName bei Email Vers

Beitragvon elTorito » 31. August 2020 11:22

Guten Morgen,

ich konnte nochmal kurz mitgucken...

Popup 9700 EMail Dialog wird geöffnet, und Datei ist dran gehängt.

Habe dann mal Drucken -> als PDF versuchen lassen. Es wird nur angeboten auf einer entfernten Maschine zu speichern, nicht auf den eigenen Lokalen PC.

In der CU400 ist die DotNet Variable Mail auf RunOnClient=Yes.
Der User unter welchem der NAV Dienst ausgefĂĽhrt wird hat Rechte auf das Temp Verzeichnis(C:\ProgramData\Microsoft\Microsoft Dynamics NAV\100\Server\MicrosoftDynamicsNavServe....USER\TEMP)
gruĂź Peter
Die letzten Worte eines Dieselfahrers: "lieber tot als Schub verlieren" Dieselfahrverbot
(Oo)=*=(oO)
Benutzeravatar
elTorito
 
Beiträge: 1042
Registriert: 16. Juni 2006 17:57
Wohnort: Viersen
Realer Name: Peter Karsten
Arbeitsort: Viersen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.60 ... NAV2009 -> NAV2018


ZurĂĽck zu NAV 2017

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast