Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Alexis am 11.01.05 - 11:30:16
-
Hallo Forum,
was kann hier falsch sein:
Sub Click(Source As Button)
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Dim docCurrent As NotesDocument
Dim rtitem As NotesRichTextItem
Dim Mailserver As String
Dim Mailbox As String
Dim Mailview As String
Dim ID As String
*
*
*
Set db=session.CurrentDatabase
Set uidoc = workspace.currentdocument
ID=uidoc.FieldGetText("ID_Owner")
Mailserver="MAIL.COM/SRV/CCN"
Mailbox="MAIL\ALL" & ID & ".NSF"
Mailview="All by Date"
Set collection = workspace.PickListCollection(1, True, Mailserver,Mailbox,Mailview,"Mail Selection","Please select a document.")
Call collection.PutAllInFolder( "MailFolder",True)
End Sub
Die Collection ist nicht leer, dennoch wird nichts in den Folder gepackt. ???
Alexis
-
Hi,
existiert der Ordner? Ist es evt. ein privater Ordner?
Mir ist so im Hinterkopf, dass es Probleme mit dieser Methode gab, wenn der Ordner nicht vorhanden war.
Axel
-
Hallo Axel,
der Ordner wird offensichtlich in der Mail-Datenbank angelegt und dort werden auch die Mails abgelegt! Der Ordner existiert in der Zieldatenbank und ist nicht privat.
Ich verstehe nur noch Bahnhof.
Alexis
-
Hi,
so richtig hast du meine Fragen nicht beantwortet.
Ist der Ordner bereits vorhanden?
Ist ein gemeinsamer Ordner oder ein privater?
Axel
-
Hallo Axel,
der Ordner existiert in der Datenbank aus der ich die Aktion ausführe.
Der Ordner ein gemeinsamer.
Der Code legt jedoch in meiner Mailbox (!!!) ebenfalls den entsprechenden Ordner an!
Das verstehe ich nicht.
Alexis
-
Hi,
hmm..., dann sollte das aber eigentlich funktionieren. Ist das evt. ein Refresh-Problem? Hast du die Ordner - Ansicht mal aktualisiert.
Sonst fällt mir dazu im Moment aber auch nichts mehr ein.
Axel
-
Hallo Axel,
es ist definitiv so, dass die ausgewählten Mails in der Mail-Datenbank (!!!) abgelegt werden. Der Folder in der Zieldatenbank ist und bleibt leer!
Ich werde dieses einmal mit einer anderen als Maildatenbank ausprobieren.
Alexis
-
Das ist aber auch vollkommen logisch - Du kannst Dokumente nicht in einen Ordner einer ganz anderen Datenbank schieben, das geht nur innerhalb einer DB.
Bernhard
-
Hallo Berhard,
wieso sollte das so undenkbar sein?
Per Copy & Paste kannst du doch auch jedes Dokument von einer DB in eine andere DB kopieren. Wo das Sinn macht ist eine andere Frage. Wenn die entsprechende Maske auch in der 2. DB vorhanden ist, klappt das völlig problemlos.
Hier meine praktische Anwendung: Im Service werden alle Vorgänge in einer Datenbank protokolliert. Zugehörige Mails sollten möglichst elegant mit eingebunden werden, so dass der Vorgang komplett ist. Was ist leichter, als die Mailschablone zu kopieren, auf die wesentlichen Felder zusammenzustreichen und die Mails - per, nun hier sollte die Funktion greifen - zu importieren.
Schade dass es so nicht klappt. :'(
Alexis
-
Alexis: Ein Folder ist nur eine Sammlung von Referenzen auf Dokumente in DERSELBEN Datenbank (per Definition ! ). Damit das in einer anderen DB sichtbar wird, müssen die Dokumente physisch kopiert werden.
-
@Semeaphoros,
das hätte mir eigentlich bekannt sein müssen, hab ich doch früher einmal mit hunderten von Foldern gearbeitet.
PutAllInFolder klappt übrigens genauso mit einer View!?
Für mich heisst das dann wohl alle Infos aus der Collection herausziehen und in neue Dokumente übertragen.
Alexis
-
PutInFolder klappt nicht im Vieh-Stall. Die Auswahl der angezeigten Dokumente werden dort per Selection-Formula erstellt. Genau das ist der Unterschied zwischen Vieh und Folder: Vieh hat eine Selection - Formel, Folder ist eine freie Liste
-
Ups, da hab ich doch glatt überlesen, dass es sich um verschiedene DBs handelt.
Dann geht's so natürlich nicht.
Axel
-
Hallo Forum,
es hat etwas gedauert, aber nun steht die gewünschte Lösung. Aus der PickListCollection lassen sich ja die einzelnen Dokumente adressieren und damit in die Zieldatenbank kopieren.
Hier der Code:
Sub Click(Source As Button)
' Function to select mail(s) from own mailbox, copy them to database, open View to set doclinks in case report
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim db As NotesDatabase
Dim uidb As NotesUIDatabase
Dim collection As NotesDocumentCollection
Dim copydoc As NotesDocument
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim item As NotesItem
Dim Mailserver As String
Dim Mailbox As String
Dim Mailview As String
Dim ID As String
Dim n As Integer
Set db = session.CurrentDatabase
Set uidoc = workspace.currentdocument
Set uidb = workspace.CurrentDatabase
ID=uidoc.FieldGetText("ID_Owner")
Mailserver="MAIL.COM/SRV/CCN"
Mailbox="MAIL" & ID & ".NSF"
Mailview="All by Date"
Set collection = workspace.PickListCollection(1, True, Mailserver,Mailbox,Mailview,"Mail Selection","Select relevant mails.")
Set doc = collection.GetFirstDocument
If collection.Count = 0 Then Goto label1
While Not ( doc Is Nothing )
Set copydoc = doc.CopyToDatabase( db )
Set doc = collection.GetNextDocument (doc)
Wend
Call uidb.OpenView("Mailview")
label1:
End Sub