GetDocumentbyUNID - Feldinformation an anderes Dokument übergeben

  • Hallo Zusammen


    Dokument1 (Equip) übernimmt beim Anlegen die UNID von Dokument2 (Room) in das Feld RoomDocID. Beim Speichern soll nun die ID von Equip an ein Feld in Room übergeben werden.
    An der Stelle mit dem Pfeil bekomme ich die Fehlermeldung "Object Variable not set". Was mache ich falsch?


    Leider habe ich nicht die Wahl zwischen Formula und Script, da im QuerySave noch ein paar Dinge mehr beschrieben werden.


    Vielen Dank für jede Hilfe.
    Euer Nick278


    Sub Querysave(Source As Notesuidocument, Continue As Variant)

    Dim s As New NotesSession
    Dim db As NotesDatabase
    Dim roomdoc As NotesDocument
    Dim roomitem As NotesItem
    Dim roomdocid As String
    Dim equipdocid As String

    ' auslesen der RoomDocID aus aktuellem Dokument (Equip)
    Set roomitem = source.Document.GetFirstItem("RoomDocID")
    roomdocid = roomitem.Text


    ' auffinden der zughörigen Raumbuchung über RoomDocID (<----)
    Set roomdoc = db.GetDocumentByUNID(roomdocid)


    ' auslesen der EquipDocID aus aktuellem Dokument
    equipdocid = "geht dies mit: source.Document.NoteID ?"


    ' einfügen der EquipDocID in Raumbuchung
    roomdoc.EquipDocID = equipdocid


    'speichern der Raumbuchung
    Call roomdoc.Save(True, True)

    End Sub

  • Verwende an der Stelle doch Source.FieldGetText("RoomDocID").
    Da bekommst du ebenfalls den Wert in dem Feld.
    Bevor das Dokument das erste mal gespeichert ist kann es sein, daß das Document noch Nothing ist, also kein Objekt enthält.

  • Vielen Dank für die Info. Der Fehler war einfach: ich hatte db nicht gesetzt.


    Mit nachfolgendem Skript bekomme ich nun einen String mit ID an das Room-Dokument übergeben. Das Equip-Dokument soll dort als Doc-Link anzeigen. Leider weiss ich nicht, wie ich aus der ID jetzt eine Dokumentenverknüpfung erzeuge. Wer kann helfen?


    Anbei mein Skript


    Sub Querysave(Source As Notesuidocument, Continue As Variant)

    Dim s As New NotesSession
    Dim db As NotesDatabase
    Dim roomdoc As NotesDocument
    Dim roomitem As NotesItem
    Dim roomdocid As String
    Dim equipdocid As String


    Set db = s.CurrentDatabase

    'auslesen der RoomDocID aus aktuellem Dokument
    Set roomitem = source.Document.GetFirstItem("RoomDocID")
    roomdocid = roomitem.Text

    'auffinden der zughörigen Raumbuchung über RoomDocID
    Set roomdoc = db.GetDocumentByUNID(roomdocid)

    ' auslesen der EquipDocID aus aktuellem Dokument
    equipdocid = source.Document.UniversalID
    'einfügen der EquipDocID in Raumbuchung
    roomdoc.EquipDocID = equipdocid
    'speichern der Raumbuchung
    Call roomdoc.Save(True, True)


    End Sub