Events
In diesem Abschnitt erhalten Sie Informationen zu Events sowie einen Überblick der Events aller Controls und Vorgänge.
Jedes Skript ist an ein Event eines Controls gebunden. Tritt dieses Event ein, wird das Skript ausgeführt. Es gibt Standard-Events, die für alle Controltypen verfügbar sind. Darüber hinaus besitzen einige Controltypen zusätzliche Events.
Ein Beispiel: Das Control „Button“ besitzt unter anderem das Event „Click“. Dieses tritt ein, wenn der Agent die Schaltfläche auswählt.
In der Standardversion von Serviceware Processes sind bereits einige Skripte enthalten. Die folgenden beiden Beispiele zeigen die Anwendungsmöglichkeiten von Skripten:
Beispiel 1:
Wert einer TextBox übertragen
Im Dialog zur Erfassung eines Incidents wird der Beginn des Problemtexts automatisch in den Betreff übernommen, sofern der Agent dort noch keinen Text eingegeben hat.
Das Skript, das den Text überträgt, ist an das Ereignis OnBlur der TextBox für das Problem gebunden. Wenn der Agent zu einem anderen Control wechselt, tritt das Ereignis OnBlur ein und das Skript wird gestartet.
Das Skript überprüft, ob in der TextBox für den Betreff bereits Text enthalten ist. Wenn dies nicht der Fall ist, kopiert es die ersten Zeichen des Problemtextes in den Betreff.
Beispiel 2:
Ermittlung eines Vorschlagswerts
Der Dialog zur Erfassung von Supportanfragen/Incidents enthält das Control zur Angabe der Kostenstelle. Wenn der Agent dieses Control auswählt, wird ein Vorschlagswert für die Kostenstelle angezeigt (OnClick).
Der Vorschlagswert wird nach kaufmännischen Regeln aus der Kostenstelle des Anfragers ermittelt. Dabei wird zunächst überprüft, ob bereits ein Wert eingegeben worden ist.
Die Standard-Events aller Controls
Folgende Events sind für jedes Control außer für das Task-Management-Control verfügbar:
OnFocus
Durch dieses Event wird der Fokus auf das Control gesetzt, wodurch es markiert wird.
Das Event tritt dann ein, wenn der Agent im Dialog das Control auswählt oder es durch Drücken der TAB-Taste auswählt.OnBlur
Durch dieses Event wird der Fokus auf ein anderes Control gesetzt.
Dieses Event tritt ein, wenn der Fokus zuvor auf diesem Control war und der Agent im Dialog ein anderes Element auswählt oder es durch Drücken der TAB-Taste auswählt.OnDataChange
Durch dieses Event werden die Daten des Controls geändert.
Dieses Event tritt beispielsweise bei TextBoxen ein, wenn der Agent den Text ändert.Die Standard-Events von Vorgängen
Folgende Events sind in allen Vorgangsdialogen verfügbar:
Sie bekommen diese Ereignisse angezeigt, wenn Sie eine freie Fläche im Dialog auswählen.
Welche dieser Events bereits mit Skripten belegt sind, ist abhängig von Ihrer Startkonfiguration. Für den Vorgang „Incident“ in der ITIL-Startkonfiguration sind beispielsweise folgende Events wie folgt belegt:
OnLanguage
Dieses Event tritt ein, wenn die Spracheinstellung während der Benutzung des Dialogs geändert wird.
OnLoad
Dieses Event tritt ein, wenn ein Dialog geöffnet wird.
Es wird in Startkonfigurationen üblicherweise dazu benutzt, die InfoPane eines Dialogs über ein Skript zu füllen.
OnReserve
Dieses Event tritt ein, wenn der Vorgang reserviert wird.
OnSave
Dieses Event tritt ein, wenn im ClassicDesk ein helpLine Objekt gespeichert wird oder wenn die Methode „model.Save“ aufgerufen wird.
OnUpdate
Dieses Event tritt ein, wenn die Methode „model.Update aufgerufen wird.
Die Daten der Controls im Dialog werden dann im Objekt zwischengespeichert. Das Speichern auf dem Server findet nicht statt.
SUIDAdded
Beispielskript für das Event „SUIDAdded“:
Dieses Skript übernimmt den Problemtext aus der vorherigen Service-Einheit (SU) in die neu angelegte Service-Einheit.
'Ermitteln der aktuellen Anzahl von SUs ohne die neue SU
suindices = hlobj.GetSvcUnitIndices()
counter = ubound(suindices)
'Auslesen des Problemtextes der letzten SU
Problem = hlobj.GetValue("SUText.ProblemText",0,0,Counter,0)
'Erhöhen des Counters, um auf die neue SU zugreifen zu können
CounterNew = Counter + 1
Res = msgbox("Möchten Sie den Problemtext übernehmen ?", vbYesNo + vbQuestion + vbDefaultButton1, "helpLine")
If Res = 6 Then
hlobj.SetValue "SUText.ProblemText",0,0,CounterNew,Problem
End If
SUIDChanged
Dieses Event tritt ein, wenn die aktuelle Service-Einheit im SU-Navigator wechselt. Die aktuelle Service-Einheit ist im SU-Navigator markiert. In Zusammenhang mit dem Event „SUIDAdded“ wird dieses Event nach der Erstellung der neuen Service-Einheit ausgelöst.
Ein Beispielskript für das Event „SUIDChanged“:
Dim ReadOnly
ReadOnly = True
'Aktuell gewählte SU feststellen
CurSUIdx = EditDuration.GetCurrentSUID
'Überprüfen ob die aktuelle SU schreibgeschützt ist
If hlobj.IsReadOnly("SUGeneral.CostCenter",CurSUIdx)=0 Then
ReadOnly = False
End If
If ReadOnly = False Then
'Ermitteln der aktuell eingetragenen Kostenstelle
CurCost = EditCostCenter.Text
If CurCost = "" Then
'Da keine Kostenstelle vorhanden, wird die zuvor eingetragene Kostenstelle kopiert.
suindices = hlobj.GetSvcUnitIndices()
counter = ubound(suindices)
PrevCost = hlobj.GetValue
("SUGeneral.CostCenter",0,0, Counter,0)
EditCostCenter.Text = PrevCost
End If
'Aufbauen der Auswahlliste von Kostenstellen der Person
CounterC=EditCostCenter.GetItemsCount
If CounterC <= 1 Then
CCContID = hlcaller.GetContentIDs
("PersonBilling.CostCenter_CA",0)
val=ubound(CCContID)
If val >= 0 Then
For j=0 To val
CostC = hlcaller.GetValue
("PersonBilling.CostCenter_CA.CostCenter",0,CCContID(j),0,0)
EditCostCenter.AddItem "" & CostC & ""
If EditCostCenter.Text = "" And CostC <> "" Then
EditCostCenter.SelectItem 0, j
End
Next
End If
End If
End