Das Notes Forum
Lotus Notes / Domino Sonstiges => Projekt Bereich => Help-Desk Applikation !!Help!! => Thema gestartet von: eknori am 20.10.05 - 18:24:32
-
Also gut. nachdem mich heute schon der Dritte angesprochen hat, wo denn der Fehler im Eskalationsmanagement liegt, hier die Auflösung.
Man hat 2 Möglichkeiten, Eskaltionsprofile zu erstellen:
"Klick-And-Escalate" und die "User-Defined-Escalation"
Über die erste Möglichkeit brauchen wir uns nicht weiter zu unterhalten. Interessant wird es bei der zweiten Variante.
Die Eskalationsprofile können Platzhalter in der Form <<supporter>> enthalten. Das bedeutet, daß die über die Formel gefundenen Tickets jeweils an den zuständigen Supporter geschickt werden, um ihn über die Überschreitung einer Frist zu informieren.
Die Tickets können dann über das "Stamp Documents" Feld entsprechen markiert werden. Eskalationsdatum setzen etc.
Funktioniert auch , aBär :
werden bei "Send Message To" statt der Platzhalter richtige Namen eingetragen, funktioniert das Stamp nicht richtig; die Docs werden einfach nur mit einem Kennzeichen versehen, DASS sie schon einmal eskaliert sind.
Wer seine Installation dahingehend vor dem neuen Release upgraden möchte, sollte folgendermaßen vorgehen.
- Datenbank sichern
- in die lib.appl.functions folgende Funktion einfügen
Function CommonNameString (strName As String) As String
On Error Goto ERRHANDLE
Set nn = New NotesName( strName )
strPersonName = nn.Common
CommonNameString = strPersonName
EXITPOINT:
Exit Function
ERRHANDLE:
xProc = Getthreadinfo(LSI_THREAD_PROC)
xError = xProc & ": " &Trim$(Str$(Err)) & " on line " & Cstr(Erl) & ": " & Error$
If UseOpenLog Then
Call LogError
Elseif LogScriptErrors Then
Call ThrowException ( xProc, xError )
End If
Print xError 'In all cases
If ResumeMethodNext Then
Resume Next
Else
Resume EXITPOINT
End If
End Function
- die "lib.notification.escalation" mit dem Code der angehängten Datei ersetzen.
In den Eskalationsmails wird der Platzhalter ~NAMES für die Auflösung der Namen verwendet.
Im weiteren Text können wie gewoht die <<...>> Platzhalter verwendet werden.
Bsp.
Sehr geehrte(r) ~NAMES,
Folgendes Ticket von <<user>> ( <<From>> ) wurde nicht binnen einer Stunde von einem Helpdeskmitarbeiter angenommen.
Bitte sorgen sie dafür, daß die Tickets umgehend bearbeitet werden.
Ich hoffe, das war einigermaßen verständlich :D
-
Die Eskalationen machen wirklich Spaß ;D
Als Vorschlag möchte ich noch unterbreiten: Ein Ticket mit vorhandenen ToDo´s kann auch ab dem spätesten ToDoUntil-Termin eskaliert werden.
Wenn kein ToDo vorhanden ist, dann eben auf die Bearbeitungszeit.
-
Die Eskalationen machen wirklich Spaß ;D
Als Vorschlag möchte ich noch unterbreiten: Ein Ticket mit vorhandenen ToDo´s kann auch ab dem spätesten ToDoUntil-Termin eskaliert werden.
Wenn kein ToDo vorhanden ist, dann eben auf die Bearbeitungszeit.
Ich weis nicht ob wir das so realisieren können ohne das EskalationsManagement Teil sehr speziell zugeschnitten auf !!Help!! gestalten zu müssen. Letzten Endes müsste man nicht auf ein Dokument selber prüfen sondern auf ein beliebiges anderes Dokument das diesen Dokument zugeordnet ist und von dem es mehr als ein Stück geben kann (also auch noch vergleichen welchen der x Werte er zum triggern denn nun braucht).
Soweit ich weis ist es selbst in großen Workflow Lösungen so, das sie nur auf Inhalte des Dokumentes in dem sie sich gerade befinden triggern können und nicht auf den Inhalt anderer Dokumente. Von daher wäre der Ansatz durchaus als Interessant zu bezeichnen.
Aber das muss Ulrich wissen ob er das gebrauchen kann.
Es wird in der nächsten Version ein Ticket lösen bis zum / um geben. Das kann man dann für so etwas nutzen, ohne große Verrenkungen machen zu müssen.
-
Hiho,
nochmal kurz zu Eskalationen. Wir haben Eskalationsprofile für "offene" und für "in Bearbeitung" Aufgaben.
Szenario: Eine offene Aufgabe ist eskaliert. Sie bekommt somit "Escalated 1" und wird im View "Eskalierte Items" angezeigt. Wenn ich diese Aufgabe nun annehme, wird die Aufgabe aktiv und dann sollte er doch Escalated wieder auf 0 setzen....das hätte ich zumindest gedacht ???
Aber das ist bei uns nicht der Fall. Wenn man eine offene, eskalierte Aufgabe annimmt, dann bleibt sie eskaliert. Das gefällt mir nicht so gut. Ich hätte es lieber, dass er bei "Ticket annehmen" und "Ticket abschließen" jeweils Escalated wieder auf 0 setzt.
Die Option ReassignEscalationHandling steht auf RESET :-:
Habe wie immer ein Brett vorm Kopf ;D
danke & grüße
-
Nein du hast kein Brett vor dem Kopf das gibt es an dieser Stelle tatsächlich nicht. Das kann man aber ganz einfach selber beheben indem man
das hier:
If Ucase(GetConfigDocByKey("ReassignResetStatus"))="YES" Then
uidoc.document.Status = "0" ' the document is set to Status new again
End If
' Check if there is an escalation pending. if so there are three possible reactions. do not touch, touch and set escalation date to resubmission date, touch and set back to no escalation
If uidoc.document.escalated(0) <> "0" Then
EscalationConfig = GetConfigDocByKey("ReassignEscalationHandling")
If Escalationconfig = "RESET" Then
' set all escalated values back to zero or in the starting position
uidoc.Document.escalated ="0"
uidoc.Document.escalationDate = ""
uidoc.Document.removeitem("escalationFormula")
uidoc.Document.removeitem("escalationUsedTemplate")
uidoc.Document.removeitem("secondEscalatedTo")
uidoc.Document.removeitem("firstEscalatedTo")
Elseif Escalationconfig = "START" Then
Set newescalationdate = New notesDatetime(DateResubmit + " " + TimeResubmit)
uidoc.Document.escalationDate = newescalationdate
End If
End If
vor dier Stelle hier:
'set the doc
in der Aktion re-Assign Ticket einfügt.
Ach ja und die beiden Dims hier:
Dim escalationConfig As String
Dim newescalationdate As New NotesDateTime("")
darf man auch nicht vergessen.
Wobei mit gerade einfällt das START für das Einstellungsdokument ReassignEscalationHandling im Moment ein ziemlich blöde Kiste ist. Da muss ich noch mal drüber nachdenken wie sich das regeln lässt.
-
okay das werden wir dann gleich mal probieren
An dieser Stelle nochmal einen großen Dank für eure tolle Unterstützung zu all unseren Fragen O0
-
Ein Ticket mit vorhandenen ToDo´s kann auch ab dem spätesten ToDoUntil-Termin eskaliert werden.
Grundsätzlich ist das möglich ( it's only code ! ). Werde mir das mal genauer ansehen.
Frage mich nur, ob das Sinn macht. Prinzipiell müsstest du ja bereits die Aufgaben selber eskalieren; und dann bist du schon wieder beim Ticket.
-
Hallo eknori,
ich hätte da noch eine Frage zu den E-Profilen:
Im Standard reagiert die 1. Eskalationsstufe teilweise auf das Feld @created). In meinen Augen nicht ganz richtig, weil es ja ein Feld todountil gibt. Darauf reagiert aber die Eskalierung nicht, weil in todountil nur das Datum drin steht.
Kann im Profil angeben "nimm das feld todountil und eskalier immer um 9:00" oder ähnliches?
Gruß, baces
-
Hallo,
da fehlt in der Tat die Zeitangabe; die Frage ist, ob man das wirklich so fein gliedern will, daß man auch noch die Zeit für die Erledigung einer Aufgabe setzen will ...
OK, nun zu der Problemlösung:
Nehmen wir an, du willst alle ToDo, die ein ToDoUntil mit Datum x haben und nicht angenommen wurden am nächsten Tag um 09:00 eskalieren. Da wir ja keine Zeitangabe zum Vergleich haben, gibt es nun 2 Möglichkeiten.
Entweder fügt man dem Feld ToDoUntil in der Selektionsformel den String 09:00:00 hinzu ( das würde bedeuten, daß alle Todo immer um 09:00 erstellt wurden, oder man nimmt die Zeitkomponente aus @Created und hängt diese hinter ToDoUntil.
Im Fall 1 sieht die Formel dann so aus:
(Escalated ="0" & Status = "0") &
(@UpperCase(Form) = "BUGTODO") &
@TextToTime(@Text(todountil) + " 09:00:00") <=
@TextToTime(@Text(@Date(@Adjust(@Now;0;0;-1;-0;0;0))) + " 09:00:00")
Wichtig dabei ist, daß ToDoUntil ein DatumsFeld ist ( da hattest du in deiner Formel schon einen falschen Ansatz )
und für die + @Time(@Created) Variante sieht die Formel dann so aus
(Escalated ="0" & Status = "0") &
(@UpperCase(Form) = "BUGTODO") &
@TextToTime(@Text(todountil) +" " + @Text(@Time(@Created))) <=
@TextToTime(@Text(@Date(@Adjust(@Now;0;0;-1;-0;0;0))) + " 09:00:00")
Hoffe, das hilft dir einigermassen weiter ..
Die Eskalationen machen wirklich Spaß
Ja, da merke ich auch mehr und mehr. Habe das Modul ohne Änderung in mehreren Datenbanken im Unternehmen laufen und kann bisher alle Anforderungen lösen, ohne Codeänderung nur durch Einsatz geschickter Selectionsformeln.
-
(Escalated ="0" & Status = "0") &
(@UpperCase(Form) = "BUGTODO") &
@TextToTime(@Text(todountil) +" " + @Text(@Time(@Created))) <=
@TextToTime(@Text(@Date(@Adjust(@Now;0;0;-1;-0;0;0))) + " 09:00:00")
Hoffe, das hilft dir einigermassen weiter ..
Hi eknori,
vielen Dank für die Formeln. Habe diese hier gleich mal eingebaut.
Grüße,