[gelöst] Fehlermeldung 64 bei Objektaufrufplaner

23. April 2007 09:52

Wir haben eine Codeunit generiert, die in der Nacht läuft und einige Daten in Navision einliest.
Es ist nun anscheinend so, dass beim Kunden ab und an das Netzwerklaufwerk nicht mehr gefunden wird und der Objektaufrufplaner nun komplett abbricht.

Es kommt die Fehlermeldung:
"Das Betriebssystem hat die Fehlermeldung (64) ausgegeben:
Der angegebene Netzwerkname ist nicht mehr verfügbar."

Gibt es in Navision über einen Befehl die Möglichkeit, zu überprüfen, ob das Netzlaufwerk vorhanden ist, damit nicht der komplette Objektaufrufplaner abbricht?
Der EXIST-Befehl hat leider nicht funktioniert.

Viele Grüße,

Jürgen
Zuletzt geändert von jukr1975 am 26. April 2007 13:39, insgesamt 1-mal geändert.

23. April 2007 10:07

Meine schlaue Datenbank liefert mir nur diese spärlichen Informationen:

Interner Fehler 64 in Modul 1
Modul 1 = Betriebssystem-Fehler
Fehlercode: 65600
Beschreibung: #Err_OS_NetnameDeleted

(Mögliche) Ursache/n:
Die angegebene Netzwerkressource ist nicht mehr verfügbar.
Der Server, der die Ressource freigegeben hat, kann ausgeschaltet worden sein,
oder die Berechtigungen wurden geändert.
Weitere Informationen erhalten Sie vom Netzwerkadministrator.


[Edit] Wenn du sicherstellen kannst, dass eine bestimmte Datei immer in dem Verzeichnis liegt, dann könntest du die Existenz dieser Datei mit EXIST abfragen.
Darüber hinaus könntest du diese Abfrage in eine separate Codeunit auslagern, welche du mit
Code:
IF NOT CODEUNIT.RUN(Codeunit::"4711",DeinDateiname) THEN
  // Keine Verbindung zum Netzlaufwerk;
aufrufst.
Sollte nun keine Verbindung möglich sein, so bricht diese Codeunit ab und der aufrufende Programmcode sollte normal weiterlaufen.

23. April 2007 10:11

Hallo Timo,

danke für die Nachricht. Die habe ich schon gefunden.
Für mich stellt sich die Frage, ob es in Navision einen Befehl gibt, der einen Netzwerk-Pfad überprüfen kann (ohne gleich abzubrechen).

Jürgen

23. April 2007 10:12

Du hast zu schnell meine Antwort gelesen. Ich hatte sie nochmals editiert.

23. April 2007 10:14

Hab ich das richtig verstanden, dass der Exist befehl auch die Fehlermeldung wirft? wenn ja, dann pack den in eine extra Codeunit und lasse das Ergebnis über den Rückgabewert zurückgeben. Vielleicht bricht dann nur diese extra Codeunit ab und du kannst am fehlenden Rückgabewert feststellen, dass es wieder mal Probleme gab.

26. April 2007 13:38

Hallo Michael,

leider hat das nicht funktioniert. Aber unser Kunde ist ein ganz rafinierter und hat folgenden Code geschrieben:

Code:
Pfad := VerkaufEinrichtung.Pfad;
SystemZeit1 := TIME;
commandprocessor := 'c:\winnt\system32\cmd.exe';
Argument := '/c';
DosCommand := 'ping 192.100.1.101 -n 8';
DosAnswer := FORMAT(SHELL(commandprocessor, Argument, DosCommand));
SystemZeit2 := TIME;
VergZeit := SystemZeit2 - SystemZeit1;
IF VergZeit < 9200 THEN
   DateienBearbeiten();


Danke
Jürgen