[gelöst] NAV Client 4.0 SP3 stürzt ab

28. April 2010 13:44

Hallo Hobbyprogrammierer!

Zur Auflockerung des Tagesgeschäftes, insbesondere bei dem herrlichen Wetter, hier mal möglicherweise eine ein bisschen herausfordernde Frage, die mir selbst namhafte Experten bisher nicht beantworten konnten (ich kenne natürlich die Lösung, aber ich behalte gewöhnlich alles für mich... :lol: ).

Sie lautet also:

Warum stürzt ein NAV Client ggf. ab, wenn eine Form vor dem Schließen eine Funktion innerhalb einer Codeunit aufruft, die auf einen Fehler (ERROR) läuft? (Wenn die Form von der Codeunit aufgerufen wird, die nach dem Schließen der Form mit Verarbeitungsfunktionen fortfährt, passiert das nicht mehr)

OK? Frage verstanden? Also dann nochmal: Form ruft Codeunit auf -> Fehler -> Absturz Client. Codeunit ruft Form auf und macht dann weiter -> Fehler -> kein Absturz Client.
Zuletzt geändert von Walter Albiker am 29. April 2010 11:21, insgesamt 1-mal geändert.

Re: NAV Client 4.0 SP3 stürzt ab

28. April 2010 13:51

Als Hobbyprogrammierer schaffe ich das auch ohne Form und Codeunit :wink:

Re: NAV Client 4.0 SP3 stürzt ab

28. April 2010 15:02

Walter Albiker hat geschrieben:Warum stürzt ein NAV Client ggf. ab, wenn eine Form vor dem Schließen eine Funktion innerhalb einer Codeunit aufruft, die auf einen Fehler (ERROR) läuft?

Der Knackpunkt liegt nicht in der Codeunit, sondern an der Stelle: Möglichst keine Programmierung im OnClose-Trigger bzw. OK-OnPush (der ja implizit die Form ebenfalls schließt).
Wenn beim Schließen der Form ein Fehler auftritt, dann bringt NAV normalerweise ja eine recht nichtsagende Fehlermeldung.
Komplettabstürze sind eigentlich nicht normal und bestimmt durch ein passendes Clientupdate bereits behoben.

Re: NAV Client 4.0 SP3 stürzt ab

28. April 2010 16:13

Ganz genau! Richtige Antwort Natalie!

(Mit dem Client-Update wäre ich mir jetzt nicht ganz so sicher)

Natürlich impliziert das, dass die weitere Verarbeitung wie angedeutet nach dem Schließen der Form erfolgt. Das heißt auch, dass in der Form erhaltene Werte z. B. über eine Get-Funktion in die Codeunit übertragen werden, damit die Folgeverarbeitung dort mit diesen Werten weitergeführt wird.

Damit erhältst Du natürlich den Preis!

Hier der Preis (ein Gedicht):

Der Programmierer

von Tobias Dorn

der programmierer arg geschunden
erhält zur frist 2 knappe stunden
für plan und implementation
der alte hut - er kennt das schon

und wirklich sieht er kein problem
lehnt sich zurück und bleibt bequem
zeugt ein paar widgets hier und da
mit wish und tclsh