Domino 9 und frühere Versionen > ND8: Entwicklung - XPages

Vorgabewerte in Xpages aus anderer Datenbank

<< < (3/3)

Thomas Schulte:
Und du bist dir sicher Martin das er nicht gegen die Internet ACL prüft?

Wobei ich sowieso nicht schnall wieso IBM den Stunt an dieser Stelle gedreht hat.

mb@WIT:
Also selbst falls er gegen die Internet ACL prüft sollte das kein Problem darstellen da der Wert für "Maximum Internet name and Password" auf Editor gesetzt ist in beiden Datenbanken. Der von mir verwendete Code befindet sich übrigens in der XPage im Vorgabewert eines Feldes als Server-Side JavaScript falls es irgendeinem weiterhilft.

Verstehs langsam auch nicht mehr .. meint ihr es wäre sinnvoll nen Agenten aufzurufen mit Rückgabewert der die benötigten Infos ermittelt?

Oder hat einer noch eine Idee wie ich das besser debuggen kann um zu sehen WARUM ich nicht auf die Datenbank komme? (Bin in der Hinsicht noch nicht so ganz fit)

Danke nochmal für eure Mühen.
Mattias

mb@WIT:
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:

--- Code: ---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
--- Ende Code ---

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

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln