Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: udo187 am 13.02.15 - 08:56:45

Titel: Felder in Teilmaske werden nicht angelegt
Beitrag von: udo187 am 13.02.15 - 08:56:45
Guten Morgen!

Ich habe folgendes Problem: Maske mit berechneter Teilmaske, in der neu hinzugefügte Felder beim Erstellen eines neuen Dokumentes (im Backend) nicht angelegt werden.

Bei der Fehlersuche verwende ich folgendes Skript:

   Dim ses As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   
   Set db = ses.CurrentDatabase
   Set doc = New NotesDocument(db)
   
   doc.form = "TEST1"
   doc.name = "Hugo"
   Call doc.ComputeWithForm(False,False)
   
   Call doc.Save(True,True)

In der Maske "TEST1" ist eine berechnete Teilmaske eingebunden, in der ein neues Feld "Vorname" (berechnet beim Anlegen) hinzugefügt wurde.
Das Feld "Vorname" wird im Dokument aber nicht angelegt, die anderen "alten" Felder (z.B. "name" mit Wert Hugo) aber schon...

Erster Gedanke, "ComputeWithForm" läuft auf einen Fehler, bestätigte sich nicht (Auswertung des Rückgabewertes).

ABER:

Wenn ich die Maske "TEST1" 1:1  kopiere, (auf "TEST2"), den Code auf diese Maske ändere und dann ein neues Dokument anlege, wird das neue Feld angelegt.
Lösche ich dann die Originale Maske "TEST1" und benenne die "TEST2" auf "TEST1" und erstelle ein neues Dokument wird das neue Feld wieder nicht angelegt.

Komplette Code wurde bereits mehrfach neu kompiliert - ohne Erfolg.

Jemand eine Idee an was das liegen könnte?



Danke & Gruss Udo
Titel: Re: Felder in Teilmaske werden nicht angelegt
Beitrag von: ghostmw am 13.02.15 - 10:42:32
Hi Udo,

wie sieht denn die Formel für die berechnete Teilmaske aus, vielleicht liegt da der Hund begraben?

Gruß
Marco
Titel: Re: Felder in Teilmaske werden nicht angelegt
Beitrag von: udo187 am 13.02.15 - 10:47:25
Hallo Marco,
danke für den Hinweis.
Ich habe die berechnete Teilmaske auch schon fix hinterlegt mit dem gleichen Ergebnis.
Und wenn die Formel falsch wäre würde das neue Feld in der neuen Testmaske ja auch nicht angelegt werden.

Udo
Titel: Re: Felder in Teilmaske werden nicht angelegt
Beitrag von: ghostmw am 13.02.15 - 11:59:22
Hi,

je nachdem, wie die Formel aussieht, kann das schon was ausmachen so ala
Code
@If ( Form = "Test1" ; "" ; "Teilmaske" )

Gruß
Marco
Titel: Re: Felder in Teilmaske werden nicht angelegt
Beitrag von: Peter Klett am 13.02.15 - 12:15:21
Habe eben getestet:

Sowohl bei fest als auch bei berechnet eingefügten Teilmasken werden die Felder der Teilmaske durch ein ComputeWithForm als Items im Dokument angelegt. Getestet unter 8.5.3 FP6, irgendwie ist mir aber, dass das früher nicht funktioniert hätte, mag mich aber irren.
Titel: Re: Felder in Teilmaske werden nicht angelegt
Beitrag von: Tode am 13.02.15 - 13:22:26
Vielleicht das hier: http://www-01.ibm.com/support/docview.wss?uid=swg1LO55409
Titel: Re: Felder in Teilmaske werden nicht angelegt
Beitrag von: udo187 am 13.02.15 - 13:37:36
So, danke an alle für die Antworten!

Habe das ganze an einer Datenbankkopie durchgestestet, die Maske und die Teilmaske Schritt für Schritt neu aufgebaut, immer wieder mit neuen Feldern getestet. Alles hat erwartungsgemäß funktioniert.
Zurück in die Originaldatenbank - dabei ist mir aufgefallen, dass ich eigentlich keine Aktionen in der (neuen) Hauptmaske mehr drin habe (vergessen zu übernehmen...), beim Öffnen eines Dokumentes Notes aber trotzdem die Aktionen anzeigt.
Ich erkläre mir das so: Irgendwie muss die Maske einen Fehler gehabt haben - Notes griff auf den kompilierten alten Code der Maske zu, der von den neuen Feldern natürlich nichts wusste. Bei einem neuen Maskennamen funktionierte es in Tests ja, nur beim Originalnamen nicht (keine Alias Namen werden verwendet).

Maske nochmals neu aufgebaut, funktioniert jetzt wie erwartet.

Fehler trat auch Client-unabhängig auf (anderer PC und virtuelle Maschine mit Notes 9).

Ich habe gedacht, dass Notes beim kompilieren "meckert" wenn in der Maske ein Fehler vorhanden ist.

Problem ist gelöst, danke für die Hilfe & ein schönes Wochenende!

Gruss
Udo