Ungefähr so:
Dim s As New notessession
Dim db As notesdatabase
Dim notecoll As notesnotecollection
Dim noteid As String
Dim agent As document
Set db = s.currentdatabase
Set notecoll = db.createNoteCollection(False)
notecoll.SelectAgents=True
Call notecoll.BuildCollection()
noteid = notecoll.GetFirstNoteId
Set agent = db.GetDocumentByID(noteid)
While Not agent Is Nothing
If agent.name="Mein AGent" Then
Call agent.replaceitemvalue("$OnBehalfOf","CN=Der Name/O=Meine Organisation")
Call agent.save(True,False)
End If
noteid = notecoll.getnextnoteid(noteid)
Set agent = db.GetDocumentByID(noteid)
Wend
Guten Morgen,
so hier nun die Gewünschte Lösung:
Orientiert an diesem Beispiel:
API Beispiel (http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/65389424caefa06980256b260051da56?OpenDocument)
Neue Deklaration einfügen:
Private Const wAPIModule = "NNOTES"
Declare Private Function apiNSFItemSetText Lib wAPIModule Alias "NSFItemSetText" ( Byval hNT As Long, Byval N As String, Byval D As String, Byval nD As Integer) As Integer
So nun wie gewohnt die Datenbank öffnen damit man unter anderem das NoteHandle bekommt (hNT&)
Setzen des Felder per API:
apiNSFItemSetText hNT&, "$OnBehalfOf", username$ & Chr$(0), Len(username)
Wobei hier username ein String ist mit dem Canonical Name des Users!
Ich kann allerdings nicht genau sagen ob ein Chr(0) hier an dieser stelle benötigt wird, gegebenenfalls einfach entfernen.
Was nun ganz wichtig ist (siehe auch Beispiel weiter oben) muss nun das Flag Version gesetzt werden auf den Integer 2:
dim version as Integer
version% = 2
Poke p& + 2, version, 2
Je nach wunsch kann man nun noch den Agenten auf "Run as Web User setzen", dazu muss man in den Feldern $AssistFlags und $Flags noch ein kleines "u" einfügen.
Beispiel für $AssistFlags: "Eu" E=Enabled; u=RunAsWebUser
Beispiel für $Flags: "fLS3u" f=V4 Agent; L=LotusScript Agent; S=Scheduled; 3=Hide from V3 Clients; u=RunAsWebUser
Konstanten für Flags (http://www.intertrust.ru/site/itforum.nsf/f1eb228a7ae49970c3256a99004aff3d/d9496f0a830095efc325690b00204469/$FILE/stdnames.h)
Das ganze Speichern und signieren kann auch nie schaden.
Ich hoffe ich konnte euch einen kleinen Eindruck davon geben wie man das Feld $OnBehalfOf dynamisch setzen kann!
Danke
P.S.: Für weitere Fragen könnt ihr gern eine Nachricht schicken, für eventuelle Verbesserungsvorschläge bin ich natürlich auch offen (Bin ja nur ein Praktikant)