Lotus-Notes Datenbank als Link senden mit Funktio

Hallo,

ich hab da smal irgendwo gesehen aber leider keine Idee wie das machbar ist.

Ich habe da Lotus-Notes/Domino 8.5.x im Einsatz. Nun soll ich ausgewählten Anwendern eine auf dem Server befindliche Datenbank zugänglich machen, und zwar so, das diese als lokale Replika auf dem Workspace eingerichtet wird.

Nun habe ich da eine größere Menge von Usern, Aussendienstlern etc. - schier endlose Aktion wenn ich das manuell machen möchte.

Wer kann mir sagen, wie ich folgendes Szenario hinbekomme:

Den Link an den User senden: kein Thema das geht einfach; nur dann hat er eben nur den Zugriff auf der Datenbank, welche auf dem Server liegt. Lokale Replika nur manuell einzurichten (will ich ja aber nicht)
In dem Mail mit dem Link stelle ich mir vor, einen Button einzubauen, den der User anklicken kann und somit die Replika eingerichtet wird für ALLE Lokationsprofile.
Den Link zur Serverdatenbank löschen, den er soll nur lokal arbeiten und dann seine Änderungen replizieren. Das ist aber nicht Lebensnotwendig; wär nur gut wenn das auch gehen würde.

Ich denke man kann das machen über neues Mail --> Editieren–> HotSpot–> Button wenn cih mich nicht irre.

Nur ab dort steh ich voll im Nirvana; denke am ehesten üer die Funktion „Client --> Simple Actions --> @Function Formula“ irgednwas machen. Aber wie gesagt; ist nur eine Idee.

Kann mir da mal einer helfen und ein Kleines ToDo verfassen??

Ach ja: meine Datenbank auf dem Server „MailApps04“ im Folder „Filiale“, heisst „Reklamationen“ und somit Filename= „Rekla.nsf“.

Danke für eure Hilfe.

Frank

Servus,

Ich bevorzuge solche Sachen mit Lotusscript zu lösen, per Formel geht es allerdings auch. Schau Dir mal die Methode CreateReplica (Zugriff über Notesdatabase-Backend-Klasse) oder die Funktion([FileNewReplica]) in der Designerhilfe an.

In deinem Fall wäre der Skript für die Erstellung der Replik:

Dim s As New Notessession
Dim db As Notesdatabase

Set db=s.GetDatabase(„MailApps04“,„Rekla.nsf“)
Call db.CreateReplica("",„lokaleRekla.nsf“)

Den Link zur Serverdb kannst du auf verschiedene Weisen entfernen, schau einfach mal in die Lotusscript-Klassenbeschreibung der Lotus Notes Hilfe

Ich hoffe Du kommst dann jetzt zumindest weiter

Gruss
Spanier

Hallo,

ich hab da smal irgendwo gesehen aber leider keine Idee wie
das machbar ist.

Ich habe da Lotus-Notes/Domino 8.5.x im Einsatz. Nun soll ich
ausgewählten Anwendern eine auf dem Server befindliche
Datenbank zugänglich machen, und zwar so, das diese als lokale
Replika auf dem Workspace eingerichtet wird.

Nun habe ich da eine größere Menge von Usern, Aussendienstlern
etc. - schier endlose Aktion wenn ich das manuell machen
möchte.

Wer kann mir sagen, wie ich folgendes Szenario hinbekomme:

Den Link an den User senden: kein Thema das geht einfach; nur
dann hat er eben nur den Zugriff auf der Datenbank, welche auf
dem Server liegt. Lokale Replika nur manuell einzurichten
(will ich ja aber nicht)
In dem Mail mit dem Link stelle ich mir vor, einen Button
einzubauen, den der User anklicken kann und somit die Replika
eingerichtet wird für ALLE Lokationsprofile.
Den Link zur Serverdatenbank löschen, den er soll nur lokal
arbeiten und dann seine Änderungen replizieren. Das ist aber
nicht Lebensnotwendig; wär nur gut wenn das auch gehen würde.

Ich denke man kann das machen über neues Mail --> Editieren–>
HotSpot–> Button wenn cih mich nicht irre.

–> Ganz genau. In dem neuen Fenster musst Du nur noch deine Aufgaben Skripten. (siehe oben)

Nur ab dort steh ich voll im Nirvana; denke am ehesten üer die
Funktion „Client --> Simple Actions --> @Function Formula“
irgednwas machen. Aber wie gesagt; ist nur eine Idee.

Kann mir da mal einer helfen und ein Kleines ToDo verfassen??

Ach ja: meine Datenbank auf dem Server „MailApps04“ im Folder
„Filiale“, heisst „Reklamationen“ und somit Filename=
„Rekla.nsf“.

Danke für eure Hilfe.

Frank

Die Rechte der Nutzer hab ich mal vorausgesetzt. Je nach Sicherheitskonfiguration musst Du die Rechte ggf noch anpassen…

Hallo Frank,

ein RIESEN Schritt in die richtige Richtung wäre vielleicht schon, das Erstellen der lokalen Repliken zentral zu steuern: Sieh dir dazu mal die Desktop-Einstellungen - Anwendungen - Datenbanklinks - „Auf dem Computer des Benutzers als neue Repliken erstellen“ an.

Den Rest müsste man über die Gestaltung der Datenbank abfackeln (genauer ein Script im PostOpen-Event der Datenbank).

HTH
Thomas Bahn
assono GmbH
[email protected]
04307/900-401

Hallo,

na ich hoffe das bekomme ich hin. Ich versuch mich mal am Wochenende daran. Ergebins poste ich dann hier.

Danke erst mal vorab!

Hallo Frank,

mit dem folgenden Codefragment ist es Dir möglich, einen Replicationstub der angegebenen Datenbank lokal anzulegen und eine Kachel der lokalen Replik zum Workspace hinzuzufügen (für Lesezeichen müsstest Du noch einmal schauen, ob es eine entsprechende Methode gibt).

Nach meinem Kenntnisstand wird die Replikation für alle (online) Arbeitsumgebungen des betreffenden Clients eingerichtet. Solltet Ihr eine Multi User Installation (MUI) haben, muss natürlich jeder User die Aktion für sich selbst ausführen, weil es sich um getrennte Notes Konfigurationen handelt.

Den folgenden LotusScript Code kannst Du in einer Schaltfläche z.B. per Mail an die Anwender schicken. Beachte jedoch, dass es bei dieser Variante je nach Execution Control List (ECL) in Eurer Umgebung passieren kann, dass die Anwender eine Sicherheitswarnung erhalten, weil der Absender nicht berechtigt ist, die benötigten Operationen durchzuführen.
Das Problem lässt sich z.B. umgehen, indem man den Code in einer serverbasierten Datenbank ablegt und diese mit einer technischen UserID unterzeichnet, die in der ECL als vertrauenswürdiger Signer aufgeführt ist.

Dim s as new NotesSession
Dim ws as new NotesUIWorkspace
Dim db as NotesDatabase
Set db = s.GetDatabase(„SERVER“, „FILEPATH“)
Set localDB = CreateReplStub(db.Server, db.filepath, „“, db.FilePath, True)
Call ws.AddDatabase("", localDB.FilePath)

Function CreateReplStub(S_Server As String, S_Db As String, T_Server As String, T_Db As String, forceit As Single) As NotesDatabase
On Error Goto ErrorHandler

Const DBCLASS_NOTEFILE=&Hff01
Dim S_DbString As String
Dim T_DbString As String
Dim dbhandle As Long
Dim rc As Long
Dim replInfo As ReplicaInfo
Dim tmpDB As New NotesDatabase("", „“)
'Dim replInfo(5) As Long

If s_server = „“ Then
S_DbString = S_Db
Else
S_DbString = S_Server + „!!“ + S_Db
End If
If T_Server = „“ Then
T_DbString = T_Db
Else
T_DbString = T_Server + „!!“ + T_Db
End If

'get the replica info struct from Source DB

rc = W32_NSFDBOPEN(S_DbString, dbhandle)
rc = W32_NSFDBREPLICAINFOGET(dbhandle, replInfo)
rc = W32_NSFDBCLOSE(dbhandle)

'crete new DB and asign replicaInfo

rc = W32_NSFDBCREATE(T_DbString, DBCLASS_NOTEFILE, forceIt)
If DEBUG Then Print „Create“,rc

rc = W32_NSFDBOPEN(T_DbString, dbhandle)
rc = W32_NSFDBREPLICAINFOSET(dbhandle, replInfo)
rc = W32_NSFDBCLOSE(dbhandle)

If tmpDB.Open(T_Server, T_DB) Then
Dim ri As NotesReplication

Set ri = tmpDB.ReplicationInfo
ri.Abstract = True
Call ri.Save

Set CreateReplStub = tmpDB
Set tmpDB = New NotesDatabase(S_Server, S_Db)
Call tmpDB.Replicate("")
End If

Exit Function

ErrorHandler:
Error Err, Error & {
//} & Getthreadinfo(1) & {:} & Erl
End Function

Gruß
Markus