Autor Thema: Vorgabewerte in Xpages aus anderer Datenbank  (Gelesen 11084 mal)

Offline mb@WIT

  • Frischling
  • *
  • Beiträge: 7
  • Geschlecht: Männlich
    • Wegener IT Ltd. & Co. KG
Vorgabewerte in Xpages aus anderer Datenbank
« am: 26.02.09 - 10:46:28 »
Hallo Alle,

bin neu hier und hoffe ihr könnt mir bei einem Problem helfen:

Wir entwickeln zur Zeit für den Kunden X ein simples Webformular was mittels der Anmeldeinformationen Teils vorbefüllt werden soll.
Leider befinden sich die benötigten Informationen in einer anderen Datenbank auf einem anderen Server ohne eindeutige Schlüssel (Docid's etc). Die einzige Möglichkeit die Daten abzugreifen ist mittels einer Ansicht mit einer sortierten Spalte in der Anmeldenname und Organisation zusammengefügt werden. Um an die Daten zu kommen haben ich folgenden Code "gebastelt", glücklicherweise gibt mir der Code keinen Fehler aus, unglücklicherweise aber auch keine Daten. ^^

Der Code soll in diesem Bespiel lediglich die hinterlegte Telefonnummer aus dem Userdokument holen das anhand der Anmeldeinformationen in einer Ansicht gefunden wird. Habe ich hier irgendwo einen Fehler oder weiss jemand woran das Problem liegen könnte?

Code
var name = session.createName(session.getEffectiveUserName());
var key = name.getCommon()+"/"+name.getOrganization();

var registerdb:NotesDatabase = session.getDatabase("<server>","<ordner>\register.nsf");
if (registerdb.isOpen()){	
	var regview:NotesView = registerdb.getView("ExportUserView3");
	var doc:NotesDocument = regview.getDocumentByKey(key);
	var phone = doc.getItemValue("OfficePhoneNumber");
	return phone
}

<server> und <ordner> stellen den andern Server und die Datenbank dar.
Der angemeldete User hat auf die andere Datenbank Lese-Zugriff, ebenso auf das Dokument.

Danke bereits im Voraus.  ::)

Offline mb@WIT

  • Frischling
  • *
  • Beiträge: 7
  • Geschlecht: Männlich
    • Wegener IT Ltd. & Co. KG
Re: Vorgabewerte in Xpages aus anderer Datenbank
« Antwort #1 am: 26.02.09 - 12:13:37 »
Habe mittels Serverlog das Problem soweit einschränken können umzu sehen das der Datenbankzugriff bereits fehlschlägt.

Habe die ACL nochmal durchgesehen und festgestellt das der User selber nicht mehr in der ACL eingetragen ist. Gehe ich Recht in der Annahme, dass Domino die Anonymous / Default - Rechte ignoriert sobald ich versuche unter einem Benutzernamen auf die Datenbank zuzugreifen? Dachte immer das die Rechte zumindest vom Default vererbt werden und dieser hat Leser-Rechte.

Grüße

Offline m3

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Vorgabewerte in Xpages aus anderer Datenbank
« Antwort #2 am: 26.02.09 - 12:31:59 »
Habe mittels Serverlog das Problem soweit einschränken können umzu sehen das der Datenbankzugriff bereits fehlschlägt.

Habe die ACL nochmal durchgesehen und festgestellt das der User selber nicht mehr in der ACL eingetragen ist. Gehe ich Recht in der Annahme, dass Domino die Anonymous / Default - Rechte ignoriert sobald ich versuche unter einem Benutzernamen auf die Datenbank zuzugreifen? Dachte immer das die Rechte zumindest vom Default vererbt werden und dieser hat Leser-Rechte.

Grüße
Was meinst Du mit "unter einem Benutzernamen auf die Datenbank zuzugreifen"? Mit einem Agent, der mit einer anderen ID signiert ist, oder wie?

Ansonsten gilt:
Wenn ein User über den Notes-Client auf eine DB  zugreift und nicht in der ACL direkt oder über eine Gruppe eingetragen ist, greifen die Default-Rechte.
Wenn ein User über einen Browser auf eine DB  zugreift und nicht in der ACL direkt oder über eine Gruppe eingetragen ist, greifen die Anonymous-Rechte. Sind diese nicht gesetzt, greifen die Default-Rechte (unter Berücksichtigung des max. Internet-Zugangslevels).
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline mb@WIT

  • Frischling
  • *
  • Beiträge: 7
  • Geschlecht: Männlich
    • Wegener IT Ltd. & Co. KG
Re: Vorgabewerte in Xpages aus anderer Datenbank
« Antwort #3 am: 26.02.09 - 13:03:35 »
Danke für die fixe Antwort,

ich meinte damit wenn ich um auf meine Anwendung zugreifen zu müssen mittels der names.nsf am Server anmelde.
Aber wenn ich dich jetzt richtig verstanden habe, müsste dann ja auf den Zugriff der anderen Datenbank die Rechte des Anonymous Users (Auhtorenrechte + Create Document) greifen und es somit mir ermöglichen die Dokumente der Datenbank zu lesen.

Was mich nur an der Stelle dann wundert warum ich dennoch nicht auf die Datenbank komme wenn der Anonymous doch über ausreichend Rechte verfügt.

Gibt es eine Möglichkeit eine genaue Fehlermeldung zu bekommen, warum ich die Datenbank nicht öffnen konnte? Zur Zeit überprüfe ich lediglich ab ob ich sie öffnen konnte oder nicht.

Danke für Eure Mühe und Zeit.
« Letzte Änderung: 26.02.09 - 13:07:36 von mb@WIT »

Offline m3

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Vorgabewerte in Xpages aus anderer Datenbank
« Antwort #4 am: 26.02.09 - 13:24:53 »
Lass mich raten - zwischen derm Server, auf dem die Xpages laufen und dem Server, auf dem die register.nsf Datenbank liegen, steht eine Firewall?
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline mb@WIT

  • Frischling
  • *
  • Beiträge: 7
  • Geschlecht: Männlich
    • Wegener IT Ltd. & Co. KG
Re: Vorgabewerte in Xpages aus anderer Datenbank
« Antwort #5 am: 26.02.09 - 13:56:26 »
Hallo, tut mir leid - ich weiss das mein Problem grosses Rätselraten ist ^^
Nein, habe inzwischen auch die 2te Datenbank auf den selben Server gezogen.
Problematik bleibt bestehen.

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Vorgabewerte in Xpages aus anderer Datenbank
« Antwort #6 am: 26.02.09 - 19:44:53 »
Vielleicht hilft Kapitel 10 dieses Tutorials.
Hab seit Monaten keine Zeit mehr gefunden, mich mit xpages zu beschäftigen.
http://www.qtzar.com/blogs/qtzar.nsf/D6Plinks/DSLH-7PKQHG
Sicher weiss ich da nix.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline mb@WIT

  • Frischling
  • *
  • Beiträge: 7
  • Geschlecht: Männlich
    • Wegener IT Ltd. & Co. KG
Re: Vorgabewerte in Xpages aus anderer Datenbank
« Antwort #7 am: 27.02.09 - 10:25:04 »
Dank für den Tip, leider hilft mir das nicht weiter. Der Zugriff auf Dokumente der eigenen Datenbank funktioniert ohne Probleme.

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Vorgabewerte in Xpages aus anderer Datenbank
« Antwort #8 am: 27.02.09 - 12:24:41 »
Bist du dir mit dem Zugriff wirklich sicher?

Nicht das dir der max. Internetnamens- und Kennwortzugriff hier die Bilanz verhagelt. XPages = im Moment noch, WEB
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline m3

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Vorgabewerte in Xpages aus anderer Datenbank
« Antwort #9 am: 27.02.09 - 12:32:34 »
Thomas, aber der Code wird am Server ausgeführt - IIRC.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Vorgabewerte in Xpages aus anderer Datenbank
« Antwort #10 am: 27.02.09 - 13:51:06 »
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.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline mb@WIT

  • Frischling
  • *
  • Beiträge: 7
  • Geschlecht: Männlich
    • Wegener IT Ltd. & Co. KG
Re: Vorgabewerte in Xpages aus anderer Datenbank
« Antwort #11 am: 27.02.09 - 16:13:55 »
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

Offline mb@WIT

  • Frischling
  • *
  • Beiträge: 7
  • Geschlecht: Männlich
    • Wegener IT Ltd. & Co. KG
Re: Vorgabewerte in Xpages aus anderer Datenbank
« Antwort #12 am: 03.03.09 - 11:07:49 »
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

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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz