Dokument im Speicher halten

  • Hi Leute.


    Ich hab da eine etwas verzwickte Situation.


    Ich habe ein Notes Dokument aus dem heraus ich mittels einer Aktion ein weiteres Dokument erstelle. Das neue Dokument ist kein Antwortdokument und kann auch nicht in einer DialogBox geöffnet werden.


    Wie stelle ich es an, dass das erste Dokument als UiDoc im Speicher bleibt, so dass ich abhängig von den Werten im Neuen Dokument ein paar werte im darunterliegenden Dokument ändern kann??


    Viele Grüße von Pascal.

    [size=x-small]
    Computer sind da um zu rechnen!
    Nicht um Ausreden wie: "Ich kann nicht durch Null teilen!", auf den Bildschirm zu schreiben.
    [/size]

    • Offizieller Beitrag

    du kannst das erste Dokument in der Aktion als NotesUIDocument-Object holen. Solange deine Aktion ausgeführt wird, kannst du dann auf dieses Object zugreifen.


    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 Diali.


    Ja so wäre das super.... Aber wie greife ich mir das erste Dokument als UIDoc? Mit ws.EditDocument?

    [size=x-small]
    Computer sind da um zu rechnen!
    Nicht um Ausreden wie: "Ich kann nicht durch Null teilen!", auf den Bildschirm zu schreiben.
    [/size]

    • Offizieller Beitrag

    ist es schon offen im UI oder ist es noch im Backend?


    Offen im UI:
    dim ws as New NotesUIWorkSpace
    dim uidoc as NotesDocument
    set uidoc = ws.CurrentDocument


    nur im BackEnd vorhanden:
    doc ... NotesDocument
    Dim ws as New NotesUIWorkSpace
    dim uidoc as NotesUIDocument
    Set uidoc = ws.Editdocument(editMode, doc)


    editMode ... True / False


    Gruß
    Dirk

  • ....das ist ja mein Problem....-


    Das Dokument ist offen aber das 2 daraus erstellte Dokument ist ja im Vordergrund. Heisst also "ws.CurrentDocument" greift das aktuelle. Ich will aber das darunter haben.


    Über backend ist es mist solange das Dokument noch im Frontend geöffnet ist. Das gibt dann einen Konflikt.


    Am liebsten würde ich das untere Dokument gleich im Speicher behalten solange ich das obere bearbeite. Kann ich das nicht irgendwie mit übergeben während ich das obere Doc erstelle??

    [size=x-small]
    Computer sind da um zu rechnen!
    Nicht um Ausreden wie: "Ich kann nicht durch Null teilen!", auf den Bildschirm zu schreiben.
    [/size]

    • Offizieller Beitrag

    warum eines der Dokumente nicht schließen uidoc.Close und im BackEnd weiterarbeiten?


    Habs nicht getestet aber:
    hole das Dokument nicht per ws.CurrentDocument sondern, hole das BackEnd_Dokument über die UniversalID des FrontEnd-Dokumentes und öffne es mit ws.EditDocument nochmal. dabei wird das schon geöffnete Dokument benutzt. Bin mir nicht mehr sicher, aber ich glaube es war nur ein Problem von CurrentDocument und dies müsste so umgehbar sein.


    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

  • Warum das Ganze denn so kompliziert?
    Du hast ein Document im FrontEnd offen. Jetzt erfolgt eine Aktion, und die merkt sich als erstes dieses Basis-Dokument:
    Set uidoc1 = NotesUIWorkspace.CurrentDocument


    Der Code läuft weiter und erstellt ein neues Dokument und öffnet dieses im FrontEnd. Dies kann jetzt uidoc2 zugewiesen.


    Daten können diese jetzt gegenseitig austauschen, ob im Frontend (da sind sie ja jetzt schon instantiiert) oder im Backend (uidocX.Document). Welches ich wann schliesse oder speichere, ist auch egal.


    Bernhard

  • Ich muss doch aber uidoc1 irgendwie an das neue Dokument übergeben, wenn ich es von dort aus verändern möchte...... und genau hier lag ja mein Problem.....


    Ich hab uidoc1 zwar in den globals von uidoc2 deklariert aber es bleibt nothing......

    [size=x-small]
    Computer sind da um zu rechnen!
    Nicht um Ausreden wie: "Ich kann nicht durch Null teilen!", auf den Bildschirm zu schreiben.
    [/size]

  • Wenn du das neue Dokument erstellst kannst du in dieses doch Werte hineinschreiben, also z.b. auch die DocID des ersten Dokumentes.
    Dann kannst du es dir per GetDocumentByUNID holen.


    Allerdings musst du dann das erste Dokument refreshen um geänderte Werte zu holen

  • Stimmt. So wie Diali es schon am Anfang erwähnte hat es funktioniert. Ich übergebe die UNID von Uidoc1 an Uidoc2 und greife mir Uidoc1 dann per getdocumentbyUNID und editdocument.


    Hatte nur vorher vergessen die richtigen Parameter zu übergeben.


    Vielen Dank an alle.

    [size=x-small]
    Computer sind da um zu rechnen!
    Nicht um Ausreden wie: "Ich kann nicht durch Null teilen!", auf den Bildschirm zu schreiben.
    [/size]