Ich will auch mal wieder ein Problem haben. ;)
Es sollen Mails aus der Mail-Db des Users in eine Vorgangsverwaltung eingefügt werden.
Ich verwende dazu folgenden Code (Auszug aus einem Agenten):
...
Set collection = workspace.PickListCollection(1, True, dbMail.Server, dbMail.FilePath, "($Inbox)","Eingangsbox", "Markieren Sie die gewünschten Mails.")
If collection.Count = 0 Then Exit Sub
Set docMail = collection.GetFirstDocument 'Maildokument
While Not (docMail Is Nothing)
Set docNew = docMail.CopyToDatabase(dbCurrent)
docNew.Form = "frmVorgangMail"
Call docNew.ComputeWithForm(False, False)
'Hier werden noch verschiedene Felder für die Zuordnung zur einer
'Adresse usw. gesetzt
Call docNew.Save(True,False)
Set docMail = collection.GetNextDocument(docMail)
Wend 'While Not (docMail Is Nothing)
Die Dokumente werden auch in der DB angelegt, aber von 5 übernommenen Mail werden unter Umständen nur 2 oder 3 in der Ansicht angezeigt. Ein refreshen der Ansicht bringt nichts. Über die Volltext-Suche finden ich aber auch die anderen Dokumente. Wenn ich diese dann aktualisiere (mit @Command([ToolsRefreshSelectedDocs])), dann sehe ich sie auch in der Ansicht.
Wo liegt denn hier das Problem ?
Axel
Hi,
ich hab' noch mal was probiert. Ich öffne das Dokument im Frontend, aktualisiere und speichere es und schließe das Dokument wieder. Und siehe, damit funktioniert es.
Aber für den User ist das ein Zumutung und ist eher was für Blinde. Der Bildschirm flackert ziemlich wild in der Gegend rum.
Dieser Würkdrumrum ist so nicht einsetzbar. Schade eigentlich.
...
Set collection = workspace.PickListCollection(1, True, dbMail.Server, dbMail.FilePath, "($Inbox)","Eingangsbox", "Markieren Sie die gewünschten Mails.")
If collection.Count = 0 Then Exit Sub
Set docMail = collection.GetFirstDocument 'Maildokument
While Not (docMail Is Nothing)
Set docNew = docMail.CopyToDatabase(dbCurrent)
docNew.Form = "frmVorgangMail"
Call docNew.ComputeWithForm(False, False)
'Hier werden noch verschiedene Felder für die Zuordnung zur einer
'Adresse usw. gesetzt
Set uidocCurrent = workspace.EditDocument(True, docNew) 'Dokument im Frontend öffnen
Call docNew.Remove(True) 'Das Dokument, das im Backend erstellt wurde, löschen
Call uidocCurrent.Refresh(True)
Call uidocCurrent.RefreshHideFormulas
Call uidocCurrent.Save
Call uidocCurrent.Close
Set docMail = collection.GetNextDocument(docMail)
Wend 'While Not (docMail Is Nothing)
...
Ich werde bis Montag mal die Segel streichen. Vielleicht kommt ja dann der Geistesblitz.
Schönes Wochenende
Axel
Hi,
wie es aussieht ist das Problem gelöst. Scheinbar haben mir Mails mit einem $Ref-Feld, also Antwortmails in die Suppe gespuckt. Wenn ich diese Feld nach der Übernahme in die eigene DB lösche, dann funktioniert's.
Set collection = workspace.PickListCollection(1, True, dbMail.Server, dbMail.FilePath, "($Inbox)","Eingangsbox", "Markieren Sie die gewünschten Mails.")
If collection.Count = 0 Then Exit Sub
Set docMail = collection.GetFirstDocument 'Maildokument
While Not (docMail Is Nothing)
Set docNew = docMail.CopyToDatabase(dbCurrent)
docNew.Form = "frmVorgangMail"
docNew.RemoveItem("$Ref")
Call docNew.ComputeWithForm(False, False)
'Hier werden noch verschiedene Felder für die Zuordnung zur einer
'Adresse usw. gesetzt
Call docNew.Save(True,False)
Set docMail = collection.GetNextDocument(docMail)
Wend 'While Not (docMail Is Nothing)
...
Ich habe mal ca. 100 Mails am Stück übernommen und alle wurden anschließend in der Ansicht angezeigt.
Axel