Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: RonMat am 23.07.12 - 09:10:13
-
Hallo Gemeinde,
vielleicht habe ich zur Zeit ein Brett vorm Kopf? Ich bekomme es einfach nicht hin per Script ein Dokumentenlink zu erzeugen welches in einer anderen Datenbank in einem Dokument eingefügt wird.
Habe es mit versucht mit AppendDocLink - kein Erfolg.
..................
'Link herstellen
Dim newDoc As NotesDocument
Dim rtitem As NotesRichTextItem
Set newDoc = New NotesDocument( sourcedb )
Set rtitem = New NotesRichTextItem( newDoc, "Doc_link" )
Call rtitem.AppendDocLink( targetdb, targetdb.Title )
Mache ich einen Gedankenfehler????
-
An dem Script ist soweit nichts Verkehrtes zu erkennen. Was funktioniert denn nicht, bzw. wie wirkt sich das Nichtfunktionieren aus?
-
Hallo,
Fragen wir einmal nach dem 'Standardfehler'.
Ist denn in der Datenbank, in der sich das Dokument befindet, auf welches verlinkt wird, denn eine Standardansicht definiert?
Andreas
-
am Ende fehlt noch ein
Call rtitem.update()
Gruß
Roland
-
..................
'Link herstellen
Dim newDoc As NotesDocument
Dim rtitem As NotesRichTextItem
Set newDoc = New NotesDocument( sourcedb )
Set rtitem = New NotesRichTextItem( newDoc, "Doc_link" )
Call rtitem.AppendDocLink( targetdb, targetdb.Title )
Dokumentenlink ?
Das ist doch ein Datenbank-Link oder ?
-
am Ende fehlt noch ein
Call rtitem.update()
Gruß
Roland
Kommt drauf an, was er weiter mict dem Dokument macht. Er ist ja im Backend ...
-
@Peter
ich hab festgestellt, dass die zuvor durchgeführten RT-Aktionen manchmal "verschluckt" werden, wenn man sie nicht mit .update() (oder .compact) abschließt.
Darum hab ich mir angewöhnt, IMMER am Schluss ein update auf dem RT-Item aufzurufen.
Dies steht auch so in der Hilfe zu .update():
Operations on a rich text item are queued for efficiency. The order and time of completion are not predictable. Use this method to ensure that processing is complete at a certain point.
was meinst du mit "Er ist ja im Backend.."? RT-Items kann man ja sowieso nur im Backend ändern.
Gruß
Roland
-
Danke für Euere Zeit, zur besseren Verständlichkeit: ich hole ein paar Informationen aus der Email, erstelle eine neue Form und schreibe diese Werte dort gleich hinein ( das funktioniert auch), nun möchte ich den Link in ein Feld in der neuen Form einfügen der den Link zum Mail enthält ( das funzt nicht).
Mein Script hierfür:
' EMAIL auslesen
Dim session As New NotesSession
Dim sourcedb As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Set sourcedb = session.CurrentDatabase
Set collection = sourcedb.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
Dim res1,res2 As variant
While Not(doc Is Nothing)
res1=doc.Getitemvalue("From")
res2=doc.getitemvalue("Subject")
Set doc = collection.GetNextDocument(doc)
Wend
'Initialisierung Target
Dim targetdb As New NotesDatabase( "NAPPDEHAM01", "Databases\IT\Helpdesk.nsf" )
Dim targetsession As New NotesSession
Dim db As NotesDatabase
Dim targetdoc As NotesDocument
'Link herstellen
Dim newDoc As NotesDocument
Dim rtitem As NotesRichTextItem
Set newDoc = New NotesDocument( sourcedb )
Set rtitem = New NotesRichTextItem( newDoc, "Doc_link" )
Call rtitem.AppendDocLink( targetdb, targetdb.Title )
Call rtitem.update()
'Target Database
Set db = targetsession.CurrentDatabase
Set targetdoc = targetdb.CreateDocument
'Auffüllen der Felder in der Form "User Call"
targetdoc.form="User_Call_New*19_07_12"
targetdoc.Call_Contact=res1
targetdoc.Comment=res2
Call targetdoc.save(True,True)
-
Hallo,
Wie schon geschrieben wurde, wird hier in diesem Fall kein Dok-Link erstellt, sondern ein Datenbanklink.
Dieser Verweis auf die Datenbank in targetdb
Dim targetdb As New NotesDatabase( "NAPPDEHAM01", "Databases\IT\Helpdesk.nsf" )
Und wenn es denn ein Dok-Link werden soll, nochmal die Frage, ist in dieser Datenbank eine 'Vorgabeansicht' definiert.
Andreas
-
Ich gebe ascabg Recht. Ich habe das wohl komplett übersehen.
-
was meinst du mit "Er ist ja im Backend.."? RT-Items kann man ja sowieso nur im Backend ändern.
Klar, habe ich mich ungenau ausgedrückt. Mit Backend meinte ich, dass das Dokument nicht geöffnet ist. Wenn ich in einem geöffneten Dokument (natürlich über das Backend) im Richtextitem "rumfummel" ist das was anderes, als wenn ich es vor dem Öffnen erstelle und speichere. Dann brauche ich m.E. kein Update (habe es selbst noch nie benutzt, werde ich in der Zukunft mal dran denken).
-
@RonMat:
Was ist denn nun eigentlich Dein Problem, außer, dass es "nicht funktioniert"?
Ist kein Link da?
Ist ein Link da und der geht nicht?
Ist es ein Datenbanklink anstelle eines Doklinks (das wurde ja schon aufgezeigt)?
oder was sonst?
"Funktioniert nicht" lässt sich schwer analysieren
-
Ich brauche ein DocLink und kein Link in die DB
-
Bei konkreter Fragestellung hätten wir uns da einiges ersparen können. Naja, beim nächsten Mal ...
-
Ich brauche ein DocLink und kein Link in die DB
Und auf welches Dokument?
Andreas
-
Ich ging davon aus, dass das Problem nun behoben sei, falls nicht, musst Du anstelle der Datenbank ein Dokument übergeben:
Call rtitem.AppendDocLink (doc, "Irgendein Text")
Du kannst auch als ersten Parameter eine Ansicht übergeben, dann hast Du einen Link darauf.
Link auf Datenbank, Ansicht und Dokument wird mit NotesRichtextItem.AppendDocLink erstellt. Steht aber natürlich auch in der Hilfe.