Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: C_T am 03.03.08 - 13:16:31

Titel: Problem mit AppendDocLink
Beitrag von: C_T am 03.03.08 - 13:16:31
Hallo Alle Zusammen,

habe da mal wieder ein Problem und bräuchte eure Fachmännische Hilfe.

Folgendes:

Es gibt 2 Dokumente (doc und doc2)
Folgende Relevante Felder
Titel (Dialogliste)
Link (RichtTextFeld)             


Das doc kann aus einer Ansicht(view) ausgewählt werden und wenn man nun auf einen Button klickt soll eine Dokumentenverknüpfung zu dem doc2 in das Feld Link erstellt werden. Der angehängt Code läuft ohne Probleme durch, jedoch wird weder die Verknüpfung, noch die, testhalber eingefügte, textzeile eingefügt.

Ich hoffe Ihr könnt mir helfen.


Code
Sub Click(Source As Button)
	Dim workspace As New NotesUIWorkspace
	Dim session As New NotesSession
	Dim uidoc As NotesUIDocument
	Dim doc As NotesDocument
	Dim doc2 As NotesDocument
	Dim db As NotesDatabase
	
	Set uidoc = workspace.CurrentDocument
	Set db = session.CurrentDatabase
	Set doc = uidoc.Document
	

		Dim view As NotesView
		Set view = db.GetView("aView")
		Set doc2 = view.GetDocumentByKey(doc.Titel(0))
		
		Set Link= New NotesRichTextItem(doc,"Link" )				
		doc.RemoveItem("Link")		
		
		Set Link= New NotesRichTextItem(doc,"Link" )			
		Call Link.AppendDocLink(doc2,"TEST" )
		Call Link.AppendText("TEST TEST TEST")
		
		doc.saveoptions = "0"
		Call uidoc.Save
		Call uidoc.Close
		
		Call workspace.EditDocument(True,doc)
		
	
End Sub
Titel: Re: Problem mit AppendDocLink
Beitrag von: klaussal am 03.03.08 - 13:23:35
Zitat
Verwenden Sie 0, damit das Dokument beim Senden nicht gespeichert wird. Das Speichern des Dokuments wird verhindert.

Warum steht da saveoptions = "0"  ?
Titel: Re: Problem mit AppendDocLink
Beitrag von: C_T am 04.03.08 - 14:00:09
hab das saveoptions mal rausgenommen, jedoch funktioniert es immer noch nicht....
Titel: Re: Problem mit AppendDocLink
Beitrag von: koehlerbv am 04.03.08 - 14:12:26
Suche hier nach "reopen". Ganz so einfach funktioniert das nämlich nicht, vor allem darfst Du nicht das gleiche (Backend-)Objekt heranziehen - das muss vorher neu instantiiert werden, sonst bekommst Du wieder das, was Du gerade schon hattest.

Bernhard
Titel: Re: Problem mit AppendDocLink
Beitrag von: m3 am 04.03.08 - 14:13:30
Hmmmm.
Du änderst das Background-Dokument "doc", speicherst dann aber das UI-Dokukment "uidoc". Ob das eine gute Idee ist?
Titel: Re: Problem mit AppendDocLink
Beitrag von: koehlerbv am 04.03.08 - 14:22:52
Das sowieso nicht, Martin. Vor allem, wenn dann noch rich text mit im Boot sitzt. In den reopen-Threads ist das alles ausführlich beschrieben und diskutiert.

Und über Backend with Frontend und Backend versus Frontend muss man sich natürlich vorab schon klar sein - das sind zwei manchmal deutlich unterschiedliche Spielwiesen.

Bernhard
Titel: Re: Problem mit AppendDocLink
Beitrag von: Andrew Harder am 04.03.08 - 14:41:16
* Hole Dir die UNID des Backenddokumentes in einen String
* speichere das Backenddokument
* schliesse das Frontenddokument, ohne das Backenddokument zu überschreiben
* öffne das gespeicherte Backenddokument mit hilfe des Strings unter Punkt 1
* benutzte dieses Dokument zum öffnen des Frontenddokumentes

Beispiele hierfür gibt es hier im Forum. Die Suchfunktion hat mir auch schon oft geholfen ;)
Titel: Re: Problem mit AppendDocLink
Beitrag von: C_T am 04.03.08 - 15:17:10
Vielen Dank

Merkwürdig ist nur das die Methode die ich oben gepostet habe schonmal funktioniert hat....

Hier aber nochmal jetzt der modifizierte Code mit dem es jetzt funktioniert....

Code
		Dim view As NotesView
		Set view = db.GetView("aView")
		Set doc2 = view.GetDocumentByKey(doc.Titel(0))
		
		Set Link= New NotesRichTextItem(doc,"Link" )				
		doc.RemoveItem("Link")		
		
		Set Link= New NotesRichTextItem(doc,"Link" )			
		Call Link.AppendDocLink(doc2,"TEST" )
		Call Link.AppendText("TEST TEST TEST")
		
		Stringt = doc.UniversalID
		Call doc.Save(True,False)
		doc.saveoptions = "0"
		
		Call uidoc.Close
		Set doc = db.GetDocumentByUNID(Stringt)
		
		Call workspace.EditDocument(True,doc)
		

Gruß Christian
Titel: Re: Problem mit AppendDocLink
Beitrag von: koehlerbv am 04.03.08 - 15:45:58
Merkwürdig ist nur das die Methode die ich oben gepostet habe schonmal funktioniert hat....

Da wäre ich vorsichtig: Sowas denkt man manchmal, nach genauer Untersuchung ist dann aber klar, dass dem nicht so ist (weil der Code doch anders war. Und der zuerst gepostete Code kann nicht funktionieren, da sich nicht nur Front- und Backend beissen, sondern auch die Objektzuordnung nicht stimmte. DAS Thema beschäftigt uns schon seit Version 4.6 (seit dem es Frontend-Klassen gibt), und glaube mir: Da hat sich zwischenzeitlich auch nichts geändert (wozu auch).

Bernhard
Titel: Re: Problem mit AppendDocLink
Beitrag von: C_T am 05.03.08 - 08:17:10
Vielen dank werde in Zukunft was das ganze Front und Backend gedöns angeht noch vorsichtiger und aufmerksamer sein...