4. Oktober 2017 14:48
Hi,
seit längerer Zeit gibt es bei einem Kunden seltene Fälle, bei denen ein Kontakt mit Daten aus einem anderen Kontakt überschrieben werden.
Gearbeitet wird mit einer eigenen Page, mit der man Kontaktgespräche erfassen kann. Es liegt dort eine eigene Tabelle zu Grunde, in der man solche Kontaktgesprächsdaten anlegen und bearbeiten kann. Zudem befinden sich auch einige Felder aus dem Kontaktrecord selbst auf der Page (z.B. E-Mail Adresse, Telefonnummer oder Textinformationen zum Kontakt). Einige Felder vom Kontaktrecord lassen sich auch direkt auf der Gesprächs-Page bearbeiten (z.B. die Kontaktinformationen). Nun scheint es scheinbar beim Validieren dieser Felder zu passieren, dass die Daten eines Kontakts auf einen anderen Kontakt geschrieben werden.
Die Gesprächs-Page holt sich zur Anzeige der Kontaktdaten den Kontakt im OnAfterGetCurrRecord über die in der Tabelle eingegebenen Personenkontaktnummer. Also
IF ContactRec.GET(Personenkontaktnr) then... Vor dem GET wird ein
CLEAR(ContactRec) gemacht. Nur wenn das IF ContactRec.GET True ist, werden die Kontakteignen Felder zum Beschreiben freigegeben, ansonsten erhalten diese ein Editable=FALSE. Im ValidateTrigger dieser Felder auf der Gesprächs-Page steht nur ein
ContactRec.MODIFY(TRUE).
Ich kann da keinen Fehler erkennen und den besagten Fehler auch nicht nachstellen. Es passiert auch einfach zu selten. Dafür konnte ich einmal Live mit dem Debugger erkennen, dass die ContactRec Variable mit einem falschen Kontakt gefüllt war. Das gleiche, beziehungsweise ein ähnliches Phänomen ist mir während der Programmierung an einer anderen Page aufgefallen. Dort verhielt sich das Datensatzanlegen bzw. -ändern auch mal sehr komisch. Wenn man die Page neu öffnet ist alles wieder normal.
Ich habe das Gefühl, dass es ein Clientfehler ist. (7.1.40941.0)
Kennt das jemand?
Hier mal ein Bild von der Page und den Kontaktfeldern, welche bearbeitbar sind (rot umrandet).
Microsoft.Dynamics.Nav.Client_2017-10-04_14-43-15.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.