[gelöst]Fehlermeldungen unterbinden

20. Februar 2013 15:37

Hallo,

ich möchte über eine CU automatisch Aufträge freigeben.

Nun kommt gelegentlich der Fehler, das der Kommissionierstart vor dem heutigen Tagesdatum ist.

Diese Meldung möchte ich vermeiden, da hierbei die Codeunit abbricht.

Wie kann ich verhindern das die CU abbricht und zum nächsten Auftrag weitergeht. Der Fehlerhafte Auftrag soll einfach mit Status "offen" stehen bleiben und wird dann später manuell bearbeitet.
Zuletzt geändert von simon123 am 20. Februar 2013 16:38, insgesamt 1-mal geändert.

Re: Fehlermeldungen unterbinden

20. Februar 2013 15:47

Du kannst Fehler innerhalb einer Codeunit mit "if DeineCodeunit.run" abfangen. Dazu muss sie als Variable definiert sein.

Re: Fehlermeldungen unterbinden

20. Februar 2013 16:02

Mit IF CODEUNIT:

Code:
FindeAufträge;
FürJedenAuftrag
  IF NOT CODEUNIT.RUN(DeineCodeunitID,AktAuftrag) THEN BEGIN
    // entweder gar nichts machen oder z.B. eine MESSAGE ausgeben
    // wenn gewünscht, Inhalt der letzten Fehlermeldung: GETLASTERRORTEXT
  END;

Re: Fehlermeldungen unterbinden

20. Februar 2013 16:17

Danke für die Hilfe, leider stürzt hierbei Navision immer wieder ab.

Re: Fehlermeldungen unterbinden

20. Februar 2013 16:21

simon123 hat geschrieben:Danke für die Hilfe, leider stürzt hierbei Navision immer wieder ab.

Zeig uns bitte deinen Code und fasse ihn dabei in sog. Code-Tags, damit wir ihn leichter lesen können:
[code]Dein Quelltext[/code]

Re: Fehlermeldungen unterbinden

20. Februar 2013 16:26

Code:
    IF SALES_HEADER.FIND('-') THEN BEGIN
        IF NOT CODEUNIT.RUN(CODEUNIT::"Rel. Sales Document Automation",SALES_HEADER) THEN BEGIN
          MESSAGE(GETLASTERRORTEXT);
        END;
    END;



Ich bekomme hierbei auch keine Message.

Re: Fehlermeldungen unterbinden

20. Februar 2013 16:34

Code:
   
   // Ich vermute, du hast hier einen FIlter auf nicht freigegebene Belege gesetzt
   // damit deine Schleife nicht kaputt geht, arbeite mit einer zweiten Recordvariable auf Sales Header:
   IF SALES_HEADER.FIND('-') THEN BEGIN
     REPEAT // fehlte
       SalesHeader2 := SALES_HEADER; // neu
       IF NOT CODEUNIT.RUN(CODEUNIT::"Rel. Sales Document Automation",SalesHeader2) THEN BEGIN // geändert
         MESSAGE(GETLASTERRORTEXT);
       END;
     UNTIL SALES_HEADER.NEXT = 0; // fehlte
    END;

Re: Fehlermeldungen unterbinden

20. Februar 2013 16:38

Vielen Dank. Genau das war das Problem. Sales Header 2 hat geholfen...

Danke...