Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: RvM am 23.11.06 - 14:53:58

Titel: Leserfeld im Nachhinein einfügen
Beitrag von: RvM am 23.11.06 - 14:53:58
Wie kann ich per Agenten im Nachhinein en Leserfeld mit einem entsprechenden Wert Dokumenten in einer DB zuweisen?
Titel: Re: Leserfeld im Nachhinein einfügen
Beitrag von: klaussal am 23.11.06 - 14:57:12
Lies mal in der Hilfe die "IsReaders"-Property durch.

In der Notes Programming Bible steht auf Seite 287 ein Beispiel.
Beispiel für Autoren-Feld:
Code
Dim doc....
dim authoritem as NotesItem
dim alist(0 to 1) as string

alist(0) = session.UserName
alist(1) = "[DeineRolle]"

set doc = ...
set authoritem = doc.ReplaceItemValue (....
authoritem.isAUthors = True
call doc.save......

Titel: Re: Leserfeld im Nachhinein einfügen
Beitrag von: RvM am 23.11.06 - 15:13:52
OK, habe mal folgendes Script gebastelt:
   Dim Session As New NotesSession
   Dim db As NotesDatabase
   Dim coll As NotesDocumentCollection
   Dim loopdoc  As NotesDocument
   Dim item As NotesItem
   
   Set db = session.CurrentDatabase
   Set coll = db.UnprocessedDocuments
   Set loopdoc = coll.GetFirstDocument
   While Not(loopdoc Is Nothing)
      Set item = New NotesItem( loopdoc, "werdarf", "[STH]:[BOZ]:[ASH]:[Admin]", READERS )   
      item.IsReaders= True
      Call loopdoc.Save(True,True,True)               
      Set loopdoc = coll.GetNextDocument(loopdoc)
   Wend

ist ja alles okay, bis, das das Feld "werdarf" keine Textliste ist.
Titel: Re: Leserfeld im Nachhinein einfügen
Beitrag von: Driri am 23.11.06 - 15:15:45
Das ist klar, Du übergibst das ja auch als einen String.

Versuchs mal so :

Set item = New NotesItem( loopdoc, "werdarf", "[STH]":"[BOZ]":"[ASH]":"[Admin]", READERS )   


Das war Müll.
Titel: Re: Leserfeld im Nachhinein einfügen
Beitrag von: klaussal am 23.11.06 - 15:20:49
Oder so:

dim werdarf(0 to 5) as string

werdarf(0) = "[STH]"
werdarf(1) = "[BOZ]"
werdarf(2) = "[ASH]"

..... usw

Hat den Vorteil, dass, wenn man das mehrmals benutzt, nur an einer Stelle ändern muss.
Titel: Re: Leserfeld im Nachhinein einfügen
Beitrag von: RvM am 23.11.06 - 15:26:00
@Diri: das geht nicht, denn gibts ne Fehlermeldung schon beim Agenten:
"Initilize: 13: Unexpected::; Expected: Operator:,;"
Titel: Re: Leserfeld im Nachhinein einfügen
Beitrag von: klaussal am 23.11.06 - 15:27:40
Dann nimm doch mein Beispiel  ;D
Titel: Re: Leserfeld im Nachhinein einfügen
Beitrag von: Driri am 23.11.06 - 15:52:12
Stimmt, war auch Müll was ich da geschrieben habe, sorry  :-[

Aber Klaus Beispiel hilft Dir weiter.
Titel: Re: Leserfeld im Nachhinein einfügen
Beitrag von: Thomas Schulte am 23.11.06 - 15:54:11
So geht es auch ohne Array:
Set item = New NotesItem( loopdoc, "werdarf", split("[STH]:[BOZ]:[ASH]:[Admin]",":"), READERS )