Autor Thema: Emails verschieben  (Gelesen 2485 mal)

Offline oxyd21

  • Senior Mitglied
  • ****
  • Beiträge: 371
  • Geschlecht: Männlich
Emails verschieben
« am: 11.01.07 - 16:31:43 »
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

gruss
Michael

Driri

  • Gast
Re: Emails verschieben
« Antwort #1 am: 11.01.07 - 17:09:49 »
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 ?

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Emails verschieben
« Antwort #2 am: 11.01.07 - 17:49:15 »
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
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Driri

  • Gast
Re: Emails verschieben
« Antwort #3 am: 12.01.07 - 08:52:43 »
Ok, die Syntax für Save war mir nicht geläufig. Wieder was gelernt.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Emails verschieben
« Antwort #4 am: 12.01.07 - 09:36:59 »
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

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

Offline oxyd21

  • Senior Mitglied
  • ****
  • Beiträge: 371
  • Geschlecht: Männlich
Re: Emails verschieben
« Antwort #5 am: 12.01.07 - 11:39:17 »
Danke für die Antworten. Bin heut unterwegs und kann es jetzt nicht ausprobieren. Die Dokumentenanzahl sollte erhöht werden, da ich kurz zuvor das getnextdocument vergessen hatte und ich deshalb einige :o Dokumente erstellt hatte.
Sie sollten eigentlich auch nicht in der Inbox auftauchen sondern in einem Folder. Jedoch soll der Vorgang aus einer Inbox heraus angestossen werden. 

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Emails verschieben
« Antwort #6 am: 12.01.07 - 11:50:19 »
Wenn Du die kopierten Dokumente in einem Folder sehen willst, musst Du sie da aber auch explizit hintun. Deinem Code fehlt das.

Wegen "die Dokumentenanzahl sollte erhöht werden ...": Das ist uns allen schon klar - deswegen erstellst Du ja in der Ziel-DB auch neue Dokumente. Die Frage ist: Erhöht sich nach Deiner Aktion die Anzahl oder nicht?

Bernhard

Offline oxyd21

  • Senior Mitglied
  • ****
  • Beiträge: 371
  • Geschlecht: Männlich
Re: Emails verschieben
« Antwort #7 am: 15.01.07 - 09:38:36 »
Ja, die Anzahl erhöht sich. Den Code habe ich auch angepasst, dass das Dokument in den Folder geschoben wird. Geht dies mit dem PutInFolder so?

Code
	While Not (srcdoc Is Nothing)
		Dim newdoc As NotesDocument
		Set newdoc = New NotesDocument (tgtdb)
		Call srcdoc.copyallitems(newdoc,True)
		Call newdoc.PutInFolder("CRM\Inbound Mail")
		Call newdoc.Save(True, True, True)
		Set srcdoc = allsrcdoc.GetNextDocument(srcdoc)
	Wend

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Emails verschieben
« Antwort #8 am: 15.01.07 - 09:49:00 »
Ich hatte mal ein ähnliches Problem. Bei mit lags damals an dem $Ref-Feld. Schau mal in den Dokument-Eigenschaften ob die Mails, die du verschiebst ein solches Feld haben.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline oxyd21

  • Senior Mitglied
  • ****
  • Beiträge: 371
  • Geschlecht: Männlich
Re: Emails verschieben
« Antwort #9 am: 15.01.07 - 10:38:39 »
Problem gelöst; mit nem 2. Save funktioniert es.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz