[Gelöst] Fehlerunterdrückung im Planungslauf

27. August 2008 12:01

Auf irgendeine Art ist der Planungslauf fähig, Fehlermeldungen zu unterdrücken. So durchläuft er zB in der Tabelle 246 den Code "Item.TestField(Blocked,false)", aber ein gesperrter Artikel führt nicht zu dem entsprechenden Error, sondern am Ende stehen alle Fehler sauber zusammen gefasst in einer Form.

Man kann auch kurz davor ein "Error('xyz')" einsetzen - kein Abbruch.

Weiß jemand, wo und wie das eingestellt wird? Das wäre ja auch für eigene Reports interessant ...
Zuletzt geändert von McClane am 29. August 2008 09:09, insgesamt 1-mal geändert.

Re: Fehlerunterdrückung im Planungslauf

28. August 2008 08:48

Hallo,
meinst Du den Haken 'Abbrechen und ersten Fehler anzeigen' in den Optionen des Planungslaufes (Report 99001017)?
Der steuert das nämlich, ob der Planungslauf trotz Fehler komplett durchlaufen wird und danach die Fehler im Fehlerprotokoll einsehbar sind.
Gruß
Thommes.

Re: Fehlerunterdrückung im Planungslauf

28. August 2008 09:31

Nein, ich meinte, wie man das generell so anlegen kann, dass ein Error nicht zu einem Abbruch führt, sondern der Report trotzdem durchläuft. Das ist ja so eine Art try .. catch.

Re: Fehlerunterdrückung im Planungslauf

28. August 2008 09:40

ok, habe verstanden: dafür bin ich allerdings zu wenig Entwickler. Sorry.

Re: Fehlerunterdrückung im Planungslauf

29. August 2008 06:40

In besagtem Report kannst du sehr schön sehen, wie es gemacht wird:

Code:
IF NoPlanningResiliency THEN BEGIN
  CalcItemPlan.RUN(Item);
  CounterOK := CounterOK + 1;
END ELSE BEGIN
  CalcItemPlan.SetResiliencyOn(CurrTemplateName,CurrWorksheetName,"No.");
  IF CalcItemPlan.RUN(Item) THEN
    CounterOK := CounterOK + 1
  ELSE


Durch abfragen des Rückgabewertes beim Ausführen einer Codeunit (CalcItemPlan), wird ein ERROR() für einen Normalanwender unterdrückt. Ist der Debugger eingeschaltet, dann stoppt er beim Fehler, läuft aber mit F5 weiter.

Interessant in den Zusammenhang auch GETLASTERRORTEXT und CLEARLASTERROR.

[Gelöst] Fehlerunterdrückung im Planungslauf

29. August 2008 09:09

Ich Idiot. Zwanzig Mal über die Stelle gelesen, aber nicht gesehen ;)

Danke!

Fehlerunterdrückung

10. August 2010 11:03

Guten Tag,
hier in dem Codebeispiel wird mit IF Codeunit.RUN THEN der Fehler abgefangen.

Ich möchte auch einen Fehler in einer Codeunit unterdrücken. Der ERROR ist allerdings in einer Funktion. Das lässt sich nicht so abfragen wie ein RUN, oder?

Also:
IF CU.funkt1(para1, para2, para3) THEN Code;

In funkt1 wird ein ERROR ausgegeben.

Da ich die Funktion in einem Bericht aufrufen möchte, will ich keinen ERROR sehen. Sondern mit mit GETLASTERRORTEXT den Fehler in ein Feld im Bericht schreiben.

Hat jemand eine Idee?


Schon mal Danke,
Ciao