Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: iworks am 13.05.09 - 21:26:02

Titel: Profil Dokumente - problemchen..
Beitrag von: iworks am 13.05.09 - 21:26:02
Guten Abend!!

hab da mal ein wenig Probleme beim Erstellen und einlesen von Profildokumente.
Oberflächlich passiert zunächst folgendes:

1. mittels Notes Net Registration.nsf melde ich mich an einem Portal als Member an (hier läuft alles super)
2. habe den code im entsprechenden Agent der NOtes.net Reg.nsf etwas erweitert, sodass auf einer anderen DB ein Profildokument angelegt wird.
das passiert so in etwa:

Teil des Codes aus registration.nsf, Agent registernewuser!
Hier soll ein Profildokument angelegt werden, jedoch auf die Portal.nsf DB, Form = UserProfil, key soll sein FullName
.....
Dim s01 As New NotesSession
Dim db01 As NotesDatabase
Dim podoc As NotesDocument
Dim key As String

Set db01 = s01.GetDatabase (db.Server, "Portal.nsf")
key = doc.GetItemValue("FullName")(0)
Set podoc = db01.GetProfileDocument ( "UserProfile", key)
podoc.profil_UNID = doc01_UNID
Call podoc.Save (True, True)

wobei doc im agenten zugewiesen ist an einer anderen Stelle und doc01_UNID auch.
Verstehe ich das richtig dass wenn es kein Profildokument mit diesem "key" = FullName String gibt, es erstellt wird und ich später dieses erstellte Profildokument direkt mit einerm Wert in das Feld "podoc.xtprofil_UNID" beschreiben kann?
Der registernewuser agent läuft ohne Fehler durch.

Nun auf der Portal.nsf DB habe ich in einer beliebigen Form ein berechnetes Feld erstellt und dort dieser Formel eingefügt:
@GetProfileField("UserProfil";"profil_UNID";PFullName);

wobei PFullName den Wert key enthält also den FullName aus der Registration.
Wenn ich jedoch das Dokument öffne zeigt mir dieses Fled nicht, bleibt komplett leer!!

Verstehe ich was vielleicht grundsätzlich im Zusammenhang Profildokumente was falsch, oder warum bekomme ich den Wert des Felds profil_UNID nicht aus dem ProfDokument?

Dane schon mal für eure Hilfe!!
Robert
Titel: Re: Profil Dokumente - problemchen..
Beitrag von: koehlerbv am 13.05.09 - 22:54:39
Nach einem ersten Blick sehe ich hier schon mal zwei Fehlerquellen, die Du vorab hättest klären sollen:

Du schreibst einmal von
podoc.profil_UNID
und dann von
podoc.xtprofil_UNID.

Verwechselst Du da keine Item-Namen?

Weiters: Bist Du Dir sicher, dass Du mit @GetProfileField auch das richtige ProfileDocument erwischst? Hast Du das ganze mit ScanEZ oder ersatzweise mit NotesPeek überprüft? Wenigstens schon mal debug code eingebaut, der die den Erfolg oder Misserfolg Deiner Einzelschritte aufzeigt?

Bernhard
Titel: Re: Profil Dokumente - problemchen..
Beitrag von: iworks am 13.05.09 - 23:12:35
Hallo Bernhard,

vielen Dank schon mal für deine Tips.
Itemverwechselung liegt schon mal nicht vor, hab mich bloß verschrieben beim Ersten.

Jo werde mir mal mittels scanez das Ganze anschauen! Ich gehe aber grundsätzlich davon aus dass ich das richtige Profildokument erschwische. Naja der Agent erstellt zumindest ein Doc mit dem Key FullName also "Max Muster", dieses Profildokument sollte ich mir per @GetProfilDocument auf "Max Muster" bekommen oder?

Titel: Re: Profil Dokumente - problemchen..
Beitrag von: koehlerbv am 13.05.09 - 23:35:12
Robert, wie ist denn Fullname wirklich gespeichert? Da liegen doch so häufig Missverständnisse vor - "Kuno Killerkarpfen" ist ja nicht das gleiche wie "CN=Kuno Killerkarpfen/O=Fische/C=Teich". Wenn Du mit erstem String ein ProfileDocument anlegst, es aber mit der zweiten Variante versuchst auszulesen, dann würde dies vollkommen fehlschlagen.

Bernhard
Titel: Re: Profil Dokumente - problemchen..
Beitrag von: iworks am 13.05.09 - 23:50:14
Hi Robert,

nee ist schon so "Max Muster".
Also scanEZ zeigt mir alle angelegten Profiledokumente ("userprofil"), darunter sehe ich auch "Max Muster", im Document Max Muster sehe ich auch das Profil_UNID mit der UniqueID richtig übergeben. Also das Doc ist da, und die Werte sind auch da.
Leider reicht die Version von ScanEZ nicht um die Funktion New/Get auszuprobieren, hab die License nicht!!
Aber is sehe alles, da müsste ich doch mit @GetProfileField( "userprofile" ; "PROFIL_UNID"; "Max Muster" ) das Doc bzw. den Wert in Profil_UNID bekommen.

Oder?
Titel: Re: Profil Dokumente - problemchen..
Beitrag von: iworks am 14.05.09 - 00:36:59
hmm, verstehe ich nicht ganz warum das nicht klappt.
hier mal ein Screenshot eines Profildokuments aus NotesPeek (pdf).

Bis morgen...

Titel: Re: Profil Dokumente - problemchen..
Beitrag von: koehlerbv am 14.05.09 - 01:02:02
Das beantwortet aber nicht die Frage, wie Du das bereits angelegte ProfileDocument aufrufst. Deine Antwort ist damit sehr unvollständig.

Bernhard
Titel: Re: Profil Dokumente - problemchen..
Beitrag von: iworks am 14.05.09 - 09:44:30
...dasss das Profildokument angelegt ist sehe ich nun mit NotesPeek eindeutug. Jetzt versuche ich in einer Form im PostOpen Event das Feld "xtprofil_unid" per LS aufzurufen...das sieht so aus.

Sub Postopen(Source As Notesuidocument)
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim item As NotesItem
   
   Set db = session.CurrentDatabase
   Set doc = db.GetProfileDocument("userprofil", "marti tigger")
   Set item = doc.GetFirstItem ( "xtprofil_unid" )
   unid = item.Text
   
End Sub

Mittels Debugger wird das Profildokument zwar gefunden, jedoch das Item "xtprofilunid" nicht angezeigt unter Doc. Sollte an dieser Stelle nicht das Item "xtprofil_unid" auftauchen?
Titel: Re: Profil Dokumente - problemchen..
Beitrag von: iworks am 14.05.09 - 10:00:49
...ok hatte tatsächlich ein Zeichen verdreht beim Aufrufen des Profildokuments. Klappt aber jetzt wunderbar alles!!
Danke für deine schnelle Hilfe Bernhard.

Robert.