Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: RonMat am 23.07.12 - 09:10:13

Titel: Dokumentlink
Beitrag 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????
Titel: Re: Dokumentlink
Beitrag von: Peter Klett am 23.07.12 - 09:13:15
An dem Script ist soweit nichts Verkehrtes zu erkennen. Was funktioniert denn nicht, bzw. wie wirkt sich das Nichtfunktionieren aus?
Titel: Re: Dokumentlink
Beitrag von: ascabg am 23.07.12 - 09:23:55
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
Titel: Re: Dokumentlink
Beitrag von: pram am 23.07.12 - 09:37:48
am Ende fehlt noch ein
Call rtitem.update()

Gruß
Roland

Titel: Re: Dokumentlink
Beitrag von: ghostmw am 23.07.12 - 09:53:00
Zitat
..................
'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 ?
Titel: Re: Dokumentlink
Beitrag von: Peter Klett am 23.07.12 - 09:56:24
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 ...
Titel: Re: Dokumentlink
Beitrag von: pram am 23.07.12 - 10:09:21
@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():
Zitat
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
Titel: Re: Dokumentlink
Beitrag von: RonMat am 23.07.12 - 10:15:29
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)
Titel: Re: Dokumentlink
Beitrag von: ascabg am 23.07.12 - 10:23:01
Hallo,

Wie schon geschrieben wurde, wird hier in diesem Fall kein Dok-Link erstellt, sondern ein Datenbanklink.

Dieser Verweis auf die Datenbank in targetdb
Zitat
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
Titel: Re: Dokumentlink
Beitrag von: RonMat am 23.07.12 - 10:29:46
Ich gebe ascabg Recht.  Ich habe das wohl komplett übersehen.
Titel: Re: Dokumentlink
Beitrag von: Peter Klett am 23.07.12 - 10:36:25
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).
Titel: Re: Dokumentlink
Beitrag von: Peter Klett am 23.07.12 - 10:39:05
@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
Titel: Re: Dokumentlink
Beitrag von: RonMat am 23.07.12 - 10:46:23
Ich brauche ein DocLink und kein Link in die DB
Titel: Re: Dokumentlink
Beitrag von: Peter Klett am 23.07.12 - 10:52:17
Bei konkreter Fragestellung hätten wir uns da einiges ersparen können. Naja, beim nächsten Mal ...
Titel: Re: Dokumentlink
Beitrag von: ascabg am 23.07.12 - 11:18:06
Zitat
Ich brauche ein DocLink und kein Link in die DB
Und auf welches Dokument?


Andreas
Titel: Re: Dokumentlink
Beitrag von: Peter Klett am 23.07.12 - 11:26:54
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.