Das Notes Forum
Domino 9 und frühere Versionen => ND8: Administration & Userprobleme => Thema gestartet von: damnstamn am 11.05.12 - 14:01:27
-
Hallo in die Runde,
aktuell habe ich folgende Problemstellung:
Das iPhone kann ja bekanntlich nicht zwischen privaten und geschäftlichen Terminen unterscheiden (Works as Designed). Unser Chef hätte das gerne anders. Auf meiner langen Suche bei Google habe ich auf dieser Seite http://www.vsb.de/newsanzeige/items/iphone-lotus-traveler-private-termine.html eine Anleitung gefunden, die mich in die Richtung bringt wo ich hin möchte.
Ich baue einen Agenten mit folgendem Code
Sub Initialize
Const cPrivateMarker = "P:"
Dim s As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim Subject As String
Set db = s.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument
On Error Resume Next
While (Not doc Is Nothing)
Subject = doc.Subject(0) + " "
If (Left$(Subject,Len(cPrivateMarker)) = cPrivateMarker) Then
doc.Subject = Trim(Mid$(Subject,Len(cPrivateMarker)+1))
doc.OrgConfidential = "1"
Call doc.Save(True, False, False)
End If
Set doc = dc.GetNextDocument(doc)
Wend
End Sub
Lasse das Ganze dann bei "Neuen oder geänderten Dokumenten" laufen und nach ca. 5 Minuten nachdem auf dem iPhone der Termin mit dem Betreff P: eingestellt wurde, hat das Feld "OrgConfidential" den Wert 1. Soweit so gut. Leider kann aber immer noch jeder, der öffentliche Dokumente des Nutzers lesen kann, diesen Termin lesen.
Gehe ich nun in Lotus Notes in den Kalender, öffne den Eintrag zur Bearbeitung und speichere diesen, ohne das ich etwas ändere, ist der Kalendereintrag nicht mehr lesbar und korrekt eingestellt.
Wir setzen aktuell Domino Server 8.5 ein sowie den Lotus Notes Client in der Version 8.51 FP4 mit der 8.5er Schablone auf allen Postkörben.
Hat jemand evt. eine Idee oder einen Tipp, was dieses erneute speichern mit dem Eintrag macht? Oder sehe ich gerade den Wald vor lauter Bäumen nicht?
Oder gibt es vielleicht schon andere Lösungen die ich bei Suchen im Forum oder bei Google übersehen habe?
Über Rückmeldung jeglicher Art würde ich mich freuen.
Schonmal ein schönes Wochenende
Markus Stammen
-
Hallo,
Schon mal in dem 'erneut' gespeicherten Dokument nachgesehen, welche Felder sich geaendert haben?
(speziell - gibt es das Feld $PublicAccess)
Andreas
-
Hallo ascabg,
das Feld $PublicAccess hat den Wert 1.
Ein von Hand angelegter Termin hat kein Feld mit dem Namen in der Feldübersicht des Dokumentes.
Auch wenn ich den Traveler-Termin bearbeite und speichere, wird das Feld entfernt.
Reicht es, wenn ich über den Agenten das Feld lösche? Oder muss erst der Agent laufen und dann in Verkettung bzw. nach Zeit x ein weiter Agent laufen?
Über Tipps würde ich mich freuen.
Beste Grüße
Markus
-
Das Feld steuert den Zugriff auf 'oeffentliche' Dokumente, was Kalender-Dokumente nun einmal von Haus aus sind.
(ACL - Read and Write Public Documents)
Entfernst Du dieses Feld, so werden daraus ganz 'normale' Dokumente, fuer die die allgemeinen Zugriffssteuerungen gelten.
Andreas
-
Ok, ich hab jetzt folgendes versucht
Zwischen
While (Not doc Is Nothing)
Subject = doc.Subject(0) + " "
If (Left$(Subject,Len(cPrivateMarker)) = cPrivateMarker) Then
doc.Subject = Trim(Mid$(Subject,Len(cPrivateMarker)+1))
doc.OrgConfidential = "1"
field.PublicAccess = "0"
und
Call doc.Save(True, False, False)
End If
Set doc = dc.GetNextDocument(doc)
habe ich dann mit der Referenz folgendes eingefügt.
Sub Delete [ $PublicAccess ] End Sub
Leider meckert der Domino Designer, sobald ich ein $Feld löschen möchte. Oder hab ich da den falschen Ansatz?
Irgendwie stehe ich auf dem Schlauch. Ich muss auch zugeben, das Lotus Script nicht gerade meine Stärke ist...
-
Call doc.RemoveItem ("$PublicAccess")
EDIT: Was ist denn field.PublicAccess = "0"?
-
Und wenn Du sowas im Zusammenhang mit "$-Items" doch mal brauchen solltest:
Ersetze Dein (mehrfach falsches)
field.PublicAccess = "0"
entweder durch
doc.~$PublicAccess = "0"
oder
doc.ReplaceItemValue ("$PublicAccess, "0")
HTH,
Bernhard
-
Vielen Dank, das Problem ist gelöst.
Das field.PublicAccess = "0" war ein missglückter Test.
Hab das aus dem Code wieder entfernt.
@Bernhard: Danke für die Tipps um die Werte zu setzen.
Ich danke allen für schnelle Hilfe.
Einen stressfreien Tag noch
Markus