Das Notes Forum

Domino 9 und frühere Versionen => ND6: Administration & Userprobleme => Thema gestartet von: Raptor am 19.04.06 - 14:21:47

Titel: Dokument nur einmal pro Tag zur Bearbeitung zulassen.
Beitrag von: Raptor am 19.04.06 - 14:21:47
Hallo,

ich stehe vor folgendem Problem:

Ich habe eine Maske, die pro Tag nur einmal mit Leben/Inhalt gefüllt werden soll und in der Datenbank abgespeichert wird um Manipulationen an der Meldung zu vermeiden.

In dieser Maske befindet sich ein Datumsfeld welches automatisch befüllt wird. Der Wert dieses Datumsfeldes ist in der ersten Spalte (aufsteigend sortiert) der betreffenden Ansicht gespeichert. Nun soll verhindert werden, dass in dieser Ansicht ein weiteres Dokument mit dem selben Datum erstellt wird.

Folgende Formel habe ich mir hierfür ausgedacht:

Code
@If((@DbLookup("Notes":"NoCache";"":"kvam1.nsf";"staerke";staerke_datum;1)=staerke_datum;@Prompt([Ok];"Hinweis";"Sie haben bereits für heute eine Stärke gemeldet!");@Command([FileSave]))

Anmerkungen:

- Die Datenbank liegt aus entwicklungstechnischen Gründen lokal auf meinem Client.
- Um die Zeit nicht mit im Datum zu haben, habe ich das entsprechende Feld mit:
Code
@Date(@Now)

befüllt und nur diesen Wert abgelegt.

Ich bekomme jetzt die Fehlermeldung "Eintrag im Index nicht gefunden, oder der Index für die Ansicht ist nicht aufgebaut"

Ich komme nicht weiter! Was mach ich falsch!!! Oder kann ich das Problem auf eine andere Art eleganter lösen?

Gruß

Raptor
Titel: Re: Dokument nur einmal pro Tag zur Bearbeitung zulassen.
Beitrag von: m3 am 19.04.06 - 15:13:03
Was machst, wenn in der Replik auf dem Server schon ein Dokument mit dem Datum existiert, ein User aber in seiner lokalen Replik, wo dieses Dok. ev. noch nicht da ist, ein neues Dokument erstellt? Dann funktioniert Dein Code nicht. ;)

Weiters ist der Vergleich @DbLookup("Notes":"NoCache";"":"kvam1.nsf";"staerke";staerke_datum;1)=staerke_datum unnötig. Vielmehr solltes Du - wie bei jedem @DBLookup - auf eventuelle Fehler prüfen. Wenn das @DBLookup einen Fehler zurücklieftert, gibt es noch kein Dokument mit dem Datum von staerke_datum. Wenn kein Fehler auftritt, ist schon ein Dok. vorhanden.
Titel: Re: Dokument nur einmal pro Tag zur Bearbeitung zulassen.
Beitrag von: Raptor am 19.04.06 - 15:45:00
Die Datenbank soll später nur auf dem Server laufen ohne lokale Replik auf dem Client, ich habe die Datenbank nur zur Zeit lokal am laufen um besser mit ihr arbeiten zu können.

Das mit der Fehlerabfrage habe ich jetzt wie folgt umgesetzt:

Code
@If(@IsError(@DbLookup("Notes":"NoCache";"":"staerke.nsf";"staerke";staerke_datum;1));(@Command([FileSave]));(@Prompt([Ok];"Hinweis";"Sie haben bereits für heute eine Stärke gemeldet!")))

es funzt auch soweit, bis auf die Tatsache, dass jetzt mein @PROMPT nicht mehr ausgeführt wird???
Titel: Re: Dokument nur einmal pro Tag zur Bearbeitung zulassen.
Beitrag von: m3 am 19.04.06 - 15:58:37
Ev. weil Dein DB-Lookup wirklich einen Fehler wirft? Liegt die staerke.nsf wirklich im Root Deiner lokalen Notes-Installation? Gibts die View "staerke" wirklich?

Wie garantierst Du, dass niemand eine lokale Kopie der DB vorhält?  >:D  ;)
Titel: Re: Dokument nur einmal pro Tag zur Bearbeitung zulassen.
Beitrag von: Raptor am 19.04.06 - 16:08:23
Vielen Dank für deine Hilfe konnte das Problem lösen.

Der code lautet jetzt, wie folgt:

Code
@If(@IsError(@DbLookup("Notes":"NoCache";"":"staerke.nsf";"staerke";staerke_datum;1));(@Command([FileSave]));(@Prompt([Ok];"Hinweis";"Sie haben bereits eine Stärke gemeldet!")):FIELD saveoptions:=0)

Das mit der Replizierung vom Server kann man doch bestimmt durch ACLs unterbinden??

MfG

Raptor