Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: cococo69 am 14.03.03 - 09:34:20

Titel: Im Delegierungsprofil per LS eine Gruppe hinzufügen
Beitrag von: cococo69 am 14.03.03 - 09:34:20
Hallo an alle,

bei uns soll im Delegierungsprofil aller Mitarbeiter per LS eine Notes-Gruppe  in das Feld "WriteCalendar" (Nur die folgenden Personen/Gruppen können meinen Kalender verwalten) angefügt werden.

Kann mir hierfür jemand ein Script zur Verfügung stellen?

Danke im Voraus!!!
Titel: Re:Im Delegierungsprofil per LS eine Gruppe hinzufügen
Beitrag von: ata am 17.03.03 - 19:49:54
... das geht nur dann unproblematisch, wenn jeder User die Aktion bei sich auf dem Rechner ausführt. Ich würde dazu per Mail einen Button versenden. Die Empfänger drücken diesen Button mit der folgenden Formel:

@SetProfileField("CalendarProfile" ; "PublicWrite" ; "0" ; @UserName );
@SetProfileField("CalendarProfile" ; "WriteCalendar" ; "DerNameDerGruppe" ; @UserName );

... das sollte es eigentlich schon sein...

... ein anderer Weg wäre ein Server-basierter Agent, doch der muß auf dem Server gestartet werden und dürfte in LS umsetzbar sein - dann braucht man den User nicht...

ata
Titel: Re:Im Delegierungsprofil per LS eine Gruppe hinzufügen
Beitrag von: cococo69 am 25.03.03 - 14:36:03
Hallo Ata,

hast Du mir vielleicht einen Ansatzunkt, wie ich per Script die einzelnen Mail-Datenbanken anpsrechen muss und wie ich dann zum Delegierungsprofil gelange?
Titel: Re:Im Delegierungsprofil per LS eine Gruppe hinzufügen
Beitrag von: ata am 27.03.03 - 23:41:34
... um die Mailboxen von anderen anzusprechen mußt du die entsprechenden Rechte auf die Datenbanken von den jeweiligen Usern bekommen...

... was spricht gegen den Weg, den ich dir bereits genannt habe. Der User erhält per Mail eine Schaltfläche, die er zu drücken hat. Wenn du darüber Kontrolle haben möchtest, dann laß dir noch eine Kontrollmail vom User zukommen...

ata
Titel: Re:Im Delegierungsprofil per LS eine Gruppe hinzufügen
Beitrag von: cococo69 am 28.03.03 - 11:38:09
Hallo ata,

gegen die Button-Lösung spricht, dass das einfach nicht geht (und vermutlich so auch nicht gehen kann), da beim Öffnen des Deligierungsprofils die entspr. Rechte aus der ACL in das Feld WriteCalendar eingelesen und beim Speichern wieder in die ACL geschrieben werden. Somit kann ich nicht einfach "nur" die Werte per Schaltfläche in das Feld schreiben.

Wenn ich den Wert per @SetProfileField... in das Feld schreibe und gleich anschl. per @GetProfileField... auslese steht der gewünschte Wert drin. Sobald ich aber das Delegierungsprofil-Dokument einmal manuell öffne habe ich wieder den alten Zustand.

Die Sache scheint wohl etwas komplizierter zu sein, oder sehe ich das falsch???

Wenn ich das richtig sehe, muss ich wohl oder übel jedem Mitarbeiter eine Mail mit einer Anleitung senden wie er die Gruppe manuell in sein Delegierungsprofil einfügt!!!????. Ich darf gar nicht daran denken, wie oft danach mein Telefon klingeln wird.......!!!!! ;-((((
Titel: Re:Im Delegierungsprofil per LS eine Gruppe hinzufügen
Beitrag von: ata am 28.03.03 - 14:04:05
... ich werde mich der Sache mal annehmen, allerdings wird das heute nichts mehr, denn ich muß mich noch auf ein Konzert vorbereiten - vielleicht am WE...

ata
Titel: Re:Im Delegierungsprofil per LS eine Gruppe hinzufügen
Beitrag von: cococo69 am 28.03.03 - 20:17:18
... wäre bombastisch, wenn das am WE klappen würde, ansonsten muss ich am Montag an ca. 400 Mitarbeiter eine Mail mit Anleitung für die manuelle Pflege senden.
Titel: Re:Im Delegierungsprofil per LS eine Gruppe hinzufügen
Beitrag von: ata am 29.03.03 - 11:37:24
... wenn, dann am Sonntag...

ata
Titel: Re:Im Delegierungsprofil per LS eine Gruppe hinzufügen
Beitrag von: ata am 30.03.03 - 11:29:54
... hier wäre die Version mit der Schaltfläche in einer Mail. Der User benötigt Managerrechte in seiner Mail-DB...

Code
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim docMail As NotesDocument
   Dim acl As NotesACL
   Dim entry As NotesACLEntry
   Dim sGroupName As String
   Dim sReturnMailAddress As String
   Dim sThankYou As String
   
   sGroupName = "DeineKalenderGruppe"
   sReturnMailAddress = "info@anton-tauscher.de"
   sThankYou = "Vielen Dank. Der Vorgang wurde erfolgreich abgeschlossen. Dieses Dokument wird geschlossen."
   
   Set db = session.CurrentDatabase
   Set acl = db.ACL
   
   ' # Gibt es die Gruppe bereits in der ACL?
   Set entry = acl.getEntry( sGroupName )
   If Not entry Is Nothing Then      
      Set docMail = db.CreateDocument
      docMail.Form = "memo"
      docMail.Subject = |ACHTUNG: User "| + session.UserName + |" hatte die Gruppe "|+sGroupName+|" bereits eingetragen.| 
      Call docMail.Send( False , sReturnMailAddress)
      Msgbox |Die Gruppe "|+sGroupName+|" gibt es bereits... | , 0 , "ACL-Prüfung"
      Exit Sub
   End If
   
   ' # Die Gruppe eintragen mit den erforderlichen Rechten...
   Set entry = acl.CreateACLEntry(sGroupName , 0)   
   entry.IsPublicReader = True
   entry.IsPublicWriter = True   
   Call acl.Save
   
   ' # Jetzt zur Sicherheit noch das Profildokument updaten...
   Set doc = db.GetProfileDocument("CalendarProfile")
   Set uidoc = ws.EditDocument(True , doc)
   Call uidoc.Save
   Call uidoc.Close
   
   Set docMail = db.CreateDocument
   docMail.Form = "memo"
   docMail.Subject = |User: "| + session.UserName + |" hat die Gruppe "|+sGroupName+|" eingetragen.| 
   Call docMail.Send( False , sReturnMailAddress )
   
   Msgbox sThankYou
   ws.CurrentDocument.Close

... den Code in eine Schaltfläche und per Mail an alle betroffenen User versenden...

... es gibt noch die Möglichkeit, den Code in einen Agent einzubauen, der dann auf dem Server gestartet werden muß. ACHTUNG: der Agent muß mit einer ID unterzeichnet werden, die berechtigt ist Änderungen in den ACL's der Maildatenbanken vorzunehmen.

... so in der Art könnte der Agent aussehen

Code
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim docMail As NotesDocument
   Dim acl As NotesACL
   Dim entry As NotesACLEntry
   Dim sGroupName As String
   Dim pathName As String, fileName As String
   
   sGroupName = "DeineKalenderGruppe"
   pathName = "D:\Server5\Lotus\Domino\Data\Mail\*.*"
   fileName = Dir$(pathName, 0)
   Do While fileName <> ""
      Msgbox fileName
      Set db = session.GetDataBase("Celerona/Celerona" , "Mail\"+fileName)
      If db.Isopen Then
         Set acl = db.ACL
         
         ' # Gibt es die Gruppe bereits in der ACL?
         Set entry = acl.getEntry( sGroupName )
         If Not entry Is Nothing Then
            Msgbox |Die Gruppe "|+sGroupName+|" gibt es bereits... | , 0 , "ACL-Prüfung"
            Exit Sub
         End If
         
         ' # Die Grupe eintragen mit den erforderlichen Rechten...
         Set entry = acl.CreateACLEntry(sGroupName , 0)   
         entry.IsPublicReader = True
         entry.IsPublicWriter = True   
         Call acl.Save
         ' # Jetzt zur Sicherheit noch das Profildokument updaten...
         Set doc = db.GetProfileDocument("CalendarProfile")
         Set uidoc = ws.EditDocument(True , doc)
         Call uidoc.Save
         Call uidoc.Close
      End If      
      fileName = Dir$()
   Loop   
   Print "Agent abgeschlossen"

ata
Titel: Re:Im Delegierungsprofil per LS eine Gruppe hinzufügen
Beitrag von: cococo69 am 30.03.03 - 12:50:00
Hallo ata,

hast Du es doch tatsächlich war gemacht in Sonntagsarbeit mir nicht nur eine sondern gleich zwei Lösungen zu zaubern.....!!!!!!

Ich kann Dir gar nicht sagen, wie dankbar ich Dir bin! Natürlich werde ich es gleich morgen früh ausprobieren und Dich dann wieder informieren.

Bis dahin noch einen schönen Sonntag und nochmal viiiiiieeeeelen Dank!!!!!!!!!!!!!!!!!!!!!

Gruß
Armin
Titel: Re:Im Delegierungsprofil per LS eine Gruppe hinzufügen
Beitrag von: ata am 30.03.03 - 15:36:32
... ich hoffe die Rechte sind entsprechend verteilt...

... toi toi toi

ata
Titel: Re:Im Delegierungsprofil per LS eine Gruppe hinzufügen
Beitrag von: cococo69 am 31.03.03 - 10:53:22
Hallo Ata,

habe mich für die Schaltflächen-Lösung entschieden und ich kann Dir ein dickes Lob aussprechen, die Sache funktioniert BESTENS!!!

Herzlichen Dank nochmal, Du warst mir eine große Hilfe!
Titel: Re:Im Delegierungsprofil per LS eine Gruppe hinzufügen
Beitrag von: ata am 31.03.03 - 13:11:38
... na dann bin ich mal gespannt, wieviele Mails ich bekomme...  ;D ;D ;D

ata
Titel: Re:Im Delegierungsprofil per LS eine Gruppe hinzufügen
Beitrag von: cococo69 am 31.03.03 - 13:29:23
... Mails wirst Du nicht viele erhalten, ich habe die eMail-Adresse natürlich geändert ...
Titel: Re:Im Delegierungsprofil per LS eine Gruppe hinzufügen
Beitrag von: ata am 31.03.03 - 16:44:34
... war nur so zum Spaß, obwohl mir das neulich bei einer ähnlichen Anfrage so erging - es waren ca. 250 Mails...  ;D ;D ;D

... Hauptsache das Dingens lief...

ata