Wie erzeuge ich einen DocLink in Script

  • Hallo zusammen,


    ich habe folgendes Script erzeugt welches eine Mail (erstmal an mich) verschickt.
    Soweit so gut. Ich versende die Dokument Nr die zum finden des Doks notwendig ist mit in Subjekt etc.


    Einfacher währe an dieser Stelle einen Doclink mit zu senden.



    Habt Ihr eine Idee ob und wie das geht ??



    Gruss


    Bernd99 :)




    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim a As Variant, b As Variant, c As Variant

    Set uidoc = workspace.CurrentDocument

    If uidoc.FieldGetText( "NeinJa_30" )="JA" Then

    a= uidoc.FieldGetText("MocNr")
    b= uidoc.FieldGetText("MocBeschreibung")
    c= uidoc.FieldGetText("MocBetrieb")



    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim Mailan As Variant

    Mailan="Bernd Diehm/"

    Set db = session.CurrentDatabase
    Set doc = New NotesDocument( db )
    doc.Form = "Memo"
    doc.SendTo = Mailan
    doc.Subject = "Es wurde ein MoC mit USGQ- Relevanz erstellt. - MoC Nr." & a &" Titel :" & b
    doc.body = "Bitte sehen Sie in der MoC- DB den MoC mit der Nr.: " & a &" Titel: " & b &"der Gruppe: "& c
    Call doc.Send( False )
    Messagebox ( "Es wurde eine Mail an US, AS und QM gesendet, da das MoC USGQ relevant ist. ")

    End If

  • du musst als Bodyfield ein RichTextItem erzeugen. In dem kannst du einen Doclink anfügen


    Bsp:


    Set rtitem = New NotesRichTextItem(doc, "Body")
    Call rtitem.AppendText("Link to document: ")
    Call rtitem.AppendDocLink( doc,""description)


    und ganz wichtig erst das Document speichern bevor(!) du es in den Vordergrund holst.


    Call docmail.Save(True, False)
    Set uidoc2 = ws.EditDocument(True, docmail)
    Call docmail.Remove(True)


    Das remove zum schluss um das document wieder aus dem Draft zu entfernen.

  • wenn er sich die mail aber vorher anschauen möchte um eventuell doch noch veränderungen zu machen muss er es speichern und anzeigen.


    Habe ich als Kommentar auch nur hinzugefügt um eventuell auftretende Frage von vornherein zu klären.

    • Offizieller Beitrag

    das Speichern ist nur bis 5.x notwendig. Mit 6.x muss ein neues Dokument nicht mehr gespeichert werden, sondern kann sofort in den UI geholt werden.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Hallo,


    erstmal vielen Dank für die schnelle Antwort.


    Ich habe aber noch ein Problem. Mein Doclink bleibt leer bzw er verweist auf ein nicht vorhandenes Dokument.


    Das Script läuft übrigen bei POSTsave ab.



    Hier noch mal mein Script:


    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim a As Variant, b As Variant, c As Variant

    Set uidoc = workspace.CurrentDocument

    If uidoc.FieldGetText( "NeinJa_30" )="JA" Then

    a= uidoc.FieldGetText("MocNr")
    b= uidoc.FieldGetText("MocBeschreibung")
    c= uidoc.FieldGetText("MoC_Betrieb")

    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument

    Dim Mailan As Variant
    Dim rtitem As NotesRichTextitem

    Mailan="Bernd Diehm/"

    Set db = session.CurrentDatabase
    Set doc = New NotesDocument( db )
    doc.Form = "Memo"
    doc.SendTo = Mailan
    doc.Subject = "Es wurde ein MoC mit USGQ- Relevanz erstellt. - MoC Nr.: " & a &" Titel : " & b

    Set rtitem = New notesrichtextitem (doc, "body")
    Call rtitem.appendtext("Bitte sehen Sie sich den MoC mit der Nr.: " & a &" Titel: " & b &" der Gruppe: "& c &" an.")
    Call rtitem.appenddoclink (doc, "")

    Call doc.Send( False )
    Messagebox ( "Es wurde eine Mail an US, AS und QM gesendet, da das MoC USGQ relevant ist. ")

    End If




    Ich weiß nicht wie ich hier auf das richtige Doc verweisen muß


    Call rtitem.appenddoclink (doc, "")


    Das doc in der Klammer ist wohl nicht das UIdoc auf welches ich verweisen möchte


    Was muß ich machen ? (einfach Uidoc eintragen geht nicht)


    Kann jemand mein Script entsprechend ergänzen ?


    Schon mal vielen Dank im Voraus für die Hilfe :sunclaus:

  • Du musst noch ein Doc erzeugen fuer das uidoc und das einsetzen.


    Also doc2 = uidoc.document
    Und dann spaeter
    Call rtitem.appenddoclink (doc2, "")

    • Offizieller Beitrag

    Set doc = New NotesDocument( db )
    ...
    Call rtitem.appenddoclink (doc, "")


    Ah du willst auf ein neues Dokument einen Doclink setzen, dann muss natürlichb dieses Dokument vorher im Backend gespeichert werden.


    Aber ist es gewollt, dass das Dokument auf sich selber verlinkt? - Wohl eher nicht!
    D.h. hier Call rtitem.appenddoclink (doc, "") muss für doc ein anderes Dokument stehen. Dieses finde ich aber nirgends in dem Code.


    Willst du auf das uidoc verlinkenb, dann kommst du mit
    set NotesDocument = NoutesUIDocument.Document
    an dieses im Backend
    Z.B.


    set doc2 = uidoc.Document
    Set doc = New NotesDocument( db )
    ...
    Call rtitem.appenddoclink (doc2, "")


    Gruß
    Dirk

  • Zitat


    Diali schrieb:
    das Speichern ist nur bis 5.x notwendig. Mit 6.x muss ein neues Dokument nicht mehr gespeichert werden, sondern kann sofort in den UI geholt werden.


    Gruß
    Dirk


    Sorry, dass ich dir wiedersprechen muss aber genau das war ein Fehler bei mir (Notes 6.5 + 6.0). Ich MUSSTE es speichern. Hmmm, is vielleicht auch nur ein "Feature" in meinem Notes ;)

    • Offizieller Beitrag

    :-?
    Ich verwende dies sogar sehr oft so. Folgender Code erzeugt ein neues Kalender-Dokument in der Mail-DB des angemeldeten Users und da muss ich nichts speichern, damit das doc_kal im UI aufgeht.

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Ja, danke das wars:



    Set doc2=uidoc.document
    .
    .
    Call rtitem.appenddoclink (doc2, "")


    Ich hatte das auch schon probiert, aber einen Tippfehler im Script und darum gings nicht.


    Typischer Fall von Betriebsblind. ;)


    Vielen Dank nochmal an alle


    Gruss


    Bernd99 :pint:

  • Hallo,


    ich habe noch ein sekundäres Problem:


    In meinem Script gibt es die Variable Mailan (variant)


    Mailan="Verteiler FP-FA-FR - Technik"


    doc.SendTo = Mailan


    das funktioniert mit einem Mailverteiler


    Ich möchte das Doc an drei Mailverteiler senden.


    Ich habe schon alles mögliche probiert, wie z.B.


    Mailan="verteiler1"+"Verteiler2" oder
    Mailan="verteiler1"+";"+"verteiler2"


    usw usw es kommt bei einem Fehler immer die Meldung "Keine Übereinstimmung im Adressbuch gefunden"



    Wo liegt da mein Denkfehler ? :-?



    Schon mal vielen Dank im Voraus.



    Bernd99

  • Hallo zusammen,



    So scheint es zu funktionieren:


    Mailan="Verteiler1"
    Mailan="Verteiler2"
    Mailan="Verteiler3"
    .
    .
    .
    .
    doc.SendTo = Mailan
    doc.SendTo = Mailan2
    doc.SendTo = Mailan3



    ist sicherlich nicht die beste Lösung aber es geht.



    Gruss


    Bernd99 :D

  • So wird er die Mail immer nur an den letzten Verteiler schicken.


    Du musst die Verteiler selbst zu einer Liste zusammenbauen und diese Liste dann dem Item zuweisen, d.h.:


    Dim Mailan As Variant


    Redim Mailan(0)


    Mailan(0)="Verteiler1"
    Mailan=ArrayAppend(Mailan, "Verteiler2")
    Mailan=ArrayAppend(Mailan, "Verteiler3")
    .
    .
    .
    .
    doc.SendTo = Mailan