Hallo, nach langem hin und her habe ich eine Alternativlösung gefunden, die eigentl denkbar simpel ist.
Zuvor muss ich jedoch sagen es mir nachwievor schleierhaft ist warum ich nicht per ServerSide Script auf die Datenbank komme.
Der Lösungsansatz ist folgender:
- In der Ressourcendatenbank eine View erstellen deren erste sortierte Spalte den Suchkey beinhaltet (Nicht versteckt, nur einfache Selectformel)
- In der XPagesdatenbank in dem gewünschten Formular obige View als Datensatz einbinden. (Hier gabs mit der alten View Probleme)
- Im Vorgabewert des Feldes direkt auf die Einträge dieser View gehen um zu überprüfen ob es überhaupt lesbare Dokumente gibt
- wenn ja, in diesen Einträgen anhand des Schlüssels nach dem gewünschten Dokument suchen.
Im Code schaut das so aus:
var name = session.createName(session.getEffectiveUserName()); //aktueller Username
var key = @Text(name.getCommon())+"/"+@Text(name.getOrganization()); //wird als Key verwendet
var check = ViewImport.getAllEntries(); //ViewImport ist die als Datensatz angelegt View der Ressourcendb
if (check.getCount() != 0) {
var dc:NotesDocumentCollection = ViewImport.getAllDocumentsByKey(key); //Dokumente nach Key suchen
if (dc.getCount() != 0) {
var doc:NotesDocument = dc.getFirstDocument(); //Ersten Treffer verwenden
return @Text(doc.getItemValue("OfficePhoneNumber")) }
else return "No KeyMatches / "+check.getCount()+" ViewEntries" //CollectionCount = 0
}
else return "Error - No ViewEntries" //ViewCount = 0
Werde den Code jetzt verlagern damit direkt beim Laden des Dokumente mehrere Felder befüllt werden und ich nicht bei jedem Vorgabewert die Datenbank durchsuchen muss.
Danke nochmal für Eure Mühen und Hilfestellungen.
Mattias