11. August 2010 11:46
Folgendes habe ich heute beobachten können:
Beim Aufruf einer Codeunit über das bekannte Konstrukt
- Code:
IF Codeunit.RUN THEN ...
wird unter bestimmten Umständen ein auftretender Fehler an die Benutzeroberfläche gemeldet,
obwohl ja eigentlich
alle Fehler abgefangen werden sollten.
Dieses Fehlverhalten tritt (bei mir) auf, wenn in der aufgerufenen CU über INSERT ein
Datensatz in eine Tabelle eingefügt werden soll, der dort bereits existiert.
Aber: Es passiert nur, wenn der Primary Key der entsprechenden Tabelle eine Zahl ist
z.B. die Postentabellen. Wenn der PK ein Feld vom Typ CODE ist (Item, Vendor etc.)
verhält sich das Konstrukt wie erwartet: es wird kein Fehler an den Benutzer gemeldet.
Bei MODIFY und DELETE funktioniert alles wie erwartet.
Alles getestet mit SQL -- in der nativen DB funktioniert alles wie erwartet.
(Test mit 4sp2, 5.00 und 2009 sp1 durchgeführt)
Ich weiß -- das hört sich schon ziemlich krank an ...
Kann jemand dieses Verhalten bestätigen?
Oder gar erklären?
Als einfachen Test habe ich folgenden Zweizeiler verwendet, wobei Record T mal die
17 (G/L Entry) oder die 18 (Customer) war.
- Code:
T.FINDFIRST;
T.INSERT;
Gruß
Torsten
EDIT: Betreff geändert