[Gelöst] Fehler abfangen

22. Mai 2018 13:08

Hallo zusammen.

wie kann ich im Navision Code einen Fehler, oder Ausnahme abfangen?
Welche Funktionen gibt es hierfür?

Gruß, Christian
Zuletzt geändert von navCH am 23. Mai 2018 17:15, insgesamt 1-mal geändert.

Re: Fehler abfangen

22. Mai 2018 13:24

Fragen wir mal anders - was willst du erreichen?

Fehler abfangen, ohne die Verarbeitung zu unterbrechen -> am besten den Funktionsaufruf in Run-Trigger einer Codeunit und dann eben
die Codeunit per IF Codeunit.RUN ....aufrufen

Re: Fehler abfangen

22. Mai 2018 13:42

Fehler elegant abfangen wie in anderen Programmiersprachen gibt es in C/AL leider nicht. Ab NAV 2015 wurde es durch neue Befehle zumindest etwas besser.
Aus diesem Beitrag:
Kowa hat geschrieben:Bei der Fehlerbehandlung gibt es einen neuen Befehl: GETLASTERROROBJECT, mit dem jetzt der Rückgabewert von System.Exception verfügbar ist.
Better error handling in NAV 2015
Mehr Info zu den Einsatzmöglichkeiten von GETLASTERROROBJECT
GETLASTERROROBJECT vs. GETLASTERRORCODE

Re: Fehler abfangen

22. Mai 2018 13:44

Beitrag von sweikelt »
Fragen wir mal anders - was willst du erreichen?

Ich möchte eine ungültige Produktbuchungsgruppe abfangen, falls vorhanden.

Re: Fehler abfangen

22. Mai 2018 13:49

Woran erkennst du denn, dass eine angegebene Produktbuchungsgruppe "ungültig" ist?
Eine "fehlende" Produktbuchungsgruppe wäre ja noch leicht zu erkennen, aber wann ist die angegebene "ungültig"?

Re: Fehler abfangen

22. Mai 2018 13:53

ok doki

also es kommt natürlich drauf an, wo du das möchtest - ich vermute, du hast auf deinem Feld keine TableRelation zur entspr. Tabelle der Produktbuchungsgruppen (Gen. Product Posting Group (251)).
Also musst du per Code prüfen

Hier mal eine Möglichkeit für die fehlende Prod-Buchungsgruppe:

Code:
IF NOT GenProdPostingGrp.GET(DeineProduktBuchungsGruppe) THEN
  ERROR('keine ausgegdachten Produktbuchungsgruppen nutzen :)');



und wenn du da ggf. noch ein Merkmal dran hast, welches dir die Gültigkeit anzeigt, dann kannst du natürlich noch weitere Abfragen einbauen

Wann ist deine geplante Entwicklerschulung nochmal? <<< sorry für die Spitze :lol:

Re: Fehler abfangen

22. Mai 2018 15:16

Woran erkennst du denn, dass eine angegebene Produktbuchungsgruppe "ungültig" ist?
Eine "fehlende" Produktbuchungsgruppe wäre ja noch leicht zu erkennen, aber wann ist die angegebene "ungültig"?

Hallo Timo.

es sind ja nur eine Anzahl von Steuersätzen in der Tabelle Produktbuchungsgruppe vorhanden.
Für einen Kreditor bestimmter Rechnungen, kommen wohl auch nur Steuersätze 0 %, oder 19 % in Frage.
Wenn in einer Rechnung der Steuersatz von jenen in Tabelle Produktbuchungsgruppe abweicht, möchte ich das durch einen Fehler abfangen.

Gruß, Christian.

Re: Fehler abfangen

22. Mai 2018 15:29

Feldwerte vergleichen geht am schnellsten mit TESTFIELD.
Das ist zwar fix programmiert, die automatischen Meldungen, die damit produziert werden, führen aber häufig zu Verwirrung beim Anwender.
Mit FIELDERROR kann man die Fehlermeldung ohne viel Zusatzaufwand selbst gestalten und viel besser auf den konkreten Fall abstimmen.

Re: Fehler abfangen

22. Mai 2018 16:54

Mit FIELDERROR kann man die Fehlermeldung ohne viel Zusatzaufwand selbst gestalten und viel besser auf den konkreten Fall abstimmen

Die Fielderror Funktion ist schon mal ganz nützlich, danke sowas habe ich gesucht!