$REF ändern.

  • Hi leute,


    wie kann ich bei einem Antwortdokument die Referenz zu einem "Vater-Dokument" ändern?
    Ich habe es mit einem Agenten versucht in dem ich mit einer anderen REF-ID das Feld $REF überschrieben habe.
    Geht aber nicht.
    Hat jemand ein Tipp?


    Danke,
    Pawel Schlör

  • Wenn du das ganze per Script machst kannst du das über die Funktion MakeResponse der NotesDocument Klasse machen.
    Das verlangt als Parameter das Dokument zu dessen Antwort es gemacht werden soll.

  • Ganz einfach:
    Es gibt Schulen und Schüler.
    Das Schulen-Dokument ist das Hauptdokument und Das Schüler-Dokument ist das Antwortdokument.
    Jetzt hat eine Schule zugemacht und die etwa 300 Schüler werden in einer anderen Schule untergebracht.
    Bevor ich alle Schüler neu anlege, wäre es mir lieber, wenn ich die besagten Schüler markiere und mit einem Agenten einer anderen Schule zuordne.


    Ich hätte das von Anfang an nicht mit Hauptdokument-Antwortdokument machen sollen.
    Jetzt ärgere ich mich nämlich.
    So etwas kann immer wieder vorkommen.


    Danke für Deine Hilfe,
    Pawel

  • Einfach.. Erstelle Zwei ordner (keine ansichten).. Eine Schule und einen Schüler
    Im Ordner schule stellst du das EINE dokument welches jetzt haupt dokument werden sollte, und im anderen die schüler die neu zugewiesen werden sollte.
    In der gestaltung vom Ordner schüler erstellst du einen aktion, und machst folgenden lotusscript da rein.


    Das schöne ist das dieses aktion über selektierte dokumente läuft, und damit kannst du es problemlos auf ein oder zwei dokumente testen.


    Dann öffnest du den ordner und klickst.. und hoffst auf keine fehlermeldungen (weil error kontrolle habe ich nicht gemacht...)


    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doccol As notesdocumentcollection
    Dim ordner as Notesview
    Dim docA As NotesDocument
    Dim docB As NotesDocument

    Set db = session.CurrentDatabase
    Set doccol = db.unprocesseddocuments
    count = doccol.count
    ordner = db.getview ( "Schule" )
    Set docA = ordner.GetFirstDocument
    Set docb = doccol.GetFirstDocument
    while not docb is nothing
    Call DocResponse(DocA,DocB) ' Mache das zweite dokument zum antwortdokument vom ersten
    Set tempdoc = docb
    Set docb = doccol.getnextdocument ( tempdoc ) ' Nächstes dokument holen.
    Delete tempdoc
    do


    ' fertig

  • Prinzipiell ist das das passende Script.
    Nur die Funktion DocResponse ist mir nicht bekannt.
    Ist das vielleicht eine selbst programmierte ?
    Oder ist mir diese einfach nicht bekannt


    Ich würde an der Stelle eher die Methode der NotesDocument-Klasse verwenden,


    also statt


    Call DocResponse(DocA,DocB)


    call DocB.MakeResponse(DocA) 'Macht DocB zum AntwortDokument von DocA

  • Jo.. sorry.. das sollte mich mal wieder lernen nicht einfach ein stuck script von mir zu kopieren ohne es nochmal zu lesen...


    NewChildDocument.MakeResponse( Parent ) ist das richtige..