Hallo ihr,
ich habe ein sehr eigenartiges Problem, bei dem ich leider nicht weiter komm...
Folgende Ausgangslage:
In meiner Datenbank können sich die User die Masken selber zusammenstellen. Die Masken werden dann mit dem NotesDXLImporter über einen Agenten erstellt. Da die User die Masken so ja ändern können muss in der Maske das Hakl "Maske in Dokument speichern" gesetzt sein.
Weiters gibt es in der Maske eine Teilmaske mit Feldern, die immer gleich sind.
Jetzt habe ich das Problem, dass die Maske sauber angelegt wird und ich danach auch Dokumente mit dieser Maske erstellen kann. Wenn das Dokument dann aber gespeichert, geschlossen und wieder geöffnet wird, dann wird die Teilmaske nicht mehr angezeigt.
Wenn man aber die Maske einmal abspeichert, dann klappts. Leider hats mit einem Speichern über Script nicht funktioniert. ComputeWithForm funktioniert bei Gestaltungsdokumenten ja auch nicht.
Ich bilde mir ein, dass es mal gegangen ist, aber auf einmal nicht mehr. Wie schon zu erwarten hab ich aber nix gemacht ;o)
So kann man nachstellen. Einfach eine Datenbank mit einer Teilmaske mit ein bisschen Text oder/und einem Feld mit dem Namen "teilmaske" anlegen. Dann ein Test.txt file auf C:/Temp mit diesem Text erstellen:
(Die ReplicaID müsste angepasst werden...)
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE form SYSTEM 'xmlschemas/domino_8_5_3.dtd'>
<form name='Maske' xmlns='http://www.lotus.com/dxl'
version='8.5' maintenanceversion='3.4' replicaid='C1257E58004C8752'
nocompose='true' publicaccess='false' designerversion='8.5.3'
storeform='true' renderpassthrough='true'>
<noteinfo />
<body>
<richtext>
<pardef id='1' />
<par def='1'>xxx</par>
<subformref name='teilmaske' />
<par def='1'>xxx</par>
</richtext>
</body>
<item name='$SubForm_RepIDs' sign='true'>
<text>0000000000000000</text>
</item>
<item name='$$ScriptName' summary='false' sign='true'>
<text>Maske</text>
</item>
</form>
Dann braucht man noch einen Agent oder eine Aktion mit diesem Code:
Dim strPfad As String
Dim strDxl As String
Dim session As New NotesSession
Dim db As NotesDatabase
Dim importer As NotesDXLImporter
Dim stream As NotesStream
Dim intFileNum As Integer
strPfad = "C:\Temp\Test.txt"
Set db = session.CurrentDatabase
Set stream = session.CreateStream
If Not stream.Open(strPfad, "ISO-8859-4") Then
Messagebox "Cannot open " & strPfad
Exit Sub
End If
If stream.Bytes = 0 Then
Messagebox "File did not exist or was empty"
Exit Sub
End If
Set importer = session.CreateDXLImporter(stream, db)
importer.DesignImportOption = DXLIMPORTOPTION_REPLACE_ELSE_CREATE
Call importer.Process
Call stream.Close()
Hat jemand eine Idee, was da das Problem sein könnte?
lG
-daniel