Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: g202e am 23.09.04 - 17:39:48

Titel: Verschlüsseltes Feld lässt sich nicht per Agent drucken ???
Beitrag von: g202e am 23.09.04 - 17:39:48
Hallo,
ich habe gesucht, aber nix Zielführendes gefunden.
In den zu druckenden Dokumenten gibt es ein verschlüsseltes Feld. Ich habe den Schlüssel ordnungsgemäß in meine ID importiert und kann beim normalen Öffnen der Dokumente den Inhalt des verschlüsselten Feldes lesen.
Ich habe hier nun einen per Button zu startenden Agenten welcher bestimmte selektierte Dokumente in Listenform ausdrucken soll. Das funktioniert so, dass ich mir eine Druckmaske erstellt habe, welche durch eine Tabelle dafür sorgt, dass die Liste ordentlich aussieht.
Der Agent wechselt also für jedes zu druckende Dok die Maske gegen diese Druckmaske aus. Die Feldnamen in der Original- und Druckmaske sind gleich und somit werden alle Feldwerte übernommen(im Debugger geprüft). Anschließend wird je gelesenem Dokument ein RenderToRTItem in das endgültige Drucklistendokument durchgeführt. Dieses wird dann im Editmodus geöffnet um eine evtl. Bearbeitung vor dem Drucken zu ermöglichen.
Beim Rendern geht der Inhalt des verschlüsselten Feldes verloren. Warum??? Wie ändere ich das?
------------------------------
Codeschnipsel:
....
   Set cdb = se.Currentdatabase
   Set docDruck = New NotesDocument( cdb )
   Set rtItem = New NotesRichTextItem( docDruck, "DruckListe" )
   docDruck.Form = "DMaske"
   Call docDruck.Save( True, True )
.........dann kommt die Dok-Auswahl und ergibt eine Collection............
   If coll.count > 0 Then
      Set doc = coll.GetFirstDocument
      Do Until doc Is Nothing
               Call doc.ReplaceItemValue( "Form", "frmDruck" )
         Call doc.RenderToRTItem( rtItem )
         Call docDruck.Save( True, True )
         Set doc = coll.GetNextDocument( doc )
      Loop
      Set uidoc = ws.EditDocument( False, docDruck )
          End If
Titel: Re:Verschlüsseltes Feld lässt sich nicht per Agent drucken ???
Beitrag von: koehlerbv am 23.09.04 - 20:55:48
Alle Felder sind gleich ? Auch $Seal ?

Bernhard
Titel: Re:Verschlüsseltes Feld lässt sich nicht per Agent drucken ???
Beitrag von: TMC am 23.09.04 - 23:55:19
Alle Felder sind gleich ? Auch $Seal ?

Jo, genau diese sind (überlebens-)wichtig wenn Du verschlüsselte Items weiterträgst.

Kleiner Tipp zum testen:
Kürze Deinen Code auf das minimum und lass Dir den Text eines verschlüsselten Feldes des Zieldoks z.B. in einer Messagebox anzeigen (z.B. via notesItem.Text). Verzichte erstmal auf RendertoRTItem. Dadurch kannst Du das schön eingrenzen.
Titel: Re: Verschlüsseltes Feld lässt sich nicht per Agent drucken ???
Beitrag von: g202e am 24.09.04 - 11:19:19
Danke. ;D
Ich denke, daran wird's liegen, aber: Wenn ich mir die zu druckenden Dokumente genauer betrachte, dann gibts dort jeweils ein Feld "$Seal", aber mehrere (3) Felder "$Sealdata".
Muss ich jetzt auch drei "$Sealdata" anlegen? Oder ist das nur eine Frage der Darstellung in den Dokumenteigenschaften?
(Ich habe in "LDD Today" einen Artikel gefunden, wo jeweils von einem Feld gesprochen wird. BTW: Ich kann doch gar nicht mehrere Felder mit gleichem Namen anlegen, oder? )
Titel: Re: Verschlüsseltes Feld lässt sich nicht per Agent drucken ???
Beitrag von: g202e am 27.09.04 - 12:11:57
Jetzt muss ich doch noch mal nachhaken: Die Felder haben ja nun Datentypen, welche ich gar nicht anlegen kann.
$Seal:Datentyp= Verschlüsselungssiegel;
$SealData: Datentyp= Verschlüsselte Daten;
Also: Was muss ich denn nun für Felder anlegen? ??? ??? ???
Titel: Re: Verschlüsseltes Feld lässt sich nicht per Agent drucken ???
Beitrag von: umi am 28.09.04 - 10:46:52
Hast Du mal versucht das Feld auszulesen, bevor Du die Maske wechselst? Bzw. ist das Feld in der Druckmaske auch mit dem gleichen Key verschlüsselt?
Titel: Re: Verschlüsseltes Feld lässt sich nicht per Agent drucken ???
Beitrag von: g202e am 28.09.04 - 17:46:24
Das Problem ist ja, dass es das verschlüsselte Item im Dokument nicht gibt.
Ist ja logisch: Die zu verschlüsselnden Daten und der Schlüssel stehen ja in den Feldern $Sealdata bzw. $Seal.
Somit kann ich da nichts auslesen oder anzeigen.
Und was nun? Ich bin ratlos! ???
Titel: Re: Verschlüsseltes Feld lässt sich nicht per Agent drucken ???
Beitrag von: TMC am 28.09.04 - 21:21:56
Mal anders herum aufgerollt.

Du hast ein Dokument. das ist public verschlüsselt. Das Dokument wurde erstellt mit Maske A.

Dann ziehst Du eine Kopie von Maske A, positionierst Felder anders, und speicherst diese als Maske B.

Wenn Du nun per Script das Dokument über Maske B öffnest und druckst:
Code
Dim uidocTempPrint As NotesUIDocument
doc.Form = "Maske B"
Set uidocTempPrint = uiws.EditDocument( False, doc, True)
Call uidocTempPrint.Print (1)
Call uidocTempPrint.close
dann sollte nach meinem Verständnis alles gedruckt werden, wenn Du selbst das Dokument erstellt hast und Du den Code (z.B. über Button) ausführst.

Teste das mal...

*** EDIT ***
Ups, hab ganz übersehen, dass Du ja einen Rendertortitem machst. OK, da mag das anders aussehen  ::) :P
Titel: Re: Verschlüsseltes Feld lässt sich nicht per Agent drucken ???
Beitrag von: -Michael- am 28.09.04 - 22:50:37
Hi,

hast Du mal versucht, in dem Zieldokument die Verschlüsselung zu entfernen?

Also ein

Code
		Forall itm In docThis.Items
			If itm.Name = "PublicEncryptionKeys" Then 
				Call itm.Remove
			End If
		Call docThis.Save(False,False)
		End Forall

Ich habe allerdings auch gerade ein (anderes) Verschlüsselungsproblem, aber dies hier sollte imho klappen.
Hier ist zur Info mein Thread:
http://www.atnotes.de/index.php?topic=18395.0

Michael
Titel: Re: Verschlüsseltes Feld lässt sich nicht per Agent drucken ???
Beitrag von: koehlerbv am 29.09.04 - 09:26:02
Wo ist Dein Fred, Michi ? Der Link zeigt genau auf diesen hier - da beisst sich dann die Katze in den Schwanz ...

Bernhard
Titel: Re: Verschlüsseltes Feld lässt sich nicht per Agent drucken ???
Beitrag von: g202e am 29.09.04 - 09:55:24
Nur  mal generell: Es geht hier nicht um Public sondern Secret Key Verschlüsselung!
(Ich weiß jetzt nicht, ob das für die Lösung von Interesse ist)
Fakt ist: Es gibt in den verschlüsselten Doks kein Item Public sondern SecretEncryptionKeys!
Der Schlüssel und die verschlüsselten Daten stehen in $Seal/$Sealdata; aber sind eben nicht lesbar.
Damit stehe ich immer noch ratlos da!
Titel: Re: Verschlüsseltes Feld lässt sich nicht per Agent drucken ???
Beitrag von: g202e am 29.09.04 - 13:52:45
Zwischenstand: Das Entfernen des Items "SecretEncryptionKeys" nach der Methode von Michael hat nichts gebracht.