Ansichten mit Rollen filtern

  • Hallo, ich habe da mal ein Problem!


    Ich habe Ansichten, die eine Filterung nach Kategorien vornehmen.
    In den Dokumenten gibt es ein weiteres für mich wichtiges Sortierkriterium.


    Mein Ziel ist es nun, dies Rollengesteuert nach dem zweiten Kriterium zu filtern.


    Bsp:


    Nutzer (Rolle 1) sieht beim Klick auf Ansicht "Abteilung A" nur Dokumente, die für Abteilung A und für Rolle 1 sind. Meldet sich Nutzer B an (Rolle 1 und 2), sieht dieser auch beim Klick auf Abteilung A Dokumente mit Kriterium Rolle 1 und Rolle 2.



    Mein größtes Problem ist es, das die Rolle mit @UserRoles immer mit den Klammern [ ] ausgelesen werden, ich aber in den Kriterien (Auswahlliste) keine Klammern nutzen darf. Ich habe auch versucht, die Klammern mit @Rightback und @Leftback wegzubekommen, was auch ging, doch die Übergabe des Wertes an eine SELECT @Contains-Formel scheitert. Vielleicht denke ich auch vollkommen in die falsche Richtung.




    DAS WAR NOCH NICHT ALLES.



    Kann ich aus verschiedenen Dokumenten ,z.B. die eines Tages, eine Summe als Word-Dokument exportieren????




    jetzt ist aber gut......

  • Wenn du irgendwelche benutzerbasierten Auswahlkriterien, was Rollen ja auch sind, in einer Ansichtsformel verwendest funktioniert das nur richtig bei einer privaten Ansicht, bzw bei einer gemeinsamen privat bei Erstbenutzung.

  • Wenn die Rollen direkt in so genannte Leser- und Autorenfelder in den Dokumenten geschrieben werden zeigen Ansichten völlig automatisch nur noch die entsprechenden Dokumente an.


    Informiere dich mal anhand der Hilfe etwas zu diesem Thema (insbesondere Leserfelder). Das was du brauchst sind keine Selektionsformeln sondern etwas Background wie Ansichten und Dokumente zusammenspielen. Dokumente nur bestimmten Nutzern zu zeigen gehört zu den Dingen die Notes von Hause aus sogar ohne Programmierung kann. Mit Programmierung verfeinert man die Sache eigentlich nur noch.


    Zu deiner Frage mit dem Summen-Export: da war grad gestern erst eine Frage dazu, hier.hier.

  • Das Setzen eines Leserfelds in der Maske ändert noch nicht die Dokumente, die bereits existieren. Erst wenn diese mit der Maske durchgerechnet worden sind, haben die Felder die Eigenschaft des Leserfelds übernommen.


    Nicht vergessen: übergeordnete Leserrollen einrichten, die alle Dokumente lesen können (Admin, Server usw.) und vorher unbedingt in einer Kopie testen.


    Meinst du mit "SUMME" eine Zahl oder eine wie auch immer geartete Zusammenfassung von Feldern mehrerer Dokumente ? Warum Word ? Reicht dir nicht vielleicht schon ein Newsletter mit den DocLinks ?

  • Klappt auch eh nicht so, wie ich es will....ich bin nun an der stelle, wo ich theoretisch beim ansichtenöfnen zwischen rolle des nutzers und dem autorenfelt (in dem die rolle des autors steht) vergleichen. ist der vergleich positiv, soll das dokument anezeigt werden, ist der vergleich negativ, solls nicht sichtbar sein......ich denke, ich mache es, wie immer, viel zu kompliziert.....



    mit der summe ist eine zusammenfassung von dokumenten gemeint, die einen besonderen status, z.b.offene probleme, haben, diese dokumente sollen inhaltlich zusammengeführt werden und dann exportiert werden, will meine führung so......warum auch immer......

  • zum ersten problem:


    experimentiere gerade mit der funktion @IsMember rum...


    Auswahl für Ansicht:
    SELECT @IsMember ((@RightBack(@LeftBack(@UserRoles;1);1)) ; sendTo)
    |@Contains(Categories; "") & (form = "MainTopic" & Status != "0")
    |@IsResponseDoc


    das @Rightback ist um die klammern aus der Rollenbezeichnung zu entfernen, damit es sich mit dem Feldinhalt vergleichen lässt ich habe auch noch mit vielem anderen experimentiert....siehe hier:


    @If((@UserRoles = ("[admin]"))
    ;(@Prompt([OK];"";"ADMIN"));(@Prompt([OK];"";"USER")))


    @If((@UserRoles = ("[admin]")) ;@True;@False)


    SELECT (@Contains(Categories; "DTN")) & (form = "MainTopic" & Status !=
    "0") | @IsResponseDoc


    @if (@Userroles SELECT (@Contains(Categories; "DTN")) & (form =
    "MainTopic" & Status != "0") | @IsResponseDoc


    @If((@UserRoles = ("[admin]")) ;SELECT (@Contains(Categories; "DTN")) &
    (form = "MainTopic" & Status != "0") | @IsResponseDoc;@False)


    SELECT (@Contains(Categories; "DTN")) & (form = "MainTopic" & Status !=
    "0") & @IsMember((@UserRoles); SubteamInterest) | @IsResponseDoc


    @RightBack(@LeftBack(@UserRoles;1);1)


    SELECT (@Contains(Categories; "DTN")) & (form = "MainTopic" & Status !=
    "0") & (form = "MainTopic" & empfänger = (@UserRoles)) | @IsResponseDoc


    SELECT (@Contains (sendto; (@RightBack(@LeftBack(@UserRoles;1);1)))) &
    (form = "MainTopic" & Status != "0") | @IsResponseDoc


    sendto = (@RightBack(@LeftBack(@UserRoles;1);1)) & (form = "MainTopic" &
    Status != "0")| @IsResponseDoc


    wahrscheinlich alles nicht schlecht aber doch nicht das richtige....oder die logik stimmt nicht :-?



    zum zweiten problem:


    ich kann ansichten als Word-DOC oder RTF exportieren??? Wie das denn???

  • Zum Punkt 1:


    Wie in der Hilfe schon steht funktioniert jegliche userbezogene, dazu gehören dann auch so was wie @UserRoles, Select Formel nur bei einer privaten Ansicht, nie aber bei einer gemeinsamen. Ausnahme ist nur die Gemeinsame Ansicht Privat bei Erstbenutzung, weil hier für jeden benutzer eine private Ansicht erstellt wird.


    Du kannst eine Ansicht direkt als CSV, 1-2-3 oder strukturierten text exportieren. Das liesse sich dann weiterverwenden, z.b. im Rahmen eines Serienbriefes in Word.


    Für den Export in Word oder RTF brauchst du Script

    • Offizieller Beitrag
    Zitat

    ich kann ansichten als Word-DOC oder RTF exportieren??? Wie das denn???


    Im Script gibt es den CreateObject(), damit kann ein OLE-Objekt erzeugt werden. Damit stehen dann alle Möglichkeiten (Befehle usw.) aus der jeweiligen Anwendung zur Verfügung.


    Set wdApp = CreateObject("word.Application")
    startet Word auf dem Rechner und über das Objekt wdApp habe ich einen bidirektionalen Kanal zu Word geöffnet.


    Allerdings muss bei deisem Verfahren Word auf diesem PC installiert sein.


    Mit dem Macrorecorder von Word sind da relativ einfach und schnell selbst komplexere Dinge erledigt.


    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

  • Zu meinem ersten Problem:


    Ich habe es jetzt auf andere Weise gelöst:


    Ich habe Ansichten erstellt, die das Kriterium enthalten, und durch eine "Absatz verbergen wenn"-Geschichte aus der Gliederung ausgeblendet werden, wenn User nicht in der Rolle X ist.


    zum zweiten Problem:


    ich arbeite dran... :D

  • Guten Morgen,


    ich habe zu diesem Thema jetzt auch ein kleines Problem und zwar soll ich bestimmte Dokumente über Rollen filtern und nur den Leuten die die Berechtigung dazu haben das Lesen erlauben.


    Problem: Die Maske darf ich nicht verändern da die Änderungen beim nächsten Update wieder gelöscht würden und somit umsonst sind.
    Jetzt habe ich ein bisschen im Forum gelesen und bin leicht verwiert. Ich hätte das jetzt einfach über @UserRoles direkt in der Ansicht versucht.
    Ziel ist es dem User auch nur die für ihn verfügbaren Dokumente anzuzeigen.


    Sprich: ich hätte ein oder zwei Schlüsselwörter in den Dokumenten abgefragt und danach über die jeweilige Rolle gefiltert.
    Was genau verstehe ich darunter das es bei öffentlichen Ansichten nicht funktioniert?

    • Offizieller Beitrag

    die Ansichten haben einen Index.


    Angenommen User A hat Rolle X und User B hat Rolle Y.


    User A öffnet die Ansicht als erster, dann wird der Index mit der UserRole X aufgebaut. Öffnet jetzt User B die Ansicht wird nicht zwingend der Ansichtsindex neu berechnet und er sieht die Dokumente mit Rolle X, weil diese noch im Index der Ansicht sind.


    Lösen könnte man es mit einer Ansicht "privat bei erster Benutzung", dann wird von der öffentlichen Ansicht eine private Kopie für jeden User angelegt.


    Oder Es werden Leserfelder gefüllt. Diese müssen nicht zwingend über der Maske gefüllt werden sondern können auch per Agent gefüllt werden. Ist aber eher unpraktisch für dein Vorhaben.


    Oder eine Ansicht bauen, die nach den UserRollen kategorisiert sind, die Ansicht in eine Maske einbetten und die Funktion SingleCategory verwenden.


    Gruß
    Dirk

  • Danke, für die Erklärung!!!


    Ich habe aber gerade festgestellt das ich meinen Ansatz eh vergessen kann.
    Hab gerade noch mal genauer drüber nachgedacht. Ich habe das Problem das fast alles aktuallisiert wird und ich somit eigentlich kaum die Möglichkeit habe da irgendwo was rein zu schreiben.


    Schreibe ich es in die Ansicht, wird diese bei der nächsten Aktualisierung zurückgesetzt. Schreibe ich es in eine neue Ansicht brauche ich auch eine neue Gliederung.
    (auch bleibt es nicht bei einer Ansicht sondern ca. 40, verteilt auf 5 Gliederungen)
    Nutze ich die vorhanden Editoren Felder werden diese auch bei der nächsten Aktuallisierung wieder zurückgesetzt. Erstelle ich ein neues, ebenfalls.


    Das ist doch sch....!!!!


    Da bleiben eigentlich nur noch eine neue Datenbank zu erstellen die eine Kopie der eigentlichen enthält oder einen Mega-Agent.



    Bitte bitte, sagt das ich da was übersehe und das es einen einfacheren Weg gibt


    :-?
    Gruß
    Christian

  • Der Index einer Ansicht wird entweder durch den Server oder den ersten Benutzer aufgebaut.
    Öffnet jetzt ein anderer diese Ansicht sieht er die Dokumente auf den die Bedingungen des ersten Benutzers zutreffen.


    Die einzige Möglichkeit das so zu lösen sind private bzw Gemeinsam Privat bei Erstbenutzung Ansichten

  • Mal ne frage, kann ich, über einen Agent eine Ansicht verlinken?



    Sprich:
    Der Benutzer loggt sich auf meiner Datenbank ein, dort wird über einen Agent überprüft in welcher Rolle er ist. Er wird auf eine Ansicht geleitet die mit den Dokumenten aus anderen Datenbanken, auf die er Zugriff hat, verlinkt ist.


    Ich möchte halt eine Datenbank erstellen über die jeder Benutzer aus den wichtigen Datenbanken die Daten direkt zur Verfügung hat, ohne das ich die Daten erst replizieren bzw. kopieren und überschreiben muss.


    Geht das? Und wenn, wie?



    Danke schon mal!!
    Mfg
    Christian

  • ..und wieder mal zurück zu meiner Datenbank!


    hab schon wieder ein Problem, und zwar:


    Ich habe die Datenbank vorher lokal auf meinem Client gehabt. Um nun die Multiuser-Funktionalität zu testen, hat mein Admin die nun auf den Dominoserver geschoben. Und nun ist alles Mist, da die DB die ursprüngliche Gestaltung übernommen hat. Temporär kann ich das ändern, indem ich manuell mit meiner lokalen DB repliziere, doch ein paar Minuten später isses wieder vorbei. Nun mene Frage: wie verhindere ich denn, das die Server-DB immer wieder die Standartschablone benutzt?