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.

Anmerkung: Informationen zu den Events, die für die einzelnen Controls verfügbar sind, finden Sie unter Controltypen in den entsprechenden Unterkapiteln der jeweiligen Controls.

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

Anmerkung: Dieses Event wird nicht im Web unerstützt.

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

Anmerkung: Dieses Event wird nicht im Web unterstützt.

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.
Wichtig: Änderungen an den Attributwerten im OnDataChange-Skript sind nicht erlaubt (Rekursionsgefahr)!
Wichtig: Das Event „OnDataChange“ wird bei einigen Zeit-Controls nicht ausgewertet, da es nicht sinnvoll ist. Bei der „Bearbeitungszeit“ beispielsweise, also der digitalen Anzeige der Sekunden, Minuten, und Stunden, die für eine Service-Einheit verwendet werden, würde das Event in jeder Sekunde das anhängige Skript ausführen.

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

Dieses Event tritt ein, wenn eine neue Service-Einheit erstellt wird.
Anmerkung: Die neu angelegte Service-Einheit ist zum Zeitpunkt der Auslösung dieses Events nicht die aktuelle Service-Einheit. Die aktuelle Service-Einheit ist mit farblich betonter Titelzeile markiert.

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