Domino 9 und frühere Versionen > ND7: Entwicklung

Emails verschieben

(1/2) > >>

oxyd21:
Servus,

ich muss Emails aus einer Maildatenbank in einer andere verschieben. Es müssen alle Daten erhalten bleiben. Jetzt hab ich mal ein kleines Skript geschrieben, jedoch taucht die Mail in der Ziel-DB nicht auf. Vielleicht fällt ja jemanden der Fehler auf und könnt mir weiterhelfen.


--- Code: ---Sub Initialize

Dim session As New NotesSession
Dim allsrcdoc As NotesDocumentCollection
Dim tgtdbname As String
Dim srcdb, tgtdb As NotesDatabase
Dim srcdoc As NotesDocument

Set srcdb = session.CurrentDatabase
Set allsrcdoc = srcdb.UnprocessedDocuments
If allsrcdoc.Count < 1 Then
Messagebox "No document selected.", 16, "Information"
Exit Sub
End If

tgtdbname ="testdb.nsf"
Set tgtdb = New NotesDatabase("",tgtdbname)
If tgtdb.IsOpen = False Then
Messagebox "Target Database not found", 16, "Information"
Exit Sub
End If

Set srcdoc = allsrcdoc.GetFirstDocument
While Not (srcdoc Is Nothing)
Dim newdoc As NotesDocument
Set newdoc = New NotesDocument (tgtdb)
Call srcdoc.copyallitems(newdoc,True)
newdoc.save True, True, True
Set srcdoc = allsrcdoc.GetNextDocument(srcdoc)
Wend

End Sub
--- Ende Code ---

gruss
Michael

Driri:
1) srcdb ist nicht sauber deklariert.

Korrekt wäre : Dim srcdb As NotesDatabase, tgtdb As NotesDatabase

Das dürfte aber nicht die Ursache sein, ist mehr ein Schönheitsfehler.


2) Müssen wirklich sämtliche Details erhalten bleiben ? Weil ansonsten wäre ein srcdoc.CopyToDatabase(tgtdb) einfacher.


3) Das Save ist IMO falsch.

Korrekt wäre : Call newdoc.Save(True, True, True)


4) Was sagt der Debugger ?

Tode:
der code ist komplett korrekt, die von Driri genanntne "fehler" sind keine, sondern nur "Unsauberkeiten".

Wenn ein Dokument, das Du erstellst, in der Ziel- Datenbank nicht auftaucht, kann das zwei theoretische Ursachen haben:

1. Das Dokument wird gar nicht erst erstellt
2. Das Dokument wird erstellt, Du hast aber nach dem speichern (wegen Leserfeldern) keinen Zugriff mehr darauf.

Lösung:

1. Wenn das Dokument gar nicht erstellt wird, kann das (IMHO) bei Deinem Code nur deshalb passieren, weil srcdoc ein  Feld Namens "SaveOptions" hat, das "0" als Wert hat

2. Prüfe mal srcdoc auf Leser- Felder... hast Du eventuell in der Ziel- Datenbank eine Rolle / eine Berechtigung nicht ?

HTH
Tode

Driri:
Ok, die Syntax für Save war mir nicht geläufig. Wieder was gelernt.

koehlerbv:

--- Zitat von: Tode am 11.01.07 - 17:49:15 ---1. Wenn das Dokument gar nicht erstellt wird, kann das (IMHO) bei Deinem Code nur deshalb passieren, weil srcdoc ein  Feld Namens "SaveOptions" hat, das "0" als Wert hat
--- Ende Zitat ---

SaveOptions spielt in diesem Zusammenhang doch keine Rolle - es passiert ja alles im Backend, und da ist SaveOptions ohne Bedeutung.

Berechtigung: Da es sich hier um ein Mailfile handelt ... Eher unwahrscheinlich.

Und was heisst "Mail taucht in de Ziel-DB gar nicht auf"? Erhöht sich die Dokumentanzahl, aber das Dokument ist in einer bestimmten Ansicht nicht sichtbar? Wird eventuell gar im Ordner Inbox nachgeschaut? Da kann es natürlich nicht auftauchen bei dem Code.

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln