Das Notes Forum

Domino 9 und frühere Versionen => ND8: Administration & Userprobleme => Thema gestartet von: damnstamn am 11.05.12 - 14:01:27

Titel: [Gelöst] Private Termine vom iPhone (Traveler) in Lotus Notes
Beitrag 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
Titel: Re: Private Termine vom iPhone (Traveler) in Lotus Notes
Beitrag von: ascabg am 11.05.12 - 14:54:17
Hallo,

Schon mal in dem 'erneut' gespeicherten Dokument nachgesehen, welche Felder sich geaendert haben?
(speziell - gibt es das Feld $PublicAccess)


Andreas
Titel: Re: Private Termine vom iPhone (Traveler) in Lotus Notes
Beitrag von: damnstamn am 11.05.12 - 15:39:02
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
Titel: Re: Private Termine vom iPhone (Traveler) in Lotus Notes
Beitrag von: ascabg am 14.05.12 - 07:57:10
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
Titel: Re: Private Termine vom iPhone (Traveler) in Lotus Notes
Beitrag von: damnstamn am 14.05.12 - 10:29:23
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...
Titel: Re: Private Termine vom iPhone (Traveler) in Lotus Notes
Beitrag von: Peter Klett am 14.05.12 - 10:49:52
Call doc.RemoveItem ("$PublicAccess")

EDIT: Was ist denn field.PublicAccess = "0"?
Titel: Re: Private Termine vom iPhone (Traveler) in Lotus Notes
Beitrag von: koehlerbv am 14.05.12 - 10:52:44
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
Titel: Re: Private Termine vom iPhone (Traveler) in Lotus Notes
Beitrag von: damnstamn am 14.05.12 - 13:03:55
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