Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: SaSaWu am 08.03.12 - 10:51:07

Titel: Daten aus Hauptdokument erneut abrufen
Beitrag von: SaSaWu am 08.03.12 - 10:51:07
Hallo!

Ich bin sicher, da gibt es eine einfache Lösung, aber ich finde sie nicht!!!

Ich möchte, dass ein Agent ein oder mehrere (z.B. selektierte) Doks öffnet und sie anschl. speichert.

Hintergrund: Es handelt sich um Antwortdokumente, die über GetField Daten aus dem Hauptdokument ziehen. Werden nun diese Daten im Hauptdokument verändert, müssen die Antwortdokumente neu gespeichert werden, um ihre per GetField gezogenen Daten zu aktualisieren.

Habe schon versucht, ein Dummy-Feld per Agent ändern zu lassen in der Hoffnung, dass GetField dann erneut zur Wirkung kommt.

Auch:
Code
 @Command( [EditDocument] ); @Command( [FileSave] ); 
im Agenten half nicht.

Beschämt mich und gebt mir eine einfache Lösung  :-:
Titel: Re: Daten aus Hauptdokument erneut abrufen
Beitrag von: domino23 am 08.03.12 - 11:33:03
Ich meine, wenn Du wirklich mit Haupt- und Antwortdokumenten arbeiten würdest, würden sich automatisch Werte beim Speichern des Hauptdokuments in das Antwortdokument schreiben...

Davon mal abgesehen, musst Du bei deinem Agenten auch mit Script und vorm Speichern mit "ComputeWithForm" arbeiten, erst dann werden die Feldformeln in den Dokumenten ausgeführt.

Wie soll den das doing sein? Die User machen im Hauptdokument Sachen und Dinge und müssen dann manuell Antwortdokumente suchen und markieren und die dann per Agent nochmal speichern....?

Max
Titel: Re: Daten aus Hauptdokument erneut abrufen
Beitrag von: marschul am 08.03.12 - 11:35:56
Nach dem Speichern des Hauptdokuments im FrontEnd (Event PostSave) holst Du Dir die Antworten über Source.Document.Responses. Die könnten über ein computewithform aktualisiert werden (nicht immer 1. Wahl).
Werden die Hauptdokumente nicht geöffnet, sondern über eine View-Action oder via Agent geändert, kommst Du m.E. auch hier nur mit Script und den oben beschriebenen Methoden weiter...
Titel: Re: Daten aus Hauptdokument erneut abrufen
Beitrag von: koehlerbv am 08.03.12 - 11:44:29
Das sollte auch funktionieren mit einer Ansicht aus zwei Spalten über alle Antwortdokumente:
- Spalte 1 mit $Ref der Antwortdokumente
- Spalte 2 mit UniversalID der Antwortdokumente
Dann ein @SetField (@dbLookup (.....)) mit SearchKey = UniversalID des Hauptdokuments.

Bernhard
Titel: Re: Daten aus Hauptdokument erneut abrufen
Beitrag von: SaSaWu am 08.03.12 - 11:47:19
@Max:

Also, die Felder im Antwortdokument (Ja, wirklich Maskentyp "Antwort") sind "berechnet" und ziehen sich die Daten bspw. per

Code
@If (@IsNewDoc ; Mitarbeiter ; @GetDocField( $Ref; "Mitarbeiter") )

Ändere ich die Daten im Hauptdokument, kann ich das Antwortdukument nur per Aufruf und Speichern aktualisieren.

Den Agenten wollte ich entweder täglich über die Antwortdoks laufen lassen oder dem User per Schaltfläche aus dem Hauptdokument anbieten, wenn er Daten verändert hat.

@Marco & Max:

Ich hatte gehofft, ohne Script auszukommen und genau <= diese Worte nicht schreiben zu müssen, damit mir wieder das Erlernen von Scriptsprache "empfohlen" wird :)

@Bernhard:

Ich werde versuchen, Deinen Vorschlag zu verstehen (d.h. umzusetzen) und melde mich...
Titel: Re: Daten aus Hauptdokument erneut abrufen
Beitrag von: koehlerbv am 08.03.12 - 11:52:18
Ich meine, wenn Du wirklich mit Haupt- und Antwortdokumenten arbeiten würdest, würden sich automatisch Werte beim Speichern des Hauptdokuments in das Antwortdokument schreiben...

Das ist natürlich nicht richtig. Antwortdokumente sind lediglich über die UniversalID des Hauptdokuments in einer Richtung verknüpft. Einen Automatismus, gar eine Verknüpfung von Items gibt es nicht.

Bernhard
Titel: Re: Daten aus Hauptdokument erneut abrufen
Beitrag von: marschul am 08.03.12 - 11:55:03
Das sollte auch funktionieren mit einer Ansicht aus zwei Spalten über alle Antwortdokumente:
- Spalte 1 mit $Ref der Antwortdokumente
- Spalte 2 mit UniversalID der Antwortdokumente
Dann ein @SetField (@dbLookup (.....)) mit SearchKey = UniversalID des Hauptdokuments.

Bernhard

Hallo Bernhard,

Interessanter, einfacher Ansatz :), auch wenn Du wahrscheinlich @SetDocField meintest... ;)
Titel: Re: Daten aus Hauptdokument erneut abrufen
Beitrag von: Peter Klett am 08.03.12 - 11:55:26
Ich meine, wenn Du wirklich mit Haupt- und Antwortdokumenten arbeiten würdest, würden sich automatisch Werte beim Speichern des Hauptdokuments in das Antwortdokument schreiben...
Eine Notesversion, die das von ALLEINE macht, ist mir seit 4.1 nicht untergekommen. Kann man natürlich im Queryclose des Hauptdokuments bauen.

Hast Du mal @Command([ToolsRefreshAllDocs]) oder @Command([ToolsRefreshSelectedDocs]) probiert?

Wenn die Daten nicht im Antwortdokument gespeichert werden müssen (wegen Anzeige in Ansichten), bevorzuge ich ein Berechnet zur Anzeige, dann musst Du aber die bereits vorhandenen Items aus den vorhandenen Antworten löschen. Die Aktualisierung findet dann beim Öffnen statt, im geschlossenen Dokument fehlen die Items.
Titel: Re: Daten aus Hauptdokument erneut abrufen
Beitrag von: Peter Klett am 08.03.12 - 12:00:18
Ich hatte gehofft, ohne Script auszukommen und genau <= diese Worte nicht schreiben zu müssen, damit mir wieder das Erlernen von Scriptsprache "empfohlen" wird :)
Lerne LotusScript  ;D

Das ist so einfach, wenn man das erst einmal geschnallt hat. Falls Du zum EntwicklerCamp kommst, habe ich da ein Hands-On für den Einstieg, genau für die Leute, die schon entwickeln, aber sich da nicht rantrauen ...
Titel: Re: Daten aus Hauptdokument erneut abrufen
Beitrag von: koehlerbv am 08.03.12 - 12:10:31
Marco, danke für die Korrektur! Ich habe @SetDocField gedacht und @SetField geschrieben - ein "freud'scher Verschreiber"  :)

Bernhard

PS: Ich würde es natürlich mit LS machen und dabei die Finger von ComputeWithForm lassen.
Titel: Re: Daten aus Hauptdokument erneut abrufen
Beitrag von: SaSaWu am 08.03.12 - 12:29:08
Gerade hatte ich mich wieder geschämt, nicht schon mit Script angefangen zu haben, da wird mir eine schöne Brücke gebaut (Danke, Peter)!

Der Refresh funktioniert, damit werde ich erstmal weiter arbeiten...

Nochmal zum Script: Interesse ist schon vorhanden, zurzeit nicht aber die Bereitschaft, dies außerhalb meiner Arbeitszeit zu tun. Notes-Entwickler bin ich auch nur "nebenher". Wielange muss ich denn einplanen, um per Script Erfolge erzielen zu können?
Titel: Re: Daten aus Hauptdokument erneut abrufen
Beitrag von: Peter Klett am 08.03.12 - 12:35:14
Nochmal zum Script: Interesse ist schon vorhanden, zurzeit nicht aber die Bereitschaft, dies außerhalb meiner Arbeitszeit zu tun. Notes-Entwickler bin ich auch nur "nebenher". Wielange muss ich denn einplanen, um per Script Erfolge erzielen zu können?
1-2 Stunden, eher weniger.
Titel: Re: Daten aus Hauptdokument erneut abrufen
Beitrag von: koehlerbv am 08.03.12 - 12:35:46
@Command ([ToolsRefreshAllDocs]) geht aber tierisch auf die Performance, sowie die DB etwas grösser wird, und es werden die meisten Dokumente dabei völlig sinnfrei angefasst.
@Command ([ToolsRefreshSelectedDocs]) wäre zielführender, ist aber nicht einsetzbar, da das "Select" nicht machbar ist.

Bernhard