Agent zum setzen der Readers

  • Ich möchte einen Agenten schreiben, der die Reader für alle ausgewählten Felder setzt...


    Mein Versuch...


    Zitat

    Manager_:=@DbLookup("":"noCache";"":"";"(PeopleActive)";TimeSheetName;"PersonManager");
    Responsible_:=@DbLookup("":"noCache";"":"";"(AllProjects)";TimeSheetProject;"Responsible");
    Reader_:=@Unique("[Admin]":"[Controlling]":Responsible_:TimeSheetName:Manager_:"LocalDomainAdmins":"LocalDomainServers");
    FIELD Reader:=@Explode(@Implode(Reader_;";");";");
    SELECT @All


    Das Feld Reader ist als Reader-Feld angelegt.


    Leider funktioniert das nicht, das Feld wird zwar soweit ich das sehen kann, richtig besetzt, jedoch ziehen die Rechte nicht, bzw. Personen, die nicht in dem Feld sind, können trotzdem das Dokument sehen....


    Was mache ich falsch??


    Wenn ich die gleiche Formel als Berechnungsformel in das Reader Feld setze, funktioniert es.... Ich will aber jetzt nicht alle Dokumente einmal auf und zu machen...

  • Das personen das Dok sehen, die nicht in dem Dokument stehen.... gibt bestimmt noch andere Leser - Felder oder verm. Autorenfelder.
    Wenn Du nicht alle Dokumente auf und zu machen willst... ,mit @command([toolsrefreshalldocs]) z.B. kann man Dokumente auch im geschlossenen Zustand neu berechnen lassen

    • Offizieller Beitrag

    Du hast bestimmt nur das Feld in der Maske erzeugt. Wenn Dein Agent läuft dürft der Dir ein Text-feld erstellen.


    Mit @-Funktionen dürfte es nicht gehen. Dafür brauchst Du Script
    "NotesItem.IsReader = True"


    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

  • Es geht auch mit @Functions - sofern das Feld vorher bereits durch die Maske im Dokument als Leserfeld angelegt war.


    Allerdings muß man dabei 2 Dinge beachten:


    1.) Das Feld darf nicht simpel mit FIELD xyz := .... gefüllt werden


    In dem Fall überschreibt die FIELD Anweisung nämlich nur das ursprüngliche Feld samt Feldeigenschaften mit einem neuen (Text-)Feld. Stattdessen muss das Feld samt Eigenschaften erst "kopiert" und danach gefüllt werden:


    FIELD Reader := Reader;
    @Setfield("Reader";NeueWerte)


    2.) Trotz obiger Hinweise wird es u.U. passieren daß einige Einträge nicht funktionieren, insbesondere wenn als Werte Namen in der Form "Max Muster/Organisation" eingegeben werden. Hierbei ist zu beachten, daß Namen in Leser-, Autoren und Namensfeldern immer nur kanonisch und niemals hierarchisch angegeben werden dürfen. Hierarchisch funktioniert nur für Mail oder Gruppen aber nicht für Namen. Also beim Wertzuweisen mit @Name([CANONICALIZE];Namen) arbeiten oder dies gleich in die @Setfield-Anweisung einbauen. Natürlich kann man die Namensliste auch gleich kanonisch aus der Quelle abholen.


    Die Neuberechnung über die Maske funktioniert deshalb ohne die Tricks, da die Maske sowohl die Feldeigenschaften als auch die kanonische Speicherform automatisch vornimmt.