Beiträge von MacMac

    Hallo Dirk,


    aber wiederspricht das dann nicht wieder dem Doku-Auszug ?!


    Zitat

    Each element of the array is a NotesView object representing a public view or folder in the database, or a private view or folder owned by the effective id running the agent and stored in the database. Private views or folders stored in the desktop are not included.


    Demnach komme ich doch gerade an die privaten Folder, die nicht bereits in der DB sind, eben nicht dran, oder?

    Hi Dirk,


    wahrscheinlich hab ich nur einen Denkfehler - und auch noch nicht ausgetestet:


    Das der Agent mit Anwenderrechten laufen muss, erzwingt wohl allein schon die Tatsache, dass auch Admins private Ordner nicht sehen können - und somit auch keine Agenten, die von Admins ausgeführt werden.


    Wenn ein Agent mit User-Rechten ausgeführt wird, und alle Views bearbeiten soll, die er in der serverseitig gespeicherten Datenbank findet - dann erfasst dieser Agent doch die in der Desktop.ndk gesicherten Ordner gar nicht, oder?!
    Somit könnte ich die Ordner zwar neu anlegen - hätte aber keine Quelle aus der ich Inhalte entnehmen und in die neuen (jetzt in der DB gespeicherten) Ordner einfügen könnte.


    Muss ich denn wirklich die DB zuerst nach lokal replizieren um dort dann auch die Ordner packen zu können, die in der Desktop.dsk stehen?

    Hallo taurec,


    dank Dir! Der von Dir zitierte Doku-Text deckt sich mit dem bei mir festgestellten Verhalten.


    Nach deiner Beschreibung der Speicherorte stehe ich dann vor folgendem Problem:


    Ich muss alle Mails aus dem Archiv einer Mail-DB wieder in die DB zurück schaufeln. Private Views/Folder, die nicht in der DB gespeichert werden durften würde ich dann in der Archiv-DB nicht packen können.


    Andersherum kann ich aber in der Destop.ndk auch nicht identifizieren welche der dort enthaltenen Views/Ordner zur der Archiv-DB gehören, oder?

    Hallo Experten,


    ich habe ein Verständnisprolbem zu einem Hinweis in der Notes-Designer Hilfe. Dort heißt es zur Eigenschaft NotesDataBase.Views:


    Each element of the array is a NotesView object representing a public view or folder in the database. If the database is local, personal folders are also included.


    Ich habe eine Test-Datenbank mit mehreren Ordnern von allen Typen:
    - shared
    - private
    - shared, private on first use
    - shared, desktop on first use


    Egal ob ich mir diese Ordner nun mit einem Agenten in einer lokalen DB oder einer serverseitigen Kopie anschaue: Ich bekomme immer alle Ordner über db.views 'zu fassen'.
    Das würde aber dem Doku-Eintrag wiedersprechen, oder?


    Edit: Gleiches gilt für die Methode db.getView() - auch mit dieser kann ich bei der serverseitigen DB auf alle (auch die privaten) Views zugreifen... - vielleicht hier noch kurz der Code mit dem ich zugreife:



    Unabhängig davon:
    Wo werden denn private und Desktop-Ordner effektiv gespeichert?
    In der DB? oder in der Desktop.dsk? oder anderswo?


    Danke für eure Infos im voraus.

    Hallo Experten,


    ich suche (bisher vergeblich in der Hilfe) nach einer Information darüber, wann der "Cache" der z.B. bei @dbcolumn verwendet werden kann, invalidiert bzw. refreshed wird.


    Ein schließen/neuöffnen der DB bzw. des Clients scheint dabei nicht zu helfen.


    Wo kann ich Infos dazu finden?


    Danke im voraus.

    Hallo Experten,


    Bei Abschnitten mit Berechtigungsprüfung gibt es ein Formelfeld.
    Dort scheint aber nicht (wie beim Hide-Formelfeld) das Ergebnis einer Evaluation (true/false) relevant zu sein.


    Offenbar werden hier direkt die Usernames der berechtigten Anwender erwartet.


    Ist dem so?


    Und zum eigentlichen Topic:
    Kann man die Editier-Berechtigung für dieses Feld auch ACL-Rollenbasiert festlegen?

    Hallo Taurec,


    Zitat

    Und mit den beiden Vorschlägen die ich gemacht habe könntest du es vielleicht schon lösen. Schau sie dir einfach mal genauer an


    Das habe ich natürlich vor meiner letzten Antwort bereits getan (erst recht, da mir @SetViewInfo noch unbekannt war).


    Bei der Variante mit der eingebetteten View wird ja ausdrücklich nur EINE Kategorie angezeigt (oder alle, bei angabe von "*"). Ich kann also "grün" und "gelb" nie gleichzeitig sehen.


    Und auch bei SetViewInfo scheint nur ein einzeler Schlüsselbegriff möglich zu sein - die verwendung einer Textliste "grün":"gelb" führt schon nicht mehr zum gewünschten Ergebnis.

    Mh...
    Damit kann ich dann in der View aber nur Dokumente mit Foo = "grün" XOR Foo = "gelb" XOR ... anzeigen, oder?
    Beide Varianten scheinen nur einen einzelnen Schlüsselwert, aber keine Liste von Schlüsselwerten zuzulassen, oder?


    Nur zur Sicherheit: Mit "Konfigurationsdokument" ist ein "normales" Dokument mit Konfigurationsinfos gemeint - also kein Profildokument. Oder?

    @Turec:
    Dank Dir, das ist was ich brauche.
    Beim umgekehrten Weg stehe ich dann allerdings leider wieder auf dem Schlauch: Ich möchte, dass in einer View nur Dokumente angezeigt werden, bei denen das Feld "Foo" einen Wert enthält, an dem der Anwender über die von dir erwähnten Konfig-Dokumente berechtigt ist.
    Es scheitert daran, dass ich @dbcolumn (mit dem ich mir die berechtigen Werte hole) nicht mit dem Feld "Foo" verglichen bekomme. Ein
    SELECT ((Form = "test") & @Contains(Foo;@DbColumn("":"";"";"FooValues";1)))
    scheint nicht zu funktionieren.
    Wie macht mans richtig?


    aweinrei:
    Mhmh... das würde aber ja auf ein hart-gecodetes Mapping zwischen den Rollen und den erlaubten Werten hinauslaufen - das würde ich halt gern vermeiden.

    Hallo Experten,


    ich vermisse in Notes eine einfache (=nicht umständlich selbstgestrickte)
    Möglichkeit um Anwendern nur Berechtigung an einzelnen Werten für z.B. ein Dialogfeld zu geben.


    Ich möchte z.B. dass User A nur die Werte "grün", "blau", "rot" auswählen kann,
    User B aber "grün" und "lila".


    Das Notes-Berechtigungsmodell ist sehr vielstufig - aber auf Feld-Wert-Ebene scheint es zu enden - oder?


    Wie sieht die übliche Umsetzung dieser Anforderung aus?
    (Sie sollte aber nicht "hardcoded" sein, sondern dynamisch - sprich: die Zuordnung der Anwender(gruppen) zu den erlaubten Werten sollte konfigurierbar sein).

    Hallo erstmal,


    ich möchte aus einem langläufer-LS-Agenten heraus Statusmeldungen an den Anwender ausgeben (nicht zuletzt um diesen zu Informieren, dass es noch einen Fortschritt gibt...).


    Eine modale Messagebox/Prompt ist da wohl eher ungeeignet, da der Anwender nicht gezwungen sein soll, vor Bildschirm sitzten zu bleiben, um die Info wegzuklicken - damit der Agent dann weiter wirken kann...


    Schön wäre eine Ausgabe in die Statusleiste des Notes-Clients - dazu finde ich aber bisher keinen Zugang.


    Könnt ihr mir da weiterhelfen?

    Zitat

    Dir ist aber schon klar, daß UnprocessedDocuments nur dann selektierte Dokumente enthält, wenn diese händisch gestartet werden ?


    Nein, war es mir bisher nicht (mit "diese" meinst du vermutlich Agenten, oder).


    Zitat

    Liest du eigentlich was ich geschrieben habe ?


    Offensichtlich schon - ich habe nur ab und zu das Problem zu unterscheiden, wann ich jedes Wort wortwörtlich aufzufassen habe, und wann sich der Zusammenhang geändert hat. Mea culpa.


    Meine Unklarheiten sind aber letztlich mit


    [qutoe]Das würde dann bedeuten, dass die Ausage "Man kann aus Datenbank B nicht feststellen, welche Dokumente in Datenbank A gerade selektiert sind - auch/erst recht nicht, wenn DB A in einem Frame von B zu sehen ist" so pauschalen Bestand hat[/quote]


    Zitat


    [..] die Aussage ist natürlich korrekt.


    geklärt.


    Dank dir für die Unterstützung ;)

    Hallo taurec,


    du meinst:


    Zitat

    Das einzige was du machen könntest, wäre einen Agenten in A zu starten, der die UnprocessedDocuments durchgeht, sich die UNIDs irgendwo merkt und dann den Agenten in B startet, dem diese Info übergeben und der kann sie sich dann einzeln holen.


    Das habe ich natürlich nicht überlesen. Ich dache aber, dass aus meiner Problembeschreibung heraus schon verständlich geworden wäre, dass das _händische_ starten in A keine Option ist. Daher danach der Ansatz den Agenten in A remote zu starten.


    Das hast Du mit "wo ist denn da das Problem" kommentiert.
    Und letztlich sind wir jetzt an dem Punkt, dass ich natürlich einen Agenten remote starten kann, dies mich aber dem eigentlichen Problem nicht näher bringt.


    Welchen Teil habe ich nun deiner Meinung noch nicht gelesen, ignoriert oder missverstanden?

    Das würde aber dann doch bedeuten, dass ich an die "markierten Dokumente" auch über den getriggerten Agent nicht dran komme - und das war ja der ursprüngliche Sinn der Sache.


    Oder sehe ich das falsch?


    Das würde dann bedeuten, dass die Ausage "Man kann aus Datenbank B nicht feststellen, welche Dokumente in Datenbank A gerade selektiert sind - auch/erst recht nicht, wenn DB A in einem Frame von B zu sehen ist" so pauschalen Bestand hat - oder?

    Der Agent in B hatte mich eher weniger gesorgt.
    Zur Übersich:


    DB A:
    Agent A
    Holt per notesdatabase.unprocesseddocuments alle in DB A markierten Dokumente und schreibt deren UID (vorläufig) in ein Dokument in DB B.


    DB B:
    Agent B
    Holt Agenten A in DB A und triggert diesen per notesagent.run



    Agent B ist eingestellt auf
    Trigger: Durch Ereignis - Auswahl im Menü Action
    Ziel: Keines


    Agent A muss auf Ziel "Alle ausgewählten Dokumente" eingestellt sein. Diese Option gibt es nur beim Trigger "Durch Ereignis - Auswahl im Menü Action" bzw. "Auswahl aus Agentenliste".


    Stelle ich aber eine dieser beiden Trigger ein, führ ein Aufruf von Agent B (der dann Agent A triggern soll) zu folgender Fehlermeldung:


    "Notes Error: Im Hintergrund ausgeführter oder eingebetteter Agent verwendet einen nicht überstützten Auslöser oder Suchtyp".

    Hallo Taurec,


    jop, soweit war's klar.
    Scheinbar steh ich dann aber ein wenig am Schlauch.


    Wie müssen die Agenten bezüglich Trigger und Dokumenten-Selektion eingestellt sein?


    Wenn ich den getriggerten Agenten in DB A auf <> "ausgewählte Dokumente" stelle, bekomme ich die zu viele/keine Dokumente von diesem Agenten geliefert (per notesdatabase.UnprocessedDocuments)


    Und je nachdem wie ich den Trigger einstelle, bekomme ich entweder die Fehlermeldung, dass dieser Triggertyp nicht remote angestoßen werden kann, oder aber ich bekomme kein Ergebnis. (Der Agent in A sollte mir wieder Dokumente in B erzeugen - tut er aber nicht, wenn er remote angestoßen wird).


    Wie muss das also richtig aussehen?

    Hallo,


    ich bin (bei Bedarf) "Administrator mit voller Berechtigung".


    Auf dem Server existiert eine Datenbank (mit konsistenter ACL) und diversen ACL-Einträgen (keine Gruppen), die aber mit keiner Notes-ID mehr mit Manager-Rechten zugängig ist.


    Trotz dem "Admin mit voller Berechtigung"-Privileg (welches der ACL-Dialog "effektiver Zugriff" bestätigt) kann ich die ACL nicht bearbeiten. Die Controls sind grau.


    Ich finde dieses verhalten unerwartet. Kenn es jemand erklären?