Domino 9 und frühere Versionen > ND6: Entwicklung
Doppelte Rechnungsnummer verhindern
macom111:
Hallo zusammen,
habe in meiner DB ein Feld "RechNr" (Rechnungsnummer) vom Typ "Text".
Kann ich verhindern, daß ein neues Dok. durch falsche Eingabe mit der gleichen RechnNr. gespeichert wird?
Geht das evtl. mit @Functions?
Finde nichts in der Hilfe und hier im Forum, da ich nicht genau weiß nach was ich suchen muß.
Vielen Dank schon mal für Eure Hilfe.
Gruß Siggi
koehlerbv:
Hallo Siggi,
mit @functions wird es ein Krampf, sollte aber auch gehen. Mit LotusScript geht es sehr einfach und komfortabel. Warum machst Du das nicht im QuerySave mit LotusScript?
Mit @functions hast Du ein wesentliches Problem:
Du kannst mit @dbLookup auf eine entsprechende Ansicht prüfen, ob es ein (! - wenn mehr, sind die Messen ja schon gelesen ...) Dokument mit dieser ReNr. schon gibt. Das darf aber nur VOR dem Speichern passieren (Eingabevalidierung des Felder ReNr) und nur, wenn das Dokument neu ist. Wurde es bereits gespeichert, würde ja bei einem erneuten Speichern ggf. genau dieses Dokument gefunden.
Folge: Du musst neben der Absicherung, dass nur neue Dokumente auf ReNr geprüft werden, auch dafür sorgen, dass bereits gespeicherte Dokumente keine Änderung der ReNr mehr erlauben.
Das nur als Ansatz. Vielleicht hilft es zu einer möglichen Umsetzung, vielleicht führt es Dich zu einer anderen Lösung - oder zu LotusScript.
Bernhard
Glombi:
Ich mache das so:
Ein @DbLookup mit dem Key Rechnungsnummer auf eine Ansicht, die in der 2. Spalte die Formel:
@Text(@DocumentUnqiueID)
hat.
Die Abfrage wäre dann
_Lookup := @DbLookup("":"NoCache";"";"Name der Ansicht";Rechnungsnummer;2);
@If(
@IsError(_Lookup);
@Success;
@Elements(_Lookup) = 1 & _Lookup = @Text(@DocumentUnqiueID);
@Success;
@Failure("Die Rechnungsnummer wurde bereits vergeben!")
)
Andreas
Driri:
Man sollte allerdings bedenken, daß so ein Konstrukt nur sauber funktioniert, wenn es auf nur einem Server genutzt wird. In dem Moment, wo Änderungen an mehreren Standorten durchgeführt werden und die Replikation mit ins Spiel kommt, kann man die doppelte Vergabe nur nachträglich abfangen.
macom111:
--- Zitat von: koehlerbv am 02.01.06 - 23:17:33 ---mit @functions wird es ein Krampf, sollte aber auch gehen. Mit LotusScript geht es sehr infach und komfortabel. Warum machst Du das nicht im QuerySave mit LotusScript?
--- Ende Zitat ---
Hallo Bernhard,
Guckst Du, was unter Bild von "Arnie" steht. ;) Trifft leider immer noch zu. Ich bin froh, wenn ich´s mit @functions hinbekomme. Die Zeit!!!! >:( 3 Bücher habe ich ja schon über Lotus Script und auch schon mal darin gelesen. Sie liegen direkt vor mir.
Ich werde mir Deinen "Ansatz" zu gemüte führen. Vielen Dank für die Tipps.
@Glombie:
Hallo Andreas,
vielen Dank für die Formel. Habe zwar noch nicht alles verstanden, bin aber auf dem besten Weg dorthin (zerpflücke sie gerade) ;D
@Driri:
Es gibt nur einen Server, und das wird sich auch in Zukunft vermutlich nicht so schnell ändern.
Danke euch allen. Melde mich nochmal, wenn ich´s nicht hinbekomme.
Gruß Siggi
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln