Domino 9 und frühere Versionen > ND6: Entwicklung

Kalenderprofil per script ändern und refreshen

<< < (3/4) > >>

Jenson:
Ich nehme auch eins :-) Wäre sehr verbunden wenn ich das Script sehen dürfte. Ich habe das Gefühl, dass die nette Änderung der Gesetzgebung bzgl. eMail-Signaturen bei vielen Chefs den gleichen Druck auf die IT auslöst :-)

Jenson

schurke:
Kannst du mir bitte auch das script schicken. Mein Chef möchte auch eine einheitliche Signatur.

Vielen Dank

Wilfried

fsinani:
Sorry, daß ich mich erst so spät melde

also klar- ich kann euch das script dafür geben.

Ihr müsst aber bis morgen warten, da ich die DB nicht zuhause habe.

Erwartet jedoch nicht besonderes.

bis morgen

mkrauss:
Sorry ich bin spät dran,

aber hättest du dieses Sricp auch für mich??

fsinani:
Und nochmal sorry,

haben einen ekelhaften Stromausfall gehabt, so kurz bevor wir unsere neue leistungsfähigere USV bekommen haben.

Tja, man muß auch ma verlieren können !!


Also nun dann jetzt erst der gewünschte Code:

im Postopen des DB Scriptes kommt folgender Code:

   Dim s As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim nab As NotesDatabase
   Dim profdoc As NotesDocument
   Dim nabview As NotesView
   Dim nabdoc As NotesDocument
   Dim nabName As New NotesName(s.UserName)
   Dim key As String
   Set db = s.CurrentDatabase
   Set nab = s.GetDatabase(db.Server,"names.nsf") ' Achtung bei Verwendung mehrerer MailServer
   Set nabview = nab.GetView("($VIMPeople)")
   key = nabName.Abbreviated
   If Not ( db.Server = "" ) Then ' Nur wenn DB auf Server nicht lokal
      Set nabdoc = nabview.GetDocumentByKey(key)
      '################# Signatur zusammenbauen################
      ' Funktion mit mehrfach - Moeglichkeit
      Dim F_Val As Variant
      Dim F_item As NotesItem
      Set F_item = nabdoc.GetFirstItem("Department") ' Nur nötig, wenn Mehrfachwerte im Feld Department
      f = 0
      If Not F_item.Text = "" Then
         Forall v In F_item.Values
            tmp_Funktion = tmp_Funktion & v & Chr(13)
         End Forall
      Else
         tmp_Funktion = ""
      End If
      tmp_name = nabname.Common + Chr(13)
      tmp_Firma = nabdoc.CompanyName(0) + Chr(13)
      tmp_PLZ = nabdoc.OfficeZip(0)
      tmp_City =  nabdoc.OfficeCity(0)
      tmp_strasse = nabdoc.OfficeStreetAddress(0) + Chr(13)
      tmp_fon = nabdoc.OfficePhoneNumber(0)
      If Not tmp_fon = "" Then
         tmp_telefon = "Phone" & Chr(9) & tmp_fon & Chr(13)
      Else
         tmp_Telefon = ""
      End If
      tmp_fax = nabdoc.OfficeFAXPhoneNumber(0)
      If Not tmp_fax = "" Then
         tmp_telefax =  "Fax" & Chr(9) &  tmp_fax & Chr(13)
      Else
         tmp_Telefax = ""
      End If
      tmp_mob = nabdoc.CellPhoneNumber(0)
      If Not tmp_Mob = "" Then
         tmp_Mobil = "Mobile" & Chr(9) & tmp_mob & Chr(13)
      Else
         tmp_Mobil = ""
      End If
      Dim M_Val As Variant
      Dim M_item As NotesItem
      Set M_item = nabdoc.GetFirstItem("InternetAddress")
      Forall v In M_item.Values
         tmp_M = tmp_M & v & Chr(13)
         Exit Forall ' direkt nach der ersten Mailadresse rausspringen:
      End Forall
      tmp_Mail = "mailto:" & tmp_M
      tmp_web ="http://www." & Strtoken(tmp_Mail,"@",2)
      tmp_signatur = Chr(13) & Chr(13) & Chr(13) & tmp_name & tmp_Funktion & tmp_Firma   & tmp_Strasse & tmp_PLZ & " " & tmp_City & Chr(13) & Chr(13) & tmp_Telefon & tmp_Telefax & tmp_Mobil & Chr(13) & tmp_Mail & tmp_web
      '#######################################################
      Set profdoc = db.GetProfileDocument("CalendarProfile")     
      Call profdoc.ReplaceItemValue("Signature_1", tmp_signatur )
      Call profdoc.Save(True,False)
      Dim uiprofile As NotesUIDocument
      If Not profdoc.owner(0) = "" Then
         Set uiprofile = ws.EditProfile("CalendarProfile")
         Call uiprofile.save
         Call uiprofile.close
      Else
         err_msg = Msgbox("Die Datenbank wird aktualisiert und muss dafür geschlossen werden. Bitte öffnen Sie sie anschliessend erneut.",16, "DATENBANKAKTUALISIERUNG")
         Call db.close
      End If
   End If

CODE ENDE


In meinem Fall bin ich dann noch zusätzlich hingegeangen und habe im CalenderProfile die Bearbeitung der Signatur deaktiviert (von bearbeitbar  in berechnet). Allerdings ist die Signatur trotzdem im Body entfernbar bzw. veränderbar.

Es gibt da wohl auch professionelle Tools, die das anders und unveränderbar können, die aber wat kosten.
Naja und bei uns reichte das halt so.

Ich hoffe,, ihr könnt es gebrauchen

@headshrinker,
>> wir das auch bei internen Mails gesetzt? <<

leider ja. Das liegt daran, daß ich mir die Mühe nicht machen wollte, in den unendlichen Weiten der Lotus Development - Klassen rumzusuchen, wann die Mail entgültig an den Mailer übergeben wird. Denn nur da kann man in die Mail etwas Text hinzufügen,
1. ohne daß ein Benutzer es mehr verändern kann und
2. man dann dort überprüfen kann, wohin die Mail geht.

Ich würde mir das aber gut überlegen, wie du das anstellen willst. Da eine solche Abfrage auch auf die Performance geht. Ausserdem musst du dir überlegen, was du machen willst, wenn z. B. die mail im SendTo 4 interne und 1 externen Empfänger hat. Die Abfrage darfst du dann auch auf CopyTo und BCCTo ausdehenen.
Bei 2000 Notesusern ist das wohl gut zu überlegen!!



fsinani

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln