Ansicht nach Antwortdokument filtern

  • Hallo zusammen,


    ich möchte in einer Ansicht alle Haupt- und Antwortdokumente sehen, die ein Kriterium im Antwortdokument erfüllen.


    Beispiel:


    Das Form "Mitglied" ist das Hauptdokument. Das Feld VKategorie ist Bestandteil des Antwortdokumentes.


    Mittels
    SELECT (form = "Mitglied") | (@Contains VKategorie; "MeinKriterium"))


    werden zwar alle entsprechenden Antwortdokumente aufgelistet, leider jedoch auch alle Hauptdokumente.


    Wie kann ich es realisieren, dass nur die zugehörigen Hauptdokumente aufgelistet werden?


    Ein Lösungsansatz war, dass mein Kriterium auch in das Hauptdokument geschrieben wird. Das funzt zwar dann mittels


    SELECT (@Contains(hvKategorie; "MeinKriterium")) | (@Contains(VKategorie; "MeinKriterium"))


    bestens, hat jedoch den Nachteil, dass das Hauptdokument bei Änderungen der Kategorie im Antwortdokument ständig nachgepflegt wird (mittels LS-Code). Die Folge sind Speicher- und Replizierkonflikte. Und das will ich auf jeden Fall verhindern!


    Geht das nicht einfacher?


    Danke!

  • Zitat

    ...dass das Hauptdokument bei Änderungen der Kategorie im Antwortdokument ständig nachgepflegt wird (mittels LS-Code)...


    Wann läuft denn dieser LS?
    Muss die Kategorie im Hauptdokument sofort nach der Änderung im Antwort-Doc aktualisiert werden?
    Oder darf man diesen LS in einen nachtaktiven Agent packen?

  • Ich hoffe, ich habe dich richtig verstanden.


    In der Praxis läuft das dann so ab.
    Es gibt z.B. ein Hauptdokument und Antwortdokumente dazu 1, 2, 3.
    User A trägt im A-Doc 1 die Kategorie A ein,
    dann trägt User B im A-Doc 3 die Kategorie C ein,
    anschließend trägt User C im A-Doc 2 die Kategorie B ein.


    Jedes mal läuft LS im Exiting des Feldes Kategorie im A-Doc.


    Ergebnis: Kategorie B im Hauptdoc.
    Oder sollen jetzt A, B und C im Feld Kategorie im Hauptdoc stehen?




    P.S.
    Ist in der Maske für die Hauptdocs die Eigenschaft "Konflikte mischen/Keine Konflikte" aktiviert?


    Gruß


    Laura

  • Hallo Laura,


    Du denkst in die falsche Richtung.
    Das die Kategorien in das Hauptdokument geschrieben werden, dass ist kein Problem. Auch funktionieren die Ansichten mittels:


    SELECT (@Contains(FeldimHauptdok; "MeinKriterium123")) | (@Contains(FeldimAntwortdok; "MeinKriterium123"))



    Ich möchte jedoch, dass meine Ansicht ohne das ständige Rückschreiben der Kategorien ins Hauptdok funktionieren. In der Art:


    SELECT (form = "Hauptdok") | (@Contains FeldimAntwortdok; "MeinKriterium123"))

    • Offizieller Beitrag

    naja bei relationalen DBs würdest Du dies über einen Join lösen. Aber bei Notes geht dies nicht.


    So wie Du es schreibst
    SELECT (form = "Hauptdok") | (@Contains FeldimAntwortdok; "MeinKriterium123"))
    werden die Hauptdokumente immer angezeigt und nur die Antwortdokumente gefillter.


    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

  • Die Antwort, dass Notes keine rel. Datenbank ist, hab ich jetzt irgendwo erwartet. Ok.


    Laura: Speicherkonflikte vermeiden: Ich stell mir das doch recht schwierig vor, wenn die Datenbank zwischen zwei Domino-Servern ständig repliziert wird....

  • ralph71


    Nicht wirklich, ist nur eine Frage der Programmierung.


    z.B. kannst du das tun indem du DocumentLocking verwendest, oder auch prüfst ob sich tatsächlich was geändert hat bevor du das Hauptdokument speicherst, d.h. wenn sich das Kriterium nicht geändert hat wird das Hauptdokument auch nicht verändert.
    Leider kommen die meisten Speicher/Replizierkonflikte bei verteilten Anwendungen daher, daß einfach mal fix Werte in andere Dokumente geschrieben werden ohne zu prüfen ob das nicht der gleiche ist der eh schon drinstand.
    Denn wie oft wird dieses Kriterium denn im Antwortdokument von zwei Personen zwischen zwei Replizierzyklen geändert ?