Berechtigungsproblem: Ordner erstellen

27. Mai 2010 13:02

Hallo zusammen,

ich habe auf einer Form einen Button eingebaut, welcher z.B. für Debitoren Dokumente anzeigen soll. Die Funktion ist simpel:
a) wenn ein entsprechender Ordner auf dem Netzlaufwerk liegt, diesen dann öffnet bzw.
b) wenn kein Ordner vorhanden ist, diesen Ordner erstellt

Nun ist das ganze auf einem Netzlaufwerk untergebracht, auf welchem nur die entsprechenden Abteilungen Schreibrechte haben. Solange das Schreibrecht gegeben ist, ist das ja alles schön und gut. Wenn aber ein Mitarbeiter ohne diese Berechtigung versucht, einen Ordner zu öffnen / erstellen, bricht das (natürlich) mit einer Fehlermeldung ab - allerdings kann dieser Benutzer dann mit der Fehlermeldung nichts anfangen. Das ganze regle ich über Automation-Variablen (Windows Script Host Object Model.FileSystemObject zum Erstellen, Microsoft Shell Controls and Automation.Shell zum öffnen). Gibt es eine Möglichkeit, die Berechtigung des Users zu testen, ob ein Schreibrecht gewährt ist oder eine andere elegante Lösung, um die Fehlermeldung abzufangen und für den User verständlich zu machen?

Re: Berechtigungsproblem: Ordner erstellen

27. Mai 2010 14:37

Lässt sich denn mit einer Codeunit, die du mit if CU.Run abfängst, und dem LastErrorText nichts anfangen?

Re: Berechtigungsproblem: Ordner erstellen

27. Mai 2010 14:58

Öhm ... ok, so hab ich das noch nie eingesetzt - du hast nicht zufällig einen Link wo das erläutert wird? Prinzipiell würde mir das wahrscheinlich schon reichen wenn ich prüfen kann ob ein Fehler ausgeworfen wurde (weil das dann zu 99,9% das Berechtigungsproblem ist, wenn nicht gerade das Netzlaufwerk ausgefallen / voll ist :wink: ). Aber das wäre auf jeden Fall generell etwas um Fehler abzufangen, von daher sehr interessant.

Re: Berechtigungsproblem: Ordner erstellen

27. Mai 2010 15:45

Öhm nö, hab keinen Link. Aber das ist simpel. Eine Cu mit einer Funktion, in der du den gewünschten Pfad übergibst und im onRun wird versucht, das Verzeichnis zu erstellen. Dann die CU woanders als Variable anlegen, den Pfad da hinein geben und If CU.Run then mach irgendwas mit dem LastError oder auch nicht.
Oder einfach nachsehen, ob das Verzeichnis erstellt wurde.