Autor Thema: Gruppen eines Benutzers auslesen  (Gelesen 7339 mal)

Offline MarkusL

  • Aktives Mitglied
  • ***
  • Beiträge: 124
  • Geschlecht: Männlich
Gruppen eines Benutzers auslesen
« am: 16.10.15 - 14:21:29 »
Hallo zusammen,

ich möchte gerne alle Gruppen für einen bestimmtern Benutzer auslesen und diese Infos in ein Dokument mit den Felder Benutzer und Gruppen schreiben.

Wie komme ich an die Gruppen eines bestimmten Benutzers?
Das ganze benötige ich in Lotus Script, da dies in ein längeres, bereits vorhandenes Script eingebunden werden muss.

Bisher habe ich dies über eine Ansicht im names.nsf dargestellt, die aber leider nur beim Ansehen aktualisiert wird. Bei mir ist das kein Problem, weil ich mir die Ergebnisse immer vorher ansehe, aber meine Kollegen machen das nicht. Damit sind Fehler vorprogrammiert.
(Die ursprüngliche Aufgabe und Programmierung erforderte dies auch nicht.)

Im Moment stehe ich vor dem Wald.......

Danke für eure Hilfe

Markus
Version Lotus Notes / Domino: 8.5.3
Server: 1 Cluster, 1 weiterer Server
Anzahl Benutzer: ca. 230

Offline Christian Zalto

  • Frischling
  • *
  • Beiträge: 5
Re: Gruppen eines Benutzers auslesen
« Antwort #1 am: 18.10.15 - 15:20:31 »
Ein Weg fühlt über das Auswerten von "@UserNamesList", also

Dim groups As Variant
groups = Evaluate("@UserNamesList")

Man bekommt damit allerdings mehr zurück als nur die Gruppen. Ein Beispiel, wie man das Überflüssige wieder aussortieren kann, findet sich hier

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Gruppen eines Benutzers auslesen
« Antwort #2 am: 18.10.15 - 17:12:30 »
hat aber die Einschränkung, dass es nur mit der primären names.nsf funktioniert. Beim Einsatz von DA funktioniert die Methode nicht.
Da muss man schon ein bisschen mit der API arbeiten ...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline MarkusL

  • Aktives Mitglied
  • ***
  • Beiträge: 124
  • Geschlecht: Männlich
Re: Gruppen eines Benutzers auslesen
« Antwort #3 am: 19.10.15 - 09:01:08 »
Danke für eure Antworten.

@UserNamesList funktioniert aber doch nur für den aktuellen User der Session.
Ich benötige aber, dass berechtigte Benutzer dies für ausgewählte andere Benutzer auslesen dürfen.

Die Bearbeiter der Datenbank müssen die Felder für andere Mitarbeiter füllen dürfen.

Gruß
Markus
Version Lotus Notes / Domino: 8.5.3
Server: 1 Cluster, 1 weiterer Server
Anzahl Benutzer: ca. 230

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Gruppen eines Benutzers auslesen
« Antwort #4 am: 19.10.15 - 09:10:03 »
... Bisher habe ich dies über eine Ansicht im names.nsf dargestellt, die aber leider nur beim Ansehen aktualisiert wird. ...
Kannst Du die Ansicht nicht einfach per Script aktualisieren? NotesView.Refresh

Offline MarkusL

  • Aktives Mitglied
  • ***
  • Beiträge: 124
  • Geschlecht: Männlich
Re: Gruppen eines Benutzers auslesen
« Antwort #5 am: 19.10.15 - 09:14:19 »
Hallo Peter,

danke für den Tipp. Werde ich ausprobieren.
Daran habe ich bis jetzt nicht gedacht.  :-\

Gruß Markus
Version Lotus Notes / Domino: 8.5.3
Server: 1 Cluster, 1 weiterer Server
Anzahl Benutzer: ca. 230

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Gruppen eines Benutzers auslesen
« Antwort #6 am: 19.10.15 - 09:26:45 »
EDIT: hier stand Unsinn...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Gruppen eines Benutzers auslesen
« Antwort #7 am: 19.10.15 - 17:09:29 »
Also, um die Aufgabe auch unter Einbeziehung von DA programmatisch zu lösen, muss man auf die API zurückgreifen. Auch dort gibt es keine direkte Funktion. Da muss man schon ein bisschen Code schreiben. Man kann das aber in eine dll kapseln und die entsprechende Funktion dann in LS verwenden. Auch LSX ist natürlich möglich.
Evtl. kann man ein gemeinsames ONTF project aufziehen. Von der IBM erwarte ich keine weiteren Updates mehr ...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Gruppen eines Benutzers auslesen
« Antwort #8 am: 21.10.15 - 23:25:02 »
Ich hab hier mal eine LS2J Funktion gepostet: http://atnotes.de/index.php/topic,58892.0.html
Die hat aber auch ihre Krücken bei Sonderzeichen  ::)

Das "zu fuß" auslesen aus der $VimPeopleGroups Anscht im Adressbuch ist meist zu langsam, da rekursiv aufgelöst werden muss und bei stark verschachtelten Gruppenhierarchien in Verbindung mit hoher Netzwerklatenz viel Zeit drauf gehen kann.
Was du bräuchtest, ist die NAMELookup2-Funktion
http://www-12.lotus.com/ldd/doc/domino_notes/9.0/api90ref.nsf/852561bd0045e8e785255b3c005a57bb/7b7dbb5f82e0197e482573fb00323579?OpenDocument
welche du aber aus LotusScript nicht aufrufen kannst, da Callbacks von LS nicht unterstützt werden.
Dazu brauchst eine eigens kompilierte DLL für jede Plattform.

Alternativ geht auch die JNA-Lib (Java Native Access) - damit funktionieren auch Callbacks. Allerdings hab ich das bis jetzt noch nicht unter LotusScript probiert, sondern lediglich als OSGi-Plugin des HTTP-Servers

Vorteil von JNA: Es funktioniert auf den wichtigsten Plattformen (win/linux, 32/64bit)

@Ulrich: Hier gleich mal eine Frage an dich als C-API Guru  ;D  Wie macht man das am Besten, dass man die *.DLL/*.so für alle Plattfromen compiliert?
Dass ich Linux+gcc aufsetze ist keine allzu große Kunst. Bei Windows muss ich mir vermutlich das VisualStudio-Monster installieren (und hier scheinbar auch eine ätere Version)
Oder kann ich unter Linux auch eine DLL für Win32/64 cross-compilieren? Und was mach ich mit Exoten wie AS/400?  ;D


Gruß
Roland
« Letzte Änderung: 21.10.15 - 23:29:48 von pram »
Roland Praml

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

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Gruppen eines Benutzers auslesen
« Antwort #9 am: 22.10.15 - 07:04:01 »
@Roland

Ein CrossCompile ist mir noch nicht gelungen; auch kein compile einer 32bit Linux version auf einem 64Bit System.

Daher habe ich mehrere VMs auf denen ich die builds erstelle.

1 x Win 7 Client für VisualStudio 32/64 Bit
1 x Linux 32
1 x Linux 64

Und für die AIX braucht man natürlich entsprechende HW; das lässt sich nicht virtualisieren

Für das Erstellen der builds verwende ich TeamCity in verbindung mit FIT und Atlassian Jira.

Wenn ich Codeänderungen vornehme und einchecke, dann kann ich danach den Buildprozess anstossen. Der rattet dann über alle Konfigurationen und erstellt die binaries auf den jeweils benötigten Maschinen.
Anschliessend wird alles an zentraler Stelle paketiert; incl automatisierter ReleaseNotes aus Jira.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Gruppen eines Benutzers auslesen
« Antwort #10 am: 22.10.15 - 22:40:23 »
Danke, das bestätigt meine Vermutung/Befürchtung, dass eigene VMs bzw. für AIX sogar extra Hardware erforderlich ist.

Für unsere Java-Projekte nutzen wir inzwischen auch Jira, Bamboo und Stash.

Gruß
Roland
Roland Praml

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

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Gruppen eines Benutzers auslesen
« Antwort #11 am: 23.10.15 - 09:33:22 »
@Roland
Cross-Compile funktioniert natürlich; aber für komplexere Projekte habe ich das noch nicht wirklich fehlerfrei hinbekommen.

http://www.eknori.de/2015-10-23/build-windows-executables-on-linux/
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Sven Hasselbach

  • Senior Mitglied
  • ****
  • Beiträge: 316
  • Geschlecht: Männlich
    • blog@hasselba.ch
Re: Gruppen eines Benutzers auslesen
« Antwort #12 am: 23.10.15 - 10:54:26 »
@Roland:
Kannst Du mir den JNA-Code zukommen lassen? Danke.

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Gruppen eines Benutzers auslesen
« Antwort #13 am: 23.10.15 - 15:43:26 »
Habe hier mal die wesentlichen Teile Quick & Dirty zusammenkopiert:
https://github.com/rPraml/domino-jna-example
Dabei auch festgestellt, dass bei den beteiligten Methoden (NAMELocateNextName2, NAMELocateNextMatch2,NAMELookup2,NAMEGetTextItem2) keine Callbacks verwendet werden und dies möglicherweise sogar unter LotusScript ansprechbar ist.
Roland Praml

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

Offline Sven Hasselbach

  • Senior Mitglied
  • ****
  • Beiträge: 316
  • Geschlecht: Männlich
    • blog@hasselba.ch
Re: Gruppen eines Benutzers auslesen
« Antwort #14 am: 23.10.15 - 19:46:05 »
Vielen Dank!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz