Domino 9 und frühere Versionen > ND8: Entwicklung

Prüfroutine um Duplikate zu vermeiden

(1/2) > >>

DerGecko:
Guten Morgen zusammen,
ich benötige für eine Notes DB zur Verwaltung von Projekten eine Prüfroutine, um den Sachbearbeiter auf ein evt. schon angelegtes Projekt mit gleicher Nummer aufmerksam zu machen.
Da die Projektnummern aus der Warenwirtschaft übertragen werden, ist eine manuelle Eingabe nötig.

Nun habe ich die Eingabevalidierung der Projektnummer über eine Formel prüfen lassen:


--- Code: ---_View := "Alle";
_Key := Projeknummer;
_Col := 1;
_Lookup := @DbLookup("":"NoCache";"";_View;_Key;_Col);

@If(@IsError(_Lookup);
@Success;
  @Elements(_Lookup ) = 1 & _Lookup  = @Text(@DocumentUniqueID); @Success;
 @Failure("Ein Projekt mit dieser Projektnummer ist bereits vorhanden!")
)
--- Ende Code ---

Die Validierung findet nun aber auch bei schon angelegten Projekten statt und die Projektnummer wird als schon vorhanden gemeldet.
Wie sollte ich die Formel sinnvoll erweitern damit z.B. @isnewdoument die Prüfung eingrenzt auf Prüfung bei Neuanlage?

Oder hat jemand einen anderen Ansatz mit einem Skript, welches in dieser Form ja des öfteren zum Einsatz kommen dürfte? Kann man vieleicht sogar auf eine interne Funktion zurückgreifen, um die eindeutigkeit von Werten zu gewährleisten?

Sonnige Grüße und vielen Dank an die erfahrenen Helfer,
Mario

BigWim:

--- Code: ---@if (@IsNewDoc;"Prüfung notwendig";@Return("schon geprüft"));

_View := "Alle";
_Key := Projeknummer;
_Col := 1;
_Lookup := @DbLookup("":"NoCache";"";_View;_Key;_Col);

@If(@IsError(_Lookup);
@Success;
  @Elements(_Lookup ) = 1 & _Lookup  = @Text(@DocumentUniqueID); @Success;
 @Failure("Ein Projekt mit dieser Projektnummer ist bereits vorhanden!")
)

--- Ende Code ---

Oder Du setzt Dir ein Kennzeichen im Document. Wenn der Wert z. B. 1 ist, braucht nicht mehr geprüft werden. Hängt natürlich von Deiner Anwendung ab, aber dann wärst Du etwas flexibler, falls mal eine "nachträgliche Prüfung" stattfinden sollte. Einfach den Wert auf 0 zurückstellen und beim nächsten Mal wird wieder geprüft ....


--- Code: ---@if (<MeinFeldname> != 1;"Prüfung notwendig";@Return("schon geprüft"));

--- Ende Code ---


Markus

ascabg:
Hallo,

Und das ganze wird dann noch schoener, wenn die Db auf verschiedenen Servern liegt. (also die Replikation mit ins Spiel kommt)

Andreas

DerGecko:
Danke für den Tipp BigWim! Ich bau meine Formel mal so um, dass nur bei neuen Dokumenten geprüft wird. @Return lasse ich dann mit dem null string "" einfach leer laufen, damit nach der Validerung gespeichert wird.

Genau das von ascabg angesprochene Problem habe ich allerdings zudem....
Es muß doch ein gescheites und schon existentes Konzept geben, wie ich Duplikate vermeiden kann... manchmal feheln mir in Notes einfach elementare Funktionen, die in anderen DB Systemen selbstverständliche Boardmittel sind...  :-[

ascabg:
Na dann viel Spass dabei.

Aber eventuell hilft Dir dies hier noch etwas weiter.
eindeutige Nummer

Andreas

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln