Partager via


Créer un événement défini par l’utilisateur

Unified Service Desk vous fournit des événements prédéfinis pour les contrôles hébergés en fonction du type de contrôle hébergé. Outre ces événements prédéfinis, vous pouvez également créer vos propres événements dans Unified Service Desk, appelés événements définis par l’utilisateur. Vous pouvez utiliser l’action FireEvent ou le moniker d’événement pour exécuter des événements définis par l’utilisateur.

Utiliser l’action FireEvent

Tous les types de contrôle hébergés par Unified Service Desk prédéfinis et personnalisés, à l’exception de l’application hébergée CCA , disposent d’une action UII spéciale appelée FireEvent. Vous pouvez appeler cette action pour lancer un événement défini par l’utilisateur à partir de ce contrôle. Il s’agit d’un moyen pratique de regrouper plusieurs appels à l’action en un seul appel, créant ainsi une fonction au sein d’Unified Service Desk. C’est également un moyen raisonnable de tester les événements et leurs séquences d’action avant le déploiement.

Le premier paramètre de FireEvent est le nom de l’événement :

name=MyEvent  

Toutes les paires nom/valeur suivantes deviennent les paramètres de l’événement et peuvent donc être utilisées comme paramètres de remplacement dans les actions appelées en conséquence. Par exemple, si vous transmettez la liste de paramètres suivante :

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

Cela déclenchera l’événement personnalisé MyEvent , ce qui permettra de créer un appel à l’action qui utilise le var1 paramètre comme suit :

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

Cela transmet le paramètre d’événement en tant que paramètre de données à l’action de contrôle hébergée. Dans cet exemple, cela signifie que le paramètre de données du contrôle hébergé sera la valeur account.name de la session.

Utiliser le nom de l’événement

Vous pouvez créer un événement personnalisé sur un contrôle hébergé, puis l’appeler à l’aide de la syntaxe de moniker d’événement suivante :

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

Dans la syntaxe, vous spécifiez la key=value paire de paramètres à transmettre à utiliser lorsque l’événement est déclenché.

Prenons le cas où vous souhaitez déclencher un événement défini par l’utilisateur chaque fois que le titre de l’incident sur le formulaire d’incident est modifié dans Microsoft Dataverse. Pour ce faire :

  1. Créez un nouvel événement, appelé TitleChanged, pour le contrôle hébergé Incident dans Dataverse.

  2. Créez un appel à l’action, appelé Action Call for Title Change, avec les valeurs suivantes :

    Terrain Valeur
    Nom Appel à l’action pour le changement de titre
    Contrôle hébergé Incident
    Action RunXrmCommand
    Données fonction titleChangeReaction() {
    window.open(http://event/?EventName=TitleChanged&NewTitle="+encodeURIComponent(Xrm.Page.getAttribute("title").getValue()));
    }
    Xrm.Page.getAttribute("title").addOnChange(titleChangeReaction);
  3. Ajoutez le nouvel appel d’action que vous avez créé à l’événement BrowserDocumentComplete du contrôle hébergé Incident . Pour plus d’informations : Ajouter des appels à l’action à un événement

    Lorsque l’événement TitleChanged est déclenché, la demande suivante est déclenchée : http://event/?EventName=TitleChanged&NewTitle=<NEW_TITLE>

    Cela entraînera le déclenchement de l’événement TitleChanged avec le paramètre de données suivant : NewTitle=<NEW_TITLE>

    Si vous utilisez JavaScript dans Dataverse pour appeler un événement dans Unified Service Desk à l’aide du surnom d’événement (http://event/?EventName=<EVENT_NAME>&key=value&key=value&…), vous pouvez utiliser la window.IsUSD propriété pour déterminer si le code JavaScript s’exécute sous Unified Service Desk lorsque l’événement est appelé. L’exemple de code suivant peut être inclus dans votre code JavaScript pour garantir que l’événement est appelé uniquement lorsque le code JavaScript appelant s’exécute dans Unified Service Desk.

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

Voir aussi

Événements
Types de contrôle hébergés et référence d’action/d’événement
Gérer les contrôles, les actions et les événements hébergés
MSDN : Utiliser JavaScript avec Microsoft Dynamics CRM