Webservice - Verhindern von doppelten Datensätzen

22. Mai 2019 15:50

Hallo zusammen,

ich habe hier eine Page, welche als Webservice veröffentlicht ist. In diese Page sollen Datensätze eingefügt werden.
Leider kann es aber sein, daß versucht wird, doppelte Datensätze anzulegen, was zu einer Exception führt. Das
möchte ich abfangen und statt dieser eine sprechende Fehlermeldung an "Aufrufer" des Webservice zurückgeben.
Allerdings habe ich noch keine Stelle gefunden, wo ich mit der Belegnummer, welche eingefügt werden soll, in den bereits vorhandenen
Datensätzen schauen kann, ob es diese Nummer bereits gibt.
Könnt ihr mir sagen, in welchem Trigger auf der Page bzw. in der Tabelle man die Prüfung einsetzen muß?

Vielen Dank und Grüße

Re: Webservice - Verhindern von doppelten Datensätzen

22. Mai 2019 18:06

Ohne es selbst geprüft zu haben vermute ich mal "OnNewRecord" oder "OnInsertRecord".

Re: Webservice - Verhindern von doppelten Datensätzen

19. Juni 2019 18:14

Gibt es dazu eine einfache Lösung? Ich bin auch gerade auf der Suche danach.
Ich war so Blauäugig und dachte, ich kann dem Feld selber eine Eigenschaft mitgeben... aber dem ist wohl nicht so.
Muss ich also mit OnInsertRecord schauen, welcher Wert gerade eingeben wurde und dann in der gesamten Datenbank schauen ob er existiert?

Re: Webservice - Verhindern von doppelten Datensätzen

20. Juni 2019 19:37

Hat Deine Page das Property DelayedInsert=Yes? Haben die Primärschlüsselfelder der SourceTable das Property NotBlank=Yes? Ansonsten eine Subscriber-Function mit dem OnBeforeInsert für die SourceTable erstellen und dort (in der Funktion) per Programmcode prüfen, ob der Datensatz, der gerade eingefügt werden würde, bereits existiert und wenn ja, dann eine aussagekräftige Fehlermeldung bringen.