E/A Ausnahme während des Vorgangs

22. Juli 2019 10:11

Hallo zusammen,

Ich stehe vor einem Problem für das ich einfach keine Lösung finde. Vielleicht kann mir jemand hier weiterhelfen. Ich versuche mal, das Problem zu schildern:

Es handelt sich um eine Eigenentwicklung für den Versand von Dokumenten. Dabei kann der Anwender verschiedene Kriterien für die Aufbereitung von Dokumenten setzen. Die so erzeugten Reports (pro betroffenem Kontakt 1 fertiger Report, also 1 Datei), werden mit SAVEASPDF in ein Verzeichnis geschrieben. Je nach Anzahl Kontakte können so also schon mal einige Dutzend Reports entstehen. Dabei kommt es immer mal wieder zum Fehler 'E/A Ausnahme während des Vorgangs'. Das Zielverzeichnis liegt auf dem Server, also nicht lokal. Die Schreibrechte wurden schon überprüft. Ein Antivirus-Programm welches stören könnte, wurde deaktiviert, während des Schreibvorgangs (zwischen 2 Berichten) sind SLEEP-Befehle drin, damit sich das System nicht 'selbst überholt' und blockiert.

Leider hat bisher alles nichts geholfen. Manchmal klappt der Vorgang, machnmal nicht. Bin echt froh um jeden Tipp von euch.

Re: E/A Ausnahme während des Vorgangs

22. Juli 2019 11:32

eigentlich überflüssig die Frage, aber sicher ist sicher:
die Dateinamen sind auch in jedem Fall 100%ig eindeutig und kommen wirklich nur 1x vor?

Re: E/A Ausnahme während des Vorgangs

22. Juli 2019 11:39

sweikelt hat geschrieben:... die Dateinamen sind auch in jedem Fall 100%ig eindeutig und kommen wirklich nur 1x vor?


Das ist eine gute Frage, theoretisch ja, da die Kontaktnummer Bestandteil des Namens ist. Das werde ich aber prüfen, ev. gibt es Ausnahmen wovon ich bis jetzt nicht ausgegangen bin.

Re: E/A Ausnahme während des Vorgangs

30. Juli 2019 08:09

Seltsam. Vielleicht klappt der Umweg von einer Temp Datei auf dem NST und dann per Move ins Zielverzeichnis? Siehe File Management Codeunit. Ansonsten, wenn die Ursache nicht gefunden wird, hilft dir eine Warteschlangentabelle. Damit könntest du die Dateien von einem Blob ins Ziel speichern und bei auftretenden Fehlern den Task wiederholen.