Aus Kategorien Gruppen erstellen?

  • Salut,


    im privaten Adressbuch sind die Einträge nach Kategorien sortiert [was ein leichteres Auffinden ermöglicht].


    Aus diesen Kategorien würde ich gern Gruppen erstellen (damit ich allen Teilnehmern einer Kategorie schicken kann). Ist das irgendwie "automatisch" möglich (also ohne händisches Anlegen der Gruppen)?


    Grüße, e2e4

    Domino-Server Release 6.5.1 SuSE Linux
    Domino-Client Release 6.5.3

    • Offizieller Beitrag

    Mit einem Script-Agent sollte es funktionieren.
    - Schleife über alle Personen
    - prüfen ob Gruppe schon existiert (nein... neu anlegen)
    - prüfen ob Person schon Member (nein... Person hinzufügen)


    Habe ich noch nicht benötigt, deshalb habe ich auch keinen fertigen Code zur Hand. Die Idee finde ich gut - ist eine Überlegung wert, es den Usern anzubieten.


    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

  • Salut,


    Zitat

    Mit einem Script-Agent sollte es funktionieren.


    Args, ich hab' vom Designer null Ahnung - bin doch nur mit der Administration beschäftigt ;)


    Grüße, e2e4

    Domino-Server Release 6.5.1 SuSE Linux
    Domino-Client Release 6.5.3

    • Offizieller Beitrag

    Mal sehen vielleicht reicht mir die Zeit nächste Woche. Ich poste es dann hier.


    Gruß
    Dirk

    • Offizieller Beitrag

    Anbei das versprochene Script - ging etwas schnelle. Mit meinem lokalem Adressbuch ist es getestet.


    - Es werden keine Gruppen und auch keine schon eingetragenen Member gelöscht, d.h. alle manuell hinzugefügten Member bleiben in der Liste.
    - Fliegt eine Kategorie aus der DB, dann bleibt die Liste erhalten.
    - Wird der Fullname eine Person geändert, erscheint die Person mit dem alten und dem neuen FullName in der Liste.
    - Personen ohne Fullname erscheinen nicht in der Gruppe.
    Falls es noch Probleme gibt, einfach hier posten.


  • Wow! :top:


    Zitat

    Falls es noch Probleme gibt, einfach hier posten.


    Jetzt noch für einen Admin die Anleitung wie ich das in den Designer bekomme ;) :)


    Grüße, e2e4

    Domino-Server Release 6.5.1 SuSE Linux
    Domino-Client Release 6.5.3

    • Offizieller Beitrag

    1. DB im Notes-Client öffnen
    2. Menü <Ansicht> Eintrag "Agenten" wählen, dann solte sich der Designer öffnen und Du alle Agenten sehen.
    3. Schaltfläche "Neuer Agent" verwenden


    bei Notes 5.x
    4. Name eintragen, so erscheint das Teil dann unter Aktionen (z.B. "Gruppen aus Kategorie berechnen")
    5. "Gemeinsam genutzter Agent" anhaken
    6. Eintrag bei "Wann soll der Agent gestartet werden?" - "Manuell aus dem Menü 'Aktionen'"
    7. Eintrag bei: "Für welche Dokumente soll er gelten?" - "Alle Dokumente in der Datenbank"
    8. im Feld Starten den Eintrag "Einfache Aktion(en)" durch "LotusScript" ersetzen
    9. bei den Objekten "Initialize" auswählen
    10. jetzt sollte

    Code
    Sub InitializeEnd Sub

    auf der rechten Seite stehen. Dazwischen den Code

    Code
    Dim session As New NotesSession  Dim db As NotesDatabase  Dim view_Personen As NotesView  Dim view_Gruppen As NotesView  Dim doc_Personen As NotesDocument  Dim doc_Gruppen As NotesDocument  Set db = session.CurrentDatabase  Set view_Personen = db.GetView("People")  Set view_Gruppen = db.GetView("Groups")  Set doc_Personen = view_Personen.GetFirstDocument  Dim Array() As String  Dim Kategorie As String  While Not doc_Personen Is Nothing    If Trim(doc_Personen.FullName(0)) <> "" Then      For i = 0 To Ubound(doc_Personen.Categories)        If Trim(doc_Personen.Categories(i)) <> "" Then          Kategorie = Sonderzeichen_ersetzen(doc_Personen.Categories(i))          Set doc_Gruppen = view_Gruppen.GetDocumentByKey(Kategorie, True)          If doc_Gruppen Is Nothing Then            Set doc_Gruppen = New NotesDocument(db)            doc_Gruppen.Form = "Group"            doc_Gruppen.Type= "Group"            Set item_Members = New NotesItem(doc_Gruppen, "Members", Trim(doc_Personen.FullName(i)), NAMES)            Set item_DocumentAccess = New NotesItem(doc_Gruppen, "DocumentAccess", "[GroupModifier]", AUTHORS)            doc_Gruppen.GroupType = "0"            doc_Gruppen.AvailableForDirSync = "1"            doc_Gruppen.ListName = Kategorie            flag = doc_Gruppen.ComputeWithForm(True, True)            doc_Gruppen.Save True, True, True            Call view_Gruppen.Refresh          Else            Redim Array(0)            vorhanden = False            For i_Array = 0 To Ubound(doc_Gruppen.Members)              If Trim(doc_Gruppen.Members(i_Array)) = Trim(doc_Personen.FullName(0)) Then                i_Array = Ubound(doc_Gruppen.Members)                vorhanden = True              Else                If Array(0) <> "" Then                  Redim Preserve Array(Ubound(Array) +1)                End If                Array(Ubound(Array)) = Trim(doc_Gruppen.Members(i_Array))              End If            Next            If Not vorhanden Then              Redim Preserve Array(Ubound(Array) +1)              Array(Ubound(Array)) = Trim(doc_Personen.FullName(0))              doc_Gruppen.Members = Array              doc_Gruppen.Save True, True, True            End If          End If        End If      Next    End If    Set doc_Personen = view_Personen.GetNextDocument(doc_Personen)  Wend

    einfügen.
    11. Nach "End Sub" im Script den Code

    einfügen.
    12. Speichern und das Teil testen



    Gestern ist mir noch der Gedanke gekommen, dass beim Speichern einer Person dies auch in die Kategorie-Gruppen einsortiert werden kann - bedeutet ein Script beim Speichern.


    Gruß
    Dirk

  • Salut Dirk,


    Super-Anleitung, danke! Ich habe die komplette Datenbank in der ich den Code eingefügt habe nochmal kompilieren lassen und keinen Fehler erhalten.


    Wo starte ich den Agent aber im Notes-Client? Ich habe nur Möglichkeiten gefunden, die den Designer ständig neu öffneten ...


    Grüße, e2e4

    Domino-Server Release 6.5.1 SuSE Linux
    Domino-Client Release 6.5.3

    • Offizieller Beitrag

    Im Menü <Aktionen> gibt es einen neuen Eintrag. In meinem Beispiel ist es "Gruppen aus Kategorie berechnen".


    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

  • Super, jetzt hab auch ich es gefunden! Fantastisch und funzen tut es auch super!


    Ist doch damit ein Beitrag für die FAQ, hm?! :)


    Grüße, e2e4

    Domino-Server Release 6.5.1 SuSE Linux
    Domino-Client Release 6.5.3