Autor Thema: [gelöst] Dokumente in Ansichten über Leserfeld ausblenden  (Gelesen 3710 mal)

TY

  • Gast
Hallo zusammen,

über das o.g. Thema wurde schon mehrmals diskutiert. Allerdings habe ich für meinen Fall noch nicht die passende Lösung gefunden.
Aus einer Datenbank DB1 hole ich mir mittels Agent aus einer Ansicht Dokumente und erstelle mir mit den benötigten Felder neue Dokumente in eine zweite Datenbank DB2. (weil in DB1 nichts geändert werden soll) In DB2 habe ich mir eine Ansicht erstellt, die diese Dokumente anzeigt. Mehr wird eigentlich nicht benötigt. Jetzt gibt es aber Dokumente in DB2, die andere User nicht sehen sollen. Dafür habe ich eine Rolle [Admin] angelegt. Nur User mit der Rolle dürfen alle Dokumente sehen.
Mein Problem ist jetzt, wie ich die Rolle auslesen kann, bzw. wie die Rolle beim Öffnen der Datenbank ausgewertet wird. Zunächst habe ich in der Ansichtsauswahl die Einschränkung mittlels "@IsMember("[Admin]";@UserRoles)" vorgenommen. Ich habe aber gelesen, daß in Ansichten nicht mit @UserRoles gearbeitet werden kann, sondern die Rolle eher über ein Leserfeld in einer Maske ausgewertet werden sollte. Also hab ich die Ansichtsauswahl wieder verworfen und mir eine Maske gebaut, die die betroffenen Elemente der Ansicht und ein zusätzliches Leserfeld enthält, obwohl ich die Maske eigentlich nicht brauche. Das Leserfeld ist "Berechnet" und läßt Mehrfachwerte zu. Als Wert enthält es die Rolle [Admin]. Danach habe ich die Dokumente noch mal gelöscht und neu reingeladen, damit auch das Leserfeld greift. Allerdings wird vom Testuser keine Veränderung gesehen. Egal ob die Rolle angehakt ist oder nicht. Da die Datenbank lokal liegt, habe ich den Haken bei Zugriffskontrolle -> Erweitert -> Konsistente ACL .... gesetzt. Meine erste Vermutung lag darin, dass in der Ansichtsauswahl der Select auf die Form fehlte. Nachdem ich den Select gesetzt habe, wurden gar keine Dokumente mehr angezeigt, egal ob mit oder ohne Rolle. Vermutlich weil die Dokumente nicht mit der Maske erzeugt wurden.
Wie kann ich über eine Rolle nur bestimmte Dokumente einer Ansicht anzeigen, die nicht mit einer Maske erstellt wurden?

Danke für Eure Antworten
Jürgen
« Letzte Änderung: 18.10.12 - 16:04:37 von JS »

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Dokumente in Ansichten über Leserfeld ausblenden
« Antwort #1 am: 18.10.12 - 13:41:24 »
Wie kann ich über eine Rolle nur bestimmte Dokumente einer Ansicht anzeigen, die nicht mit einer Maske erstellt wurden?

Gar nicht.

Du brauchst eine Maske mit einem oder mehreren Leserfeldern. Ohne die funktioniert das nicht.

Aus einer Datenbank DB1 hole ich mir mittels Agent aus einer Ansicht Dokumente und erstelle mir mit den benötigten Felder neue Dokumente in eine zweite Datenbank DB2.

Wie holst du dir die Dokumente rüber?

Du könnstest hier die Dokumente aus DB1 in DB2 mit einer Maske erstellen und hier dann auch das Leserfeld füllen.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Dokumente in Ansichten über Leserfeld ausblenden
« Antwort #2 am: 18.10.12 - 13:42:12 »
Hallo,

Wie erstellt denn Dein Agent die Dokumente in der DB2?
Setzt dieser auch das betreffende Reader-Feld? (ist es vorhanden nach dem Import und ist es auch ein READER-Field)

Wenn alles korerkt eingestellt ist, brauchtst Du Dich doch gar nicht um die Selektion der Dokumente zu kuemmern,
da mittels des Leserfeldes dies Notes/Domino fuer Dich erledigt.



Andreas

TY

  • Gast
Re: Dokumente in Ansichten über Leserfeld ausblenden
« Antwort #3 am: 18.10.12 - 14:13:47 »
Hallo,
@Axel: die Dokumente hole ich mir über einen Agenten mit Lotusscript. Der Agent schaut in DB1 in eine bestimmte Ansicht, ließt die benötigten Items aus dem Dokument aus und erstellt damit ein neues Dokument in DB2. Sicher geht das auch über CopyToDatabase ....

@Andreas: Wie wird denn das READER-Feld mit Lotusscript gesetzt?

Jürgen

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Dokumente in Ansichten über Leserfeld ausblenden
« Antwort #4 am: 18.10.12 - 14:17:09 »
Schau Dir einmal die Klasse NotesItem an.


Andreas

TY

  • Gast
Re: Dokumente in Ansichten über Leserfeld ausblenden
« Antwort #5 am: 18.10.12 - 15:05:57 »
Ich habe mir jetzt über die NotesItem-Klasse das Reader-Feld als READER-Field erstellt, mit dem Wert der Rolle [Admin]. Aber mir ist noch nicht ganz klar, wie ich die Rolle auswerte, so dass nicht alle Dokumente sichtbar sind. Wird das nur über die ACL, in dem ich nur Leserechte erteile, gemacht oder muss ich beim Erstellen der Dokumente schon sagen, welches Dokument das READER-Feld erhält und welches nicht?????

Jürgen

klaussal

  • Gast
Re: Dokumente in Ansichten über Leserfeld ausblenden
« Antwort #6 am: 18.10.12 - 15:13:25 »
Wenn in deinem READERS-Feld der Wert [Admin] steht, bekommen nur die Personen die Dokumente zu sehen, die in der ACL
die Rolle "Admin" haben.

Siehe auch die Designer-Hilfe oder hier: http://atnotes.de/index.php/topic,51224.0.html

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Dokumente in Ansichten über Leserfeld ausblenden
« Antwort #7 am: 18.10.12 - 15:14:15 »
Wenn das Feld im Dokument vorhanden ist und auch als Leser-Feld eingestellt ist, dann koennen nur noch Benutzer dieses Dokument sehen, die zum berechtigten Personenkreis gehoeren.

Bei Dir also nur die Personen, die auf die DB zugreifen koennen und die entsprechende Role ([Admin]) haben. (egal welches Recht in der ACL eingestellt ist, natuerlich hoerher als Einlieferer)

Um die Selektion in der Ansicht musst Du Dich bei Leserfeldern NICHT kuemmern, das macht Notes/Domino fuer Dich.
Du sagst nur, zeige in der Ansicht alle Dokumente an, die mit Maske XYZ erstellt wurden. (SELET Form = "<Dein Name der Form>")


Andreas

TY

  • Gast
Re: Dokumente in Ansichten über Leserfeld ausblenden
« Antwort #8 am: 18.10.12 - 15:26:39 »
Die Dokumente werden ja nicht mit einer Maske erstellt, sondern durch Auslesen aus DB1 und speichern in DB2.
Aber Dank Eurer Hilfe bin ich dem Ganzen ein Stück näher gekommen. Ich werd dann den Dokumenten das READER-Feld über ein Kriterium mitgeben, welche nicht von allen eingesehen werden dürfen.

Danke nochmal und einen schönen Tag
Jürgen

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Dokumente in Ansichten über Leserfeld ausblenden
« Antwort #9 am: 18.10.12 - 15:35:22 »
Du brauchst aber eine Maske, um die Dokumente zu erstellen.
Diese muss zwar nicht zwingend in der DB2 existieren, aber beim Erstellen der Dokumente in dieser DB solltest Du schon angeben, was
im Feld "Form" stehen soll.

Macht sich einfacher beim Selektieren der Anzuzeigenden Dokumente in der Ansicht.
(siehe meinen vorherigen Post)

Auch wenn jetzt vielleicht noch nicht, aber irgendwann werden Anforderungen auftauchen, mach eine weitere Ansicht, in der nur die Dokumente
angezeigt werden, die im Feld "ABC" den Wert "wert" stehen haben. (SELECT Form = "xyz" & <Feld>="123")



Andreas

TY

  • Gast
Re: Dokumente in Ansichten über Leserfeld ausblenden
« Antwort #10 am: 18.10.12 - 15:50:54 »
Alles klar. Ich musste dem Dokument in DB2 noch das Item "Form" mitgeben, ansonsten verschwanden die Dokumente in der Ansicht bei Ansichtsauswahl Select Form = "<Formname>".

Hab ich noch umgesetzt und sieht sehr gut aus  :)

Danke nochmal

Jürgen

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: [gelöst] Dokumente in Ansichten über Leserfeld ausblenden
« Antwort #11 am: 18.10.12 - 17:49:13 »
Achtung "new NotesItem(doc...)" hat eine böse Falle:
Zitat
When you create a NotesItem using New, the IsSummary property of the item defaults to False, which means that the item value cannot be displayed in a view or folder.

Besser ist IMHO:
Code
set item=doc.ReplaceItemValue("Leser",LeserArr)
item.isReaders = true

Und ganz wichtig ist auch, dass man die Server mittels Rolle oder Gruppe mit in ein Leserfeld mit aufnimmt, sonst replizieren die Dokumente u.U. nicht.

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

TY

  • Gast
Re: [gelöst] Dokumente in Ansichten über Leserfeld ausblenden
« Antwort #12 am: 19.10.12 - 15:36:40 »
Danke Roland für den Hinweis,

werd ich noch ändern und in Zukunft dran denken.  :)

Jürgen

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz