Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: C_T am 24.06.09 - 08:50:22

Titel: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: C_T am 24.06.09 - 08:50:22
Hallo liebe Notesgemeinde,

ich habe folgendes Problem:

Beim öffnen eines Dokumentes, welches eine Queryopen und ein Postopenfunktion hat, werden bei einer Feldzuweisung im Postopen alle Inhalte im Dokument gelöscht.

Also

1. Doppelklick auf das gewünschte Dokument

2. Queryopen kontrolliert ob der Benutzer rechte hat das Dok zu öffnen (hat er)

3. QueryOpen wir gestartetet

3.1. DAs Dokument wird auf uidoc.editmode = true gesetzt
3.2. Es wird geprüft ob die Variable/Feld auf "True" gesetzt ist.
3.3. Das Feld wird auf "True" gesetzt --> Inhalt des Dokuments wird gelöscht
3.4. - XXX andere Sachen

Anbei die Stelle die Probleme verursacht

Code
Sub Postopen(Source As Notesuidocument)
	
REM Umgebung
    Dim workspace As New NotesUIWorkspace
    Dim session As New NotesSession
	
REM Standard
    Dim doc As NotesDocument
    Dim db As NotesDatabase
    Set db = session.CurrentDatabase
    Set doc = source.Document

    Call Anonymisieren

    Call SetBewertung
End Sub

Sub Initialize
    Set workspace = New NotesUIWorkspace
    Set  session = New NotesSession
    Set db = session.CurrentDatabase
    Set uidoc = workspace.CurrentDocument
    Set doc = uidoc.Document
End Sub

Sub Anonymisieren '(Aufgerufen durch QueryOpen)
    Set uidoc = workspace.CurrentDocument
    uidoc.EditMode = True
End Sub

Sub SetBewertung '(Aufgerufen durch QueryOpen)
    If Not (doc.Anonym(0) = "True")  Then
        doc.Anonym = "True" '<-- Hier werden die INhalte gelöscht
        If uidoc.EditMode= False Then
            uidoc.EditMode = True
        End If
        If doc.Bewertungskey(0) <> "" Then 
            Call uidoc.Save
        End If
    End If
.....
End Sub

P.S. Der Code des queryopens und postopens liegen in einer Scriptlibary....

Ich hoffe ihr könnt mir helfen und ich konnte mich verständlich ausdrücken

MFG
Christian
Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: DannyCrown am 24.06.09 - 08:58:25
mh, weiß zwar nicht warum es so nicht geht, aber hast du es mal mit der anderen Schreibweise probiert?

call doc.ReplaceItemValue( "Anonym", True) ?
Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: C_T am 24.06.09 - 09:19:05
ich habe mal die schreibweise geändert keine änderung.

Doch ich habe jetzt auch mal testweise die zeile auskommentiert und das dokument wird nicht gelöscht.....

Ich meine häääää warum?
Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: ascabg am 24.06.09 - 09:20:25
Hallo,

Ich frage auch mal so in s Blaue hinein.

Werden die Werte wirklich geloescht (Felder geleert) oder existieren "HideWhen-Formeln", die die betreffenden Felder einfach nur ausblenden, wenn der Wert im Feld "Anonym" auf den Wert "True" gesetzt wird.


Andreas
Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: DAU-in am 24.06.09 - 09:45:22
wenn du dir im Debugger die Items ansiehst, werden die wirklich an dieser Stelle gelöscht?
Haben die bis zu dieser Stelle Werte und stehen sie auf ""?


Falls nicht:
Wird evt. zur Anzeige danach eine andere Maske angezogen?

grüsse

Dau-in
Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: tks am 24.06.09 - 10:43:20
Hhhmmm.....

durch doc.Anonym = "True"

werden doch keine Felder gelöscht. Hier wird nur ein Feldwert gesetzt. Wo passiert die Löschung?

Und das setzen des Feldes im Backend-Dokument hat zunächst mal noch keine Auswirkung auf die Felder im Front-End (uidoc). Liegt hier vielleicht auch schon das Problem?
Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: C_T am 24.06.09 - 11:10:11
Also hi schonmal danke für eure mühe....


Folgendes ich schaue mir das ganze per debugger an somit konnte ich so genau feststellen wann die felder geleert werden. Scheinbar werden die Felder nur im UIDOC geleert was aber beim speichern halt aufs doc auswirkt, logisch.

Dennoch verstehe ich nicht warum das an dieser stelle passiert.

P.S. Die Felder in dem Dokument sin eigentlich fast alle Berechnet (@thisvalue)

und diesen Code und auch die handhabe mit den Feldern benutzte ich noch in anderen Dokumenten(Masken) in der gleichen DB und dort funzt es...
Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: C_T am 24.06.09 - 11:11:58
P.S. und nein dort gibt es keine HideWenn Formeln
Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: DAU-in am 24.06.09 - 13:25:55
Ich komme jetzt durcheinander:

- du hast ein Backenddokument doc, auf das du über Source.document zugreifst

- du rufst die Routine 'anonymisieren'  (blöder Name für das, was sie tut) , definierst dir ein Frontenddokument uidoc, auf das du über den Workspace zugreifst und setzt dieses in den Editiermodus

- du rufst die routine 'Bewertung' auf und und weist im Backenddokument einem Item einen neuen Wert zu:
doc.Anonym = "True" '<-- Hier werden die INhalte gelöscht

und im Debugger siehst du, wenn er auf doc.Anonym = "True" ' steht, Werte im uidoc eingetragen, und wenn er eine Zeile weiterspringt nicht mehr?

Ist das uidoc wirklich das Frontenddokument zum Backenddokument, oder wird da irgendwie ein  ganz neues Dokument erzeugt? Das würde erklären, warum berechnete Felder mit @thisvalue plötzlich auf leer stehen.

Und eine blöde Frage: warum wird im Backend ein Item gesetzt, und danach bei einer bestimmten Bedingung das Frontenddokument gespeichert?





Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: C_T am 24.06.09 - 14:41:03
@Dau-in:

Also den Debugger habe ich nicht maximiert und sehe daher neben meinem Debuggerfenster wie das Dokument im Frontend geöffnet wird. DIe Felder im Front sowie Backend sind bis zu der Zeile "Doc.anonym = "true" identischt und beide gefüllt.

Nachdem aber diese Zeile bearbeitet ist, verschwinden die Inhalte aus dem Frontend dokument.
Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: koehlerbv am 24.06.09 - 14:53:01
Wie und wann instantiierst Du eigentlich uidoc und doc für Deine Routine SetBewertung?
Im QueryOpen hast Du ja noch keinen Zugriff auf Items im Backend. Und wenn Du dann noch ein uidoc.Save machst, machst Du natürlich alles platt - Du hast ja noch nichts an der Hand.

Bernhard
Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: C_T am 24.06.09 - 15:41:56
wie oben geschrieben im Initialize der ScriptLibary....


Habe auch schon probiert direkt in dem Sub "SetBewertung" die sachen zu deklarieren und zu definieren hat aber auch keine änderung gebracht
Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: Gandhi am 24.06.09 - 15:47:54
Warum setzt Du das Feld eigentlich überhaupt im Backend - wenn Du gleichzeitig das Dokument im Frontend öffnest?
Warum setzt Du das Feld nicht im Frontend?
Bzw: Was willst Du damit erreichen?

Mal völlig davon abgesehen, dass das Verhalten Deiner Dokumente nicht nachvollziehbar ist...jedenfalls nicht für mich.
Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: C_T am 29.06.09 - 09:01:54
@Ghandi

Das Verhalten des DOkuments ist für mich auch nicht nachvollziehbar, deshalb hab ich ja gehofft hier auf hilfe zu stoßen.

Aber wegen dem Frot/Backend thematik werde ich nochmal ausprobieren das ich den ganzen kram mal nur übers frontend regle
Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: C_T am 29.06.09 - 14:09:24
Hallo liebe Gemeinde,

zuerst danke ich euch vielmals für eure Hilfe...

Es scheint als ob ich den Fehler gefunden habe. Es gab ein Feld in der Maske welches ich nicht anklicken d.h. markiere und auswählen konnte. Da dieses Feld leer ist sowie bei allen anderen Gutachten auch, habe ich das Feld gelöscht und es scheint als ob es nun funktioniert.


Also nochmals vielen DANK

Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: ascabg am 29.06.09 - 14:14:01
Hallo,

War eventuell in diesem Feld der Code versteckt, der bei "Doc.Anonym=True" die beschriebenen  Aktionen ausgefuehrt hat?


Andreas
Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: DAU-in am 29.06.09 - 15:26:18
Hallo,

War eventuell in diesem Feld der Code versteckt, der bei "Doc.Anonym=True" die beschriebenen  Aktionen ausgefuehrt hat?


Andreas

Aber durch das Setzen eines Items im Backend werden doch keine Aktionen auf Feldebene ausgelöst?
Und da das Backenddokument nicht gespeichert wird und kein Reload stattfindet, sollte doch auch das Speichern des Frontenddokumentes keinerlei Auswirkungen haben, da das Frontenddokument doch nichts von der Änderung des Backenddokumentes weiss?

Oder liege ich da falsch?

grüsse

Dau-in
Titel: Re: Inhalte eines Dokuments werden gelöscht bei Feldzuweisung
Beitrag von: C_T am 29.06.09 - 15:29:00
@ascabg

Nein,

wie gesagt das Feld war absolut defek, man konnte es nicht mal mehr markeiren um zu sehen ob da code hinter versteckt ist, jedoch auf das Feld anoym kann es kein zugriff gehabt haben, da das Feld Anonym erst vor kurzem neu hinzugefügt wurde.

Es scheint das Dieses Feld einfach das DOkument (Wie auch immer) zerpflückt hat.

@Dau-In

das ist eigentlcih korrekt sowweit ich das auch sehe, jedoch hat das ja scheinbar weder was mit dem Scrupt noch mit dem Front bzw Backenddokument zu, es schient wie gesagt lediglich an dem Feld gelegen haben...