Domino 9 und frühere Versionen > ND6: Entwicklung

Probleme bei der Übernahme von Mails in eingene DB

<< < (2/3) > >>

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