Autor Thema: Wie Mailfile des gerade aktiven Users identifizieren?  (Gelesen 2492 mal)

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
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?
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Wie Mailfile des gerade aktiven Users identifizieren?
« Antwort #1 am: 04.02.04 - 18:12:34 »
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

Offline Lenham

  • Junior Mitglied
  • **
  • Beiträge: 71
  • Ich liebe dieses Forum!
Re:Wie Mailfile des gerade aktiven Users identifizieren?
« Antwort #2 am: 05.02.04 - 08:58:38 »
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.

« Letzte Änderung: 05.02.04 - 08:59:18 von Lenham »

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:Wie Mailfile des gerade aktiven Users identifizieren?
« Antwort #3 am: 05.02.04 - 11:43:19 »
Danke.
Habe erstmal folgendes getan:
Gib NotesDatabase.OpenMail eine Chance

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?

Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Wie Mailfile des gerade aktiven Users identifizieren?
« Antwort #4 am: 05.02.04 - 13:23:30 »
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.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Wie Mailfile des gerade aktiven Users identifizieren?
« Antwort #5 am: 05.02.04 - 13:32:21 »
Wenn der User selber aus der Inbox (zum Bleistift) picken soll, was übernommen werden soll, dann wäre folgendes ein Ansatz:
Code
Set collection = ws.picklistCollection(PICKLIST_CUSTOM, False, dbMail.server, dbMail.filepath, _
      "($Inbox)", dbMail.title, "Please choose an email to associate with the choosen task document:", "")
      If collection.count > 0 Then
         Set docMail = collection.Getfirstdocument()
      

HTH,
Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Wie Mailfile des gerade aktiven Users identifizieren?
« Antwort #6 am: 05.02.04 - 13:47:59 »
Genau, das ist die Lösung, wenn man den Mehlpfeil nicht umbiegen will.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:Wie Mailfile des gerade aktiven Users identifizieren?
« Antwort #7 am: 05.02.04 - 14:24:05 »
Offenbar hat der User ja sein Mailfile offen und Du rufst das aus dem Mailfile auf? Hast den Agenten im Mailfile positioniert?
Nein da spielt sich nichts im eigenen Mailfile ab! (Hatte ich aber oben geschrieben!)
Ich habe jetzt die beiden Hilfestellungen von Bernhard kreativ kombiniert und dabei folgendes erhalten:
   Call QuellDB.OpenMail
'   Messagebox( QuellDB.Title & " on server " & QuellDB.Server )
   Set ZielDB = session.CurrentDatabase
   Set coll = ws.picklistCollection(PICKLIST_CUSTOM, False, QuellDB.server, QuellDB.filepath, _
   "($Inbox)", QuellDB.title, "Bitte wählen Sie eine Nachricht zur                     Übernahme aus!", "")
   If coll.count > 0 Then
      Set doc = coll.GetFirstDocument      
      Do While Not doc Is Nothing
         Set tmpdoc = coll.GetNextDocument(doc)
         Set newdoc = doc.CopyToDatabase(ZielDB)
         Call newdoc.PutInFolder("($Inbox)",True)
         Set doc = tmpdoc
      Loop
   End If   
Ich greife also über OpenMail das jeweilige Mailfile und kann dann über die Picklist die zu übernehmenden Mails wählen.
Das erfüllt erstmal genau meine Vorstellungen.
Danke.
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Wie Mailfile des gerade aktiven Users identifizieren?
« Antwort #8 am: 05.02.04 - 15:15:43 »
Hast Du schon geschrieben, das steht aber in krassem Widerspruch zum Versuch, die UnprocessedDocuments zu greifen ........ daher meine Annahme.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:Wie Mailfile des gerade aktiven Users identifizieren?
« Antwort #9 am: 05.02.04 - 17:41:22 »
steht aber in krassem Widerspruch zum Versuch, die UnprocessedDocuments zu greifen
Alles klar. Das war ja auch nur der erste Versuch und ich war durch die blöde Fehlermeldung und die Aussage in der Hilfe irritiert. Aber nun klappts ja.
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Wie Mailfile des gerade aktiven Users identifizieren?
« Antwort #10 am: 05.02.04 - 17:44:42 »
Jo, das gibts. Schön, dass es jetzt funktioniert.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Wie Mailfile des gerade aktiven Users identifizieren?
« Antwort #11 am: 06.02.04 - 13:16:51 »
... es gibt auch noch einen Weg über @MailDBName => damit erhält man den Server und den Pfad der aktuellen Maildatenbank...

... sehr viel komfortabler ist natürlich der Weg über die NotesDatabase.MailOpen  ;D

ata
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz