Freigeben über


Erstellen eines benutzerdefinierten Ereignisses

Unified Service Desk stellt Ihnen vordefinierte Ereignisse für gehostete Steuerelemente basierend auf den Typ des gehosteten Steuerelements zur Verfügung. Abgesehen von diesen vordefinierten Ereignissen können Sie eigene Ereignisse in Unified Service Desk, erstellen, die benutzerdefinierten Ereignisse genannt werden. Sie können die Aktion FireEvent oder den Ereignismoniker verwenden, um benutzerdefinierte Ereignisse auszuführen.

Verwenden der FireEvent-Aktion

Alle vordefinierten und benutzerdefinierten gehosteten Steuerelemente von Unified Service Desk, mit Ausnahme der CCA gehosteten Anwendung, verfügen über eine spezielle UII-Aktion namens FireEvent. Sie können diese Aktion aufrufen, um ein benutzerdefiniertes von diesem Steuerelement aus einzuleiten. Auf diese Weise können Sie mehrere Aktionsaufrufe in einem einzigen Aufruf zusammenfassen und so eine Funktion in Unified Service Desk erstellen. Es ist ferner eine angemessene Methode, Ereignisse und ihre Aktionsreihenfolgen vor der Bereitstellung zu testen.

Der erste Parametern von FireEvent ist der Name des Ereignisses:

name=MyEvent  

Alle folgenden Name-Wert-Paare werden zu Parametern für das Ereignis und können daher als Ersetzungsparameter innerhalb der Aktionen verwendet werden, die infolgesdessen aufgerufen werden. Angenommen, Sie übergeben die folgende Parameterliste:

name=MyEvent  
var1=[[account.name]]  

Dies löst ein benutzerdefiniertes MyEvent-Ereignis aus, das die Möglichkeit gibt, einen Aktionsaufruf zu erstellen, der den var1-Parameter verwendet, wie folgt:

Hosted Control=Some Hosted Control  
UII Action=Some action on the Hosted Control  
Data=[[var1]]  

Dieses gibt den Ereignisparameter als Datenparameter ein zur Aktion des gehosteten Steuerelements. In diesem Beispiel bedeutet das, dass der Datenparameter für das gehostete Steuerelement der account.name-Wert von der Sitzung ist.

Verwenden des Ereignismoniker

Sie können ein benutzerdefiniertes Ereignis auf einem gehosteten Steuerelement erstellen und es dann mithilfe der folgenden Ereignismonikersyntax verwenden:

http://event/?EventName=<EVENT_NAME>&key=value&key=value&…  

In die Syntax geben Sie das key=value-Paar an, um die zu verwendende Parameterliste zu übergeben, wenn das Ereignis ausgelöst wird.

Sehen Sie sich ein Beispiel an, in dem Sie ein benutzerdefiniertes Ereignis auslösen möchten, wann immer der Titel der Anfrage im Formular "Anfrage" in Microsoft Dataverse sich ändert. Um dies zu tun:

  1. Erstellen Sie ein neues Ereignis namens TitleChanged für Ereignis gehostete Steuerelement in Dataverse.

  2. Erstellen Sie einen Aktionsaufruf namens Action Call for Title Change, mit den folgenden Werten:

    Feld Wert
    Name Aktions-Anruf für Titel-Änderung
    Gehostetes Steuerelement Vorfall
    Aktion RunXrmCommand
    Daten function titleChangeReaction() {
    window.open(http://event/?EventName=TitleChanged&NewTitle="+encodeURIComponent(Xrm.Page.getAttribute("title").getValue()));
    }
    Xrm.Page.getAttribute("title").addOnChange(titleChangeReaction);
  3. Fügen Sie den neuen Aktionsaufruf hinzu, den Sie für das BrowserDocumentComplete-Ereignis des Ereignis gehostete Steuerelement erstellt haben. Weitere Informationen: Hinzufügen von Aktionsaufrufen zu einem Ereignis

    Wenn das TitleChanged-Ereignis ausgelöst wird, wird die folgende Anforderung ausgelöst: http://event/?EventName=TitleChanged&NewTitle=<NEW_TITLE>

    Dieses Ereignis führt dazu, dass das TitleChanged-Ereignis mit dem folgenden Datenparameter ausgelöst wird: NewTitle=<NEW_TITLE>

    Wenn Sie JavaScript in Dataverse verwenden, um ein Ereignis in Unified Service Desk unter Verwendung des Ereignismonikers (http://event/?EventName=<EVENT_NAME>&key=value&key=value&…) aufzurufen, können Sie die Eigenschaft window.IsUSD verwenden, um festzustellen, ob der JavaScript-Code unter Unified Service Desk ausgeführt wird, wenn das Ereignis aufgerufen wird. Das folgende Codebeispiel kann in Ihren JavaScript-Code eingefügt werden, um sicherzustellen, dass das Ereignis nur dann aufgerufen wird, wenn das aufrufende JavaScript in Unified Service Desk ausgeführt wird.

if ((window.IsUSD != null) && (window.IsUSD == true))  
{  
   window.open(http://event/?EventName=<EVENT_NAME>&key=value&key=value&…);  
}  

Siehe auch

Ereignisse
Typen gehosteter Steuerelemente und Referenz zu Aktionen/Ereignissen
Verwalten von gehosteten Steuerelementen, Aktionen und Ereignissen
MSDN: Verwendung von JavaScript mit Microsoft Dynamics CRM