Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: stitze am 31.03.06 - 08:25:09

Titel: Problem mit IsNewDoc
Beitrag von: stitze am 31.03.06 - 08:25:09
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

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

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
Titel: Re: Problem mit IsNewDoc
Beitrag von: jor am 31.03.06 - 08:32:28
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
Titel: Re: Problem mit IsNewDoc
Beitrag von: stitze am 31.03.06 - 08:34:06
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
Titel: Re: Problem mit IsNewDoc
Beitrag von: stitze am 31.03.06 - 08:41:50
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.
Titel: Re: Problem mit IsNewDoc
Beitrag von: jor am 31.03.06 - 09:03:25
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
Titel: Re: Problem mit IsNewDoc
Beitrag von: Axel am 31.03.06 - 09:17:03
Über diese Problematik bin ich auch schon des öfteren gestolpert.

Wenn ein Dokument im Backend angelegt und dann im Frontend geöffnet wird, zieht die Abfrage Source.IsNewDoc nicht mehr. Auch wenn das Dokument noch nie gespeichert wurde.

Du könntest es mal mit der Backend-Variante notesdocument.IsNewNote versuchen.


Axel
Titel: Re: Problem mit IsNewDoc
Beitrag von: stitze am 31.03.06 - 09:31:16
Danke Axel werd ich machen, ich habs jetzt ähnlich gelöst wie der Volker das vorgelschlagen hat. Ich hab mir ein Feld erstellt NewDoc, und überprüfe beim PostOpen obs leer ("") ist wenn ja, schreib ich ne 1 rein, beim speichern schrieb ich ne 0 rein. steht ne 1 in dem feld ist es ein neues dok. So funzt das, mich würd nur mal jucken warum ibm dieses feature da wieder rein gebastelt hat ;)

mfg

sebastian

probiere das mit dem IsNewNote aber auch nochma aus.
Titel: Re: Problem mit IsNewDoc
Beitrag von: stitze am 31.03.06 - 10:00:25
Mh mit IsNewNote funzt irgendwie auch nicht, weiss auch nicht genau warum, die vermutung das es daran liegt das die werte noch nicht im backend angekommen sind liegt ja eigentlich nahe, aber wenn ich es noch nicht gespeichet habe ist das ja eigentlich logisch, nur dann erschliest sich mir nicht so der sinn von IsNewNote?
Titel: Re: Problem mit IsNewDoc
Beitrag von: Axel am 31.03.06 - 10:13:33
Ich hab' das bei mir mal probiert und es funzt einwandfrei. Wo und wie hast du denn die Abfrage eingebaut?

Axel