Hurra. Problem ist nun gelöst
Falls jemand mal das gleiche Problem hat und die Lösung sucht...
Es reicht, wenn eine Gruppe, die gleich heißt im PAB angelegt wird und der User, der Lokal Zugriff haben soll, dort eingetragen wird.
Anschließend muß man nur die Ansicht ($ServerAccess) aktualisieren. Dann gehts.
Ich möchte die lokale Replik aus einem Portal öffnen.
Mit folgendem Code hats geklappt:
Sub Click(Source As Button)
On Error 4060 Goto Zugriff
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As Notesdatabase
Dim strPfad As String
strPfad = "Pfad"
Set db = session.GetDatabase("", strPfad ,False)
Call ws.OpenDatabase("", strPfad , , , True )
Exit Sub
Zugriff:
Set db = GruppeAktualisieren(strPfad)
Resume Next
End Sub
Function GruppeAktualisieren(strPfad) As NotesDatabase
Dim session As New NotesSession
Dim dbNames As NotesDatabase
Dim viewGr As NotesView
Dim viewSA As NotesView
Dim doc As NotesDocument
Dim namUser As New NotesName(session.UserName)
Dim namMember As NotesName
Dim item As NotesItem
Dim intDabei As Integer
intDabei = False
Set dbNames = session.GetDatabase("","names.nsf")
Set viewGr = dbNames.GetView("Groups")
Set doc = viewGr.GetDocumentByKey("kACL",True)
If doc Is Nothing Then
Set doc = New NotesDocument(dbNames)
With doc
.GroupType = "2"
.ListOwner = namUser.Canonical
.LocalAdmin = namUser.Canonical
.AvailableForDirSync = "1"
.DocumentAccess = "[GroupModifier]"
.GroupTitle = "2"
.ListName = "Gruppenname"
.Members = namUser.Canonical
.Type = "Group"
.Form = "Group"
Call .ComputeWithForm(True,True)
Call .Save(True,True)
End With
Else
Forall x In doc.Members
Set namMember = New NotesName(x)
If namUser.Canonical = namMember.Canonical Then
intDabei = True
End If
End Forall
If intdabei = False Then
Set item = doc.GetFirstItem("Members")
Call item.AppendToTextList( namUser.Canonical )
Call doc.Save(True,True)
End If
End If
Set viewSA = dbNames.GetView("($ServerAccess)")
Call viewSA.Refresh()
Set GruppeAktualisieren = session.GetDatabase("",strPfad,False)
End Function
lg
-rar