Domino 9 und frühere Versionen > ND8: Administration & Userprobleme

Out Of Office: Seltsame Anzeige

(1/1)

Tode:
Folgendes Phänomen:

Server 8.5.2 FP 2, Mailschablone 8.5.2, Clients 8.5.2

Im Konfig- Dokument des Servers ist der OOO- Service aktiviert.

Ein User aktiviert den OOO (Service).
Nach der Rückkehr wird der OOO automatisch deaktiviert und auch per tell router o und im Files- Tab als deaktiviert angezeigt. So weit also alles OK.

ABER: Im Out Of Office Profile ist das Feld "TaskState" immer noch auf "1". Auch der Feld "CurrentStatus" steht auf 1.
Das Feld TaskType steht korrekt auf "2" (für Service).

Der Server erkennt also sauber, dass der OOO deaktiviert ist, es wird alles korrekt verarbeitet. Nur ich als Programmierer kann das nicht erkennen, weil die Felder, die das angeblich steuern, nicht korrekt gesetzt sind. Wenn man von ner externen App erkennen will, ob gerade der OOO aktiv ist, dann ist das ziemlich blöde...

Kann das jemand bestätigen?

Natürlich kann ich -da ich sowieso das OOO- Profil auslese- auch die beiden Datumsfelder auslesen und prüfen, ob heute dazwischen liegt, aber grundsätzlich wäre es interessant zu wissen, woran das liegt...

EDIT: Das mit den Datumsfeldern ist auch ne schlechte Idee... die können ja für heute gesetzt sein, und der OOO trotzdem nicht aktiv...

Tode:
Antworte ich mir mal selbst: Das scheint "by Design" so zu sein... IBM selbst weiss, das das TaskState- Feld nicht korrekt gesetzt wird, wie folgender Code aus der OutOfOffice- Lib beweist (aufgerufen aus dem QueryOpen des OutOfOffice- Profile):


--- Code: ---'**********************************************************
'**                       VALIDATE SERVICE STATUS              **
'**********************************************************
Public Function IsServiceDisabled() As Integer
'//  make sure time stamp gets updated on profile note

On Error Goto ErrHandler

IsServiceDisabled = False

Call GetUITimes()

Set Me.m_dtNow = New NotesDateTime("")
Me.m_dtNow.SetNow

If Me.m_noteUIDoc.Document.GetItemValue("dateFirstDayBack")(0) <> "" Then
Call TIMEGetFromItem("dateFirstDayBack", Me.m_noteUIDoc.Document, Me.m_dtFirstDayBack)
Else
'//for whatever reason, the return date is empty. Let's set to some date in the past,
'//so this function can return false, and we can set the Status as Disable.
Set Me.m_dtFirstDayBack = New notesdatetime(yesterday)
End If

'// If Return date is set earlier than Now, Task has to be disabled...
If Me.m_TaskState = "0" Or (Me.m_dtFirstDayBack.Timedifferencedouble(Me.m_dtNow) < 0_
And Me.m_TaskState = "1") Then
IsServiceDisabled = True
Exit Function
End If

Exit Function
ErrHandler:
Call ProcessError(Cstr( Getthreadinfo(LSI_THREAD_PROC) ), Cstr(Error), Cstr( Getthreadinfo(LSI_THREAD_CALLPROC)), Cstr( Erl ))

End Function
--- Ende Code ---

muss ich halt die selbe Prüfung in mein eigenes Script einbauen...

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln