Domino 9 und frühere Versionen > ND6: Entwicklung
Probleme bei der Übernahme von Mails in eingene DB
Thomas Schulte:
Mach doch mal mit dem Tool von Martin Scott NoteMan.DocDelta einen Snapshot vor und nach dem Manuellen Refresh. Damit müsstest du die Felder rausfinden können die sich geändert haben.
Und ich glaub immer noch das der ComputeWithForm nicht sauber durchläuft. Zumindest war das bei mir bei den letzten Datenbanken bei denen ich das Ding verwendet habe so.
Axel:
Hi,
ich hab's mit dem DocDelta mal probiert. Es ändert sich tatsächlich ein Feld und zwar das Feld $MessageID. Allerdings ist es nachher genauso leer wie vorher. Keine Ahnung was sich an diesem Feld ändert? :P
Ich glaube nicht, dass es an diesem Feld hängt.
Axel
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.
--- Code: ---...
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)
...
--- Ende Code ---
Ich werde bis Montag mal die Segel streichen. Vielleicht kommt ja dann der Geistesblitz.
Schönes Wochenende
Axel
Axel:
Hi,
ist hab nochmal ein bisschen getestet, ohne aber richtig weitergekommen zu sein. Zwischendurch hat's mal super geklappt, obwohl ich am Code garnichts geändert hatte. Nu geht's wieder nicht.
Das öffnen der importierten Mails im Frontend ist scheinbar auch die beste Alternative, denn bei HTML - Mails gehen anscheinend Informationen verloren. In der Mail, mit der ich das getestet habe, hatte ich drei Body-Felder, im Dokument in der DB nur noch eines. ???
Ich bin langsam am verzweifeln. Har irgendjemand noch eine Idee?
Axel
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.
--- Code: ---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)
...
--- Ende Code ---
Ich habe mal ca. 100 Mails am Stück übernommen und alle wurden anschließend in der Ansicht angezeigt.
Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln