title image


Smiley Re: Hilfe: Sommerzeit verschiebt alles.
Habe dieses Script in den postopen des Ordners Inbox gelegt, um sicher zu gehen . dass alle Arbeitsumgebungen die richtigen Einstellungen haben.







Sub Postopen(Source As Notesuiview)

Dim session As NotesSession

Dim db As New NotesDatabase( "", "" )

Dim view As NotesView

Dim doc As NotesDocument

Dim Item As Notesitem



Set Session = New NotesSession



Call db.Open( "", "names.nsf" )





Set view = db.Getview("Locations")



Set doc = view.GetfirstDocument



While Not (Doc Is Nothing)



If doc.hasitem("UseOSTz") Then

Call doc.ReplaceItemValue("UseOSTz", "1")

End If



Call doc.Save( False, True )



Set doc = view.GetNextDocument(doc)



Wend



End Sub



_________________________________________________________



Folgendes Script fand ich im Internet. Es passt die Zeitzoneneinträge in den Kalenderdokumenten an. Hab es in eine Aktion der Kalenderansicht integriert. Der User muß nur drauf klicken.

Hat eigentlich ohne Probleme funktioniert nur bei Jahrestagen und Erinnerungen könnte es "crashen", genau weiß ich es nicht mehr. In der Statuszeile zeigt er an, welches Doku gerade bearbeitet wird, bei fehlerhaften bleibt er stehen. Mußte diese dann von Hand ändern bzw. löschen und neu eintragen. Anschließend nochmals laufen lassen. Es waren aber nur wenige Personen bei denen das auftrat.



Sub Click(Source As Button)





Dim mailDB As New NotesDatabase( "", "" )

Dim doc As NotesDocument, docA As NotesDocument

Dim convItem List As String, itemName As String

Dim tmpItem As NotesItem

Dim session As New NotesSession

Dim tmpDateTime As New NotesDateTime( "" )

Dim dateOnly As String, timeOnly As String

Dim dateTimeBuf As Variant

Dim RepeatInstanceDates As Variant

Dim item As NotesItem

Dim dateTime As NotesDateTime, dateTime1

Dim i As Integer, flag As Integer

Dim repeatDoc As String, platform As String, notesversion As String

Dim result As Integer

Dim search As String, ver As Integer

Dim searchDateTime As New NotesDateTime ( "" )

Dim col As NotesDocumentCollection

Dim e As Integer, tflag As Integer, conf As String



nl = Chr (13)





On Error Goto ErrHandle



convItem("StartDateTime")=""

convItem("StartDate")=""

convItem("StartTime")=""

convItem("EndDateTime")=""

convItem("EndDate")=""

convItem("ReminderTime")=""

convItem("EndTime")=""

convItem("CalenderDateTime")=""



platform = session.Platform

notesversion = session.Notesversion



AddLogAction ("BS: " & platform & " Clientversion:" & notesversion)



Print "Bitte warten...."







If (platform="Windows/32") And Instr (notesversion, " 5.") Then

Call UpdateLocationDocs("UseOSTz","1")

Call UpdateLocationDocs ("R5TimeZone", "1$58$Westeuropäische Normalzeit$-1")

Call UpdateLocationDocs ("TimeZone", "-1")

Call UpdateLocationDocs ("DST", "1")

ver = 5

tflag = True

Elseif ((platform="Windows/32" Or platform="OS/2v2") And Instr (notesversion, " 4.")) Then

Call UpdateLocationDocs ("TimeZone", "-1")

Call UpdateLocationDocs ("DST", "1")

ver = 4

tflag = True

Else

Error Err, "Arbeitsumgebung konnte nicht geändert werden!"

End If



AddLogAction ("Arbeitsumgebungen wurden geändert. Zeitzone: -1 (MEZ)/Sommerzeit: aktiv")





Call mailDB.OpenMail

Set calenderView = mailDB.GetView (calenderViewName)



If calenderView Is Nothing Then Error errCode, "Es konnte nicht auf die Ansicht " & calenderViewName & " zugegriffen werden!"





Dim isDST As New NotesDateTime ("29.03.2001 14:00:00")



If Not (isDST.isDST) And ver=5 Then

Messagebox ("Bitte kontrollieren Sie unter Start -> Einstellungen -> Systemsteuerung -> Datum/Uhrzeit, ob bei 'Zeitzone' -> 'Uhr auf Sommer-/Winterzeit umstellen' aktiv ist. Sollte dies nicht der Fall sein, korrigieren Sie dies bitte bzw. wenn Sie dafür nicht die benötigte Berechtigung haben, kontaktieren Sie bitte Ihren Systembetreuer. Anschließend starten Sie Ihren Notes-Client neu und betätigen Sie bitte nochmals diese Schaltfläche!")

Call session.SetEnvironmentVar( "DateTimeConf", "true" )

Exit Sub

Elseif Not (isDST.isDST) And ver=4 Then

Messagebox ("Bitte starten Sie Ihren Notes-Client neu und betätigen Sie anschließend nochmals diese Schaltfläche!")

Call session.SetEnvironmentVar( "DateTimeConf", "true" )

Exit Sub

End If



result = Messagebox ("Sollte der Notes-Kalender korrigiert werden?", 36)

If (result6 ) Then

Call WriteLog (mailDB)

Exit Sub'

End If





Set doc = calenderView.GetFirstDocument

If calenderView Is Nothing Then Error errCode, "Es wurden keine Kalendereintragungen gefunden!"



search = "@Isavailable(CalendarDateTime) & !@Isavailable(BAUD)"



Set col = mailDB.Search (search, searchDateTime, 0)

Stop

For e=1 To col.Count

Set doc = col.GetNthDocument (e)

Forall s In convItem

itemName = Listtag(s)

If (doc.HasItem(itemName)) Then

Set item = doc.GetFirstItem( itemName )

Set dateTime = item.DateTimeValue



If (dateTime.TimeZone=-1) Then



dateOnly = dateTime.DateOnly

timeOnly = dateTime.TimeOnly

Set tmpdateTime = session.CreateDateTime ( dateOnly & " " & timeOnly )



If (tmpdateTime.isDST And dateTime.isDST=False And doc.GetItemValue ("Repeats")(0) "1") Then



If (itemName = "StartDateTime") Then

AddLogAction ("Eintrag: '" & doc.subject(0) & "' - Beginnzeit:" & dateOnly &" " & timeOnly & " wurde korrigiert!")

End If



Call dateTime.ConvertToZone(cet, True)

Call dateTime.AdjustHour (-1)

Call doc.ReplaceItemValue (itemName, dateTime)

Call doc.RemoveItem("TimeRange")

Call doc.Save (False, False)

End If

End If

End If

End Forall





If (doc.GetItemValue ("Repeats")(0) = "1") Then

repeatDoc = repeatDoc & "Eintrag: " & doc.subject(0) & " - Beginnzeit: " & dateTime.DateOnly & " - " & dateTime.TimeOnly & Chr(13)

flag = True

End If

Next



If (flag) Then

AddLogAction (nl & "WICHTIGER HINWEIS: Bei den folgenden Kalendereinträgen handelt es sich um wiederkehrende Termine. Diese können nicht automatisiert geprüft bzw. korrigiert werden - bitte kontrollieren Sie diese Einträge!" &_

nl & nl & repeatDoc & nl & "WICHTIGER HINWEIS: Bei den darüberliegenden Kalendereinträgen handelt es sich um wiederkehrende Termine. Diese können nicht automatisiert geprüft bzw. korrigiert werden - bitte kontrollieren Sie diese Einträge!" )

End If





Call WriteLog (mailDB)



conf = session.GetEnvironmentString ("DateTimeConf")

If (conf="true") Then

Call session.SetEnvironmentVar( "DateTimeConf", "" )

Msgbox ("Die Konfiguration wurde durchgeführt - bitte starten Sie ihren Rechner neu!")

Exit Sub

End If



Print "Konfiguration wurde erfolgreich beendet!"



Exit Sub

ErrHandle:

Print Error$

AddLogAction (Error$)

Call WriteLog (mailDB)

Exit Sub

End Sub





___________________________________________________-



Anschließende noch ein Update hinterher, damit die Ansicht passt.



@Command([ToolsRefreshAllDocs])



Bei uns waren danach alle Zeitzonen-Probleme behoben.



Hoffe du kannst damit was anfangen.

Wichtig ist noch Serverversion mindestens 5.0.8!!!



Gruß

Nettchen



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: