Hallo!
Ich habe http://atnotes.de/index.php?topic=55872.0 (http://atnotes.de/index.php?topic=55872.0) gefunden, wollte da auch antworten, aber die Seite meint, das das Thema schon etwas alt sei. ::) Darum auf ein Neues:
Mein Custom Validator speichert das Dokument unabhängig vom zurück gegebenen Wert von validate.
<xe:this.validators>
<xp:customValidator
message="Dieser Wert wurde schon schon verwendet.">
<xp:this.validate><![CDATA[#{javascript:var sID:String = getComponent('inputText1').getSubmittedValue();
var vieLU:NotesView = database.getView('(vieLU)');
var docLU:NotesDocument = vieLU.getDocumentByKey(sID, true);
return (docLU == null) ? true : false;}]]></xp:this.validate>
</xp:customValidator>
</xe:this.validators>
Im Prinzip soll hier nur geprüft werden, ob der Wert in inputText1 schon in einer Ansicht vorkommt. inputText1 ist nicht leer und docLU wird auch gefunden (ist soweit schon überprüft). D.h. der Vergleich liefert in diesem Fall false zurück und sollte also den Wert message anzeigen. Stattdessen wird aber gespeichert. - Wobei es egal ist, was zurück geliefert wird (true oder false), es wird in jedem Fall gespeichert und das Dokument doppelt angelegt.