Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Aladdin Sane am 07.07.04 - 15:43:12

Titel: Profil im Backend auslesen
Beitrag von: Aladdin Sane am 07.07.04 - 15:43:12
Hallo,

ich habe in einer DB ein Profildokument "Profil".
Über folgenden Befehl wird dieses geöffnet und kann geändert werden:

@Command([EditProfile];"Profil")

Im Backend möchte ich diverse Felder auslesen.
So etwa:

Set doc =session.currentdatabase.GetProfileDocument("Profil")

...

Aber ich bekomme die Fehlermeldung "Kategorie nicht gefunden".
Andererseits habe ich ein berechnetes Feld mit folgendem Code:
@GetProfileField("Profil"; "FELD1")
Hier wird der Inhalt des Feldes FELD1 aus dem Profil-dok richtig ausgelesen-

Wie bekomme ich das aber in LS gelöst?

Gruß
pASCAL
Titel: Re:Profil im Backend auslesen
Beitrag von: Driri am 07.07.04 - 16:11:53
Eigentlich geht das genau so. Vor allem die Fehlermeldung ist ein wenig merkwürdig, kenne ich eigentlich nur aus Ansichten.

Sicher, daß der Fehler vom GetProfileDocument ausgelöst wird ? Hast Du das im Debugger schon mal getestet ?

Ansonsten poste mal ein wenig mehr Code, vielleicht sieht man da ein wenig mehr.
Titel: Re:Profil im Backend auslesen
Beitrag von: Semeaphoros am 07.07.04 - 16:16:47
Könnte auch sein, dass das tiefreferenzieren ein Problem darstellt, manchmal schafft Notes das nicht. Versuche es, auseinanderzunehmen, etwa so:

Set db =session.currentdatabase
Set doc =db.GetProfileDocument("Profil")
Titel: Re:Profil im Backend auslesen
Beitrag von: Aladdin Sane am 07.07.04 - 17:04:01
Das ist es.
Hiermit funktioniert es:

  Set db = session.CurrentDatabase
  Set doc =db.GetProfileDocument("Profil")

Ich kann anschließend über doc ganz gelöst auf die Felder zugreifen.

Aber die Fehlermeldung "Kategorie nicht gefunden" erscheint weiterhin in der Status-Bar.
Ohne die Anweisung GetProfileDocument bleibt sie aus.

Interessant ist auch, dass die Fehlermeldung gleich am Anfang, also noch vor allen Print-Anweisungen ausgeworfen wird - auch wenn die Print-Anweisungen weiter oben im Code stehen!

So sieht also der verkürzte code aus:

 Dim session As New NotesSession
 Dim db As NotesDatabase
 Set db = session.CurrentDatabase
   
 Dim doc As NotesDocument
 Print "A1"
 Set doc =db.GetProfileDocument("Profil")
 Print "A2"

Und in der Statusbar steht:
Kategorie nicht gefunden
A1
A2

Naja....