Autor Thema: Via Forall Item "PublicEncryptionKeys" löschen  (Gelesen 2312 mal)

Offline -Michael-

  • Aktives Mitglied
  • ***
  • Beiträge: 153
  • Geschlecht: Männlich
    • Software Guide
Via Forall Item "PublicEncryptionKeys" löschen
« am: 28.09.04 - 22:39:42 »
Hi,

folgende Ausgangssituation:

Ich kopiere über RenderToRTItem ein Maildokument in eine andere DB in ein Richtextfeld. Klappt soweit einwandfrei.
Nun möchte ich das Dokument entschlüsseln, falls das Mail verschlüsselt ist. Soweit auch kein Problem.
Das Zieldokument ist jedoch auch u.U. public verschlüsselt.

Daher hab ich folgenden Code in meinem Script, das ein Mail in das Dokument rendert:
Code
.....
	vPublicEncNames = docThis.PublicEncryptionKeys
.....
	Call docThis.RemoveItem(strRTName)
	Set rtitem = New NotesRichTextItem( docThis, strRTName )
	Call docMail.RenderToRTItem(rtitem)
.....
	If docMail.IsEncrypted Then
		Forall itm In docThis.Items
			If itm.Name = "PublicEncryptionKeys" Then 
				Call itm.Remove
			End If
			Call docThis.Save(False,False)
		End Forall
		If Not vPublicEncNames(0) = "" Then	
			Dim itmPubEnc As New NotesItem(docThis, "PublicEncryptionKeys", vPublicEncNames, NAMES)
		End If
	End If
............

Was macht der Code:
Ich lese im bestehenden Doc erstmal den Iteminhalt "PublicEncryptionKeys" in eine Variable (zum "merken").
Dann rendere ich das Mail in mein Richtextfeld.
Dann werfe ich alle Items "PublicEncryptionKeys" raus, falls das Mail verschlüsselt ist.
Zum Schluss erzeuge ich ein neues Item "PublicEncryptionKeys" und fülle es wieder mit dem zuvor gemerkten Iteminhalt.

Problem
Meine Forall - Schleife löscht wohl nicht alle Items "PublicEncryptionKeys".
Wenn ich nämlich das docThis vorher schon verschlüsselt war, gibt es nach dieser Aktion 2 Felder "PublicEncryptionKeys" mit gleichem Inhalt (Inhalt ist jeweils = vPublicEncNames).

Frage
Kann es sein, dass
Code
	Forall itm In docThis.Items
		If itm.Name = "PublicEncryptionKeys" Then 
			Call itm.Remove
		End If
	End Forall
nicht zuverlässig arbeitet, also damit nicht alle Items mit dem Namen "PublicEncryptionKeys" gelöscht werden? Ich habe schon diverse call docThis.save eingebaut, um sicherzugehen, dass es daran nicht liegt.
2 Items "PublicEncryptionKeys" möchte ich eigentlich nicht als Ergebnis haben, da evtl. damit andere Nachteile entstehen könnten.

Grüße,
Michael

[EDIT]
Mir ist noch was eingefallen:
Wenn ich anstatt
Code
			Dim itmPubEnc As New NotesItem(docThis, "PublicEncryptionKeys", vPublicEncNames, NAMES)
einfach ein
Code
docThis.PublicEncryptionKeys = vPublicEncNames
mache, dann klappt es, es ist also dann nur 1 Item vorhanden. Habe dabei aber ein mulmiges Gefühl, da ja eigentlich PublicEncryptionKeys gar nicht mehr da sein sollte nach dem Forall und speichern...
« Letzte Änderung: 28.09.04 - 22:45:19 von -Michael- »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz