Domino 9 und frühere Versionen > Entwicklung

Wie Mailfile des gerade aktiven Users identifizieren?

(1/3) > >>

g202e:
So, nachdem ich jetzt fast eine Stunde die Suchfunktion bemüht habe (und wahrscheinlich wieder nach den falschen Begriffen gesucht habe!), stelle ich mal euch die Frage.
Ich bastele gerade an einer Datenbank, die unter anderem die Funktionalität bieten soll, dass ein Benutzer ausgewählte Nachrichten aus seinem persönlichen Mailfile($Inbox) in einen Ordner($Inbox) in der gerade geöffneten Datenbank kopieren kann.
Aber ich scheitere schon daran, dass ich nicht weiss, wie ich denn das persönliche Mailfile des gerade aktiven Benutzers zu fassen kriege.
Also: Ich befinde mich in einer beliebigen Datenbank auf einem beliebigen Server und möchte nun das Mailfile des aktiven Benutzers (welches natürlich auf einem anderen Server liegen kann/wird!)öffnen. Wie krieg ich das gebacken?

koehlerbv:
Gib NotesDatabase.OpenMail eine Chance ;-)

Und danach kann man sich wirklich den Wolf suchen ... Ich hätte damals (als ich selbst auf der Suche war) eher auf NotesSession gesetzt ...

HTH,

Bernhard

Lenham:
Also ich schnapp mir die persönliche Mailbox des Users immer über eine View des NABs.

In etwa so

@Command([FileOpenDatabase];
@Subset(@DbName;1):@DbLookup("";@Subset(@DbName;1):"names.nsf";"($Users)";@UserName;"mailfile"))

Vielleicht hilft Dir das ja.

g202e:
Danke.
Habe erstmal folgendes getan:

--- Zitat von: koehlerbv am 04.02.04 - 18:12:34 ---Gib NotesDatabase.OpenMail eine Chance

--- Ende Zitat ---

Mein Script sieht so aus:
...
   Call QuellDB.OpenMail
   Messagebox( QuellDB.Title & " on server " & QuellDB.Server )
   Set ZielDB = session.CurrentDatabase
   Set coll = QuellDB.UnprocessedDocuments
   Set doc = coll.GetFirstDocument      
   Do While Not doc Is Nothing
      Set tmpdoc = coll.GetNextDocument(doc)
      Set newdoc = doc.CopyToDatabase(ZielDB)
      Call newdoc.PutInFolder("FolderName",True)
      Set doc = tmpdoc
   Loop
...
In der Messagebox gibt er mir auch mein Mailfile aus.
Ich erhalte dann in der Zeile set coll.. den Fehler:
"Cant get left-to-do list, database richtigerServer\richtigesMailfile.nsf is not the agents database"
Die Hilfe zu OpenMail sagt: "For a script to use this method, it must run either on a workstation or on the agent owner's mail server. Otherwise, it raises an error, since scripts running on servers cannot access databases on other servers."
Das heisst wörtlich genommen, dass das so überhaupt nicht geht?
Wie dann?

Semeaphoros:
Der Hilfetext zu OpenMail spielt, wenn ich Dich richtig verstehe, hier keine Rolle, Du arbeitest ja lokal.

Du suchst wohl in der Falschen Richtung. Unprocessed documents kann in der Situation ja gar nicht funktionieren, da die Datenbank frisch geöffnet wird, gibt es keine "UnprocessedDocuments" (diese Collection ist sog. Kontext-Sensitiv).

Offenbar hat der User ja sein Mailfile offen und Du rufst das aus dem Mailfile auf? Hast den Agenten im Mailfile positioniert? Dann nimm statt db.OpenMail die Datenbank CurrentDatabase in der Session. Dort bekommst Du dann auch die ausgewählten Dokumente zur Verfügung gestellt.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln