Unterschiedliche Speicherorte für Programme

31. Oktober 2013 12:02

Wer möchte kann ab hier lesen oder erst ab "Problem gefunden" lesen:
Wir arbeiteten bis jetzt immer mit Windows XP und Windows Server 2003. Wir haben das Programm auf einen Windows 2008 Server umgezogen und alles lief wunderbar. Dann tauschten wir einige XP Rechner gegen Windows 7 aus und es lief immer noch wunderbar. Dann durften sich einige User am 2008 Server anmelden (Remote) um von unterwegs zu arbeiten. Es funktioniert immer noch alles wunderbar?!
Vor einigen Tagen kamen die ersten User mit einem Preoblem an, dass sich in Navision abgelegte PDFs nicht mehr öffnen lassen (Keine Fehlermeldung, geht einfach nicht auf). :-o
Also Adobe auf den Clients und Server aktualisiert; Problem bleibt. Nach näherer Untersuchung betraff es nur Windows 7 und Terminalsitzungen. Rückschluss meinerseits; Fehler liegt beim neuen Betriebssystem und Navision. Verzweifelte Suchen im Internet und beim Support nach ähnlichen Fehlerursachen. Dann hab ich mir mal die "nicht zu öffnenden PDFs" genauer angschaut. Nachdem man sich die Dateiendung in Navision rausgesucht hat, konnte man erkennen, dass es immer MSG-Dateien waren.

Problem gefunden: :-)
Problem liegt also darin das MSG-Dateien auf den XP Rechnern geöffnet werden können, weil der Pfad für Outlook bei Navision richtig hinterlegt ist (Form 5094), aber der Pfad für Outlook bei Windows 7 und Windows Server 2008 ein anderer ist. Ich möchte nun natürlich ungern die Installtionen neu vornehmen. Nun also meine Frage ist es möglich unterschiedliche Pfade für die verschiedenen Betriebssystem (Environ) vorzugeben.

Re: Unterschiedliche Speicherorte für Programme

31. Oktober 2013 12:35

Hallo,

wenn du unbedingt das Installationsverzeichnis von Outlook benötigst, dann müsstest du wohl den jeweils korrekten Wert aus der Registry auslesen.
Entsprechende Funktionen findest du in meinen NAV-Tools (Codeunit "WindowsScriptHostManagement" - Funktion "RegRead")

Dies würde dir jedoch nur bei MSG-Dateien helfen.
Der "richtige" Weg wäre, dass sich das Betriebssystem darum kümmern sollte, die erforderliche Anwendung zu der jeweiligen Dateierweiterung zu suchen.
Dazu kannst du aus der oben genannten Codeunit die Funktion "Run" verwenden, welcher du einfach den Dateinamen inkl. der vollständigen Pfadangabe übergibst.

Falls in der Codeunit die Funktion noch nicht enthalten sein sollte, fügst du einfach folgende Funktion dort ein:
Code:
Run(Command : Text[1024]) : Integer
Init
;
EXIT(
WshShell.Run(Command));

Re: Unterschiedliche Speicherorte für Programme

31. Oktober 2013 12:43

Timo Lässer hat geschrieben:Der "richtige" Weg wäre, dass sich das Betriebssystem darum kümmern sollte, die erforderliche Anwendung zu der jeweiligen Dateierweiterung zu suchen.
Dazu kannst du aus der oben genannten Codeunit die Funktion "Run" verwenden, welcher du einfach den Dateinamen inkl. der vollständigen Pfadangabe übergibst.

Wenn ich mich jetzt nicht vertue, müsste dies auch einfach mit
Code:
HYPERLINK(Pfad+Name der Datei
gehen.

Re: Unterschiedliche Speicherorte für Programme

31. Oktober 2013 16:01

Natalie hat geschrieben:Wenn ich mich jetzt nicht vertue, müsste dies auch einfach mit
Code:
HYPERLINK(Pfad+Name der Datei)
gehen.

Und wenn ich mich jetzt nicht vertue, dann funktioniert der Hyperlink nur für ausgewählte Dateiendungen, welche in der fin.stx unter 00033-01261-240-0 definiert sind.
Ja, die gängisten Dateiendungen sind dort aufgeführt, aber wenn du jetzt z. B. eine CAD-Zeichnung o. ä. hast, dann kannst du die mit HYPERLINK nicht öffnen, mit WSH.Run aber schon (sofern ein CAD-Programm auf dem Rechner installiert ist).

Re: Unterschiedliche Speicherorte für Programme

31. Oktober 2013 16:08

Muss nochmal dazu sagen, dass es sich bei den Dateien um in Navision abgelegte Dateien in den Aktivitätenprotokollposten handelt.
Das zu nutzende Fremdprogramm dafür wird ja dann in Form 5094 angegeben, und dort müsste ja dann die Unterscheidung stattfinden, oder :?: