Domino 9 und frühere Versionen > ND6: Entwicklung

Problem mit IsNewDoc

(1/2) > >>

stitze:
Morgen liebes Notes Forum User

ich hab da wieder ma ein Prob wo ich nicht so ganz hinter steige.

Ich habe ein Hauptdokument. Wenn ich dann auf die Aktion "Neuer Beitrag" klicke wird wie folgt ein Antwortdokument erstellt und geöffnet.


--- Code: ---Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim database As NotesDatabase
Dim uidocProblem As NotesUIDocument
Dim documentProblem As NotesDocument
Dim documentResponse As NotesDocument

Set uidocProblem = workspace.CurrentDocument
Set documentProblem = uidocProblem.Document
Set database = session.CurrentDatabase

Set documentResponse = New NotesDocument( database )

Call documentResponse.MakeResponse( documentProblem )
documentResponse.Form = "frmBeitrag"
documentResponse.UnlockFlag = "1"

Call workspace.EditDocument( True, documentResponse )
End Sub

--- Ende Code ---

Beim speichern des Antwortdokumentes sollen nun unterschiedliche Aktionen durchgeführt werden. Unter anderem soll eine eMail verschickt werden, wenn das Dokument ein neues Dokument ist. Dafür habe ich den entsprechenden Code in die QuerySave Methode des Antowrtdokumentes geschrieben.


--- Code: ---Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim session As New NotesSession
Dim database As NotesDatabase

Dim uncachedProfileDoc As New UncachedProfile( "UncachedProfileDocument" )
Dim parentDocument As NotesDocument
Dim responseDocument As NotesDocument
Dim mail As NotesDocument
Dim subject As NotesItem
Dim sendTo As NotesItem
Dim body As NotesRichTextItem

Dim strSubject As String
Dim strUser As String
Dim strSupportGroup As String

Dim rtfParentHistory As NotesRichTextItem

Set database = session.CurrentDatabase

Set responseDocument = Source.Document
Set parentDocument = database.GetDocumentByUNID( responseDocument.ParentDocumentUNID )

If Source.IsNewDoc = True Then
Call responseDocument.ReplaceItemValue( "UnlockFlag", "1" )

Set mail = New NotesDocument( database )

strSubject = "Neuer Beitrag " & Source.FieldGetText( "Briefdescription" ) & " zu Problem " & parentDocument.GetItemValue( "Subject" )

Set subject = New NotesItem( mail, "Subject", strSubject )

strSupportGroup = parentDocument.GetItemValue( "PickSuppourtgroup" )

strUser = uncachedProfileDoc.GetUserProfileEntry( "SupportgroupSave" )
End If

Call AddHistory( 1, Source.FieldGetText( "Briefdescription" ), responseDocument.User(0), parentDocument )

If responseDocument.CheckboxSolution(0) = True Then
Call parentDocument.ReplaceItemValue( "IsSolved", "1" )
Call parentDocument.Save( True, False )
End If

Call AddHistory( 2, parentDocument.GetItemValue( "Subject" ), responseDocument.User(0), parentDocument )
End Sub

--- Ende Code ---

Aber irgendwie geht der liebe Herr Notes nicht in den Abschnitt nach If Source.IsNewDoc Then ... obwohl es ein neues Dokument ist. Ich bin  ???

Komischer weise funktionier der Debugger auch nicht, heisst obwohl der an ist geht er nicht in den Quelltext rein.

Danke für Eure wie immer kompetente Hilfe bereits im Vorraus

Mfg

Sebastian

jor:
Hi Sebastian,

hast du schonmal im Debugger nachgeschaut, welchen Wert die Variable/Eigenschaft "IsNewDoc" hat? Ich hatte ähnliches Problem zu lösen und habe es so umgesetzt:
Im Event Queryopen habe ich mir den Wert des Status in eine "globale" Variable geschrieben. Diese kann dann in anderen Events ausgelesen und bewertet werden.

Ciao, Volker

stitze:
Da ich leider auch probs mit meinem Debugger habe (wie oben beschrieben ;) ) habsch das nicht geprüft aber die Idee mit dem QueryOpen find ich gut teste ich direkt ma an, Danke. jor

stitze:
So hab das mal angetestet. Im QuerOpen gehts nit, da darf ich keine Werte in Felder schreiben, zumindest nicht über das NotesUIDocument, da will ichs aber  ^-^

So dann hab ich es einfach ins PostOpen reingepackt müsste ja auch gehen, aber IsNewDoc ist imma False, aber dürfte gar nit False sein ich speicher doch vorher nicht.

jor:
Jep, schreiben in Felder im Queryopen geht nicht, ich hatte es so verstanden das du dei Eigenschaft ISNewDoc auslesen möchtest, das geht. An Feldwerte kommst du, wenn du
z. B. folgendes nutzt: Variable = Source.Document.GetItemValue("blabla").
Ich nutze gern diesen Event, da ich hier schonmal abfrage ob Zugriffe auf ein Dok erlaubt sind, sonst schliesse ich es sofort. Dadurch bekommt der Benutzer maximal einen Hinweistext, den ich hinterlegt habe, zu sehen. Gegen Postopen spricht m. M. nach auch nichts.

Have a nice day, Volker

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln