Compartir a través de


Crear un evento definido por el usuario

Unified Service Desk proporciona eventos predefinidos para controles hospedados en función del tipo de control hospedado. Aparte de estos eventos predefinidos, también puede crear sus propios eventos en Unified Service Desk, que se denominan eventos definidos por el usuario. Puede usar la acción FireEvent o el moniker de eventos para ejecutar eventos definidos por el usuario.

Usar la acción FireEvent

Todos los tipos de control hospedado de Unified Service Desk predefinidos y personalizados, excepto Aplicación hospedada de CCA tienen una acción de UII especial denominada FireEvent. Puede llamar a esta acción para iniciar un evento definido por el usuario desde ese control. Es una forma cómoda de agrupar múltiples llamadas a la acción en una sola llamada, creando en la práctica una función en Unified Service Desk. También es una forma razonable de probar eventos y sus secuencias de acción antes de la implementación.

El primer parámetro de FireEvent es el nombre del evento:

name=MyEvent  

Todos los pares de nombre/valor posteriores se convierten en los parámetros del evento y, por tanto, se pueden usar como parámetros de sustitución dentro de las acciones a las que se llama como resultado. Por ejemplo, si pasa la siguiente lista de parámetros:

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

Esto desencadenará el evento personalizado MyEvent, permitiendo la capacidad de crear una llamada a la acción que utiliza el parámetro var1 de este modo:

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

Esto pasa el parámetro de evento como un parámetro de datos a la acción de control hospedado. En este ejemplo, eso significa que el parámetro de datos al control hospedado será el valor de account.name de la sesión.

Usar el moniker de eventos

Puede crear un evento personalizado en un control hospedado, y después llamarlo utilizando la siguiente sintaxis de moniker de eventos:

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

En la sintaxis, especifique el par key=value para pasar la lista de parámetros que se utilizará cuando se desencadene el evento.

Imagine un ejemplo donde desee generar un evento definido por el usuario siempre que el título del caso en el formulario del caso cambie en Microsoft Dataverse. Para hacerlo:

  1. Cree un nuevo evento, llamado TitleChanged, para el control hospedado Incidente en Dataverse.

  2. Cree una llamada a la acción, llamada Action Call for Title Change, con los siguientes valores:

    Campo Valor
    Nombre Llamada a la acción para cambio de título
    Control hospedado Incidente
    Para RunXrmCommand
    Datos function titleChangeReaction() {
    window.open(http://event/?EventName=TitleChanged&NewTitle="+encodeURIComponent(Xrm.Page.getAttribute("title").getValue()));
    }
    Xrm.Page.getAttribute("title").addOnChange(titleChangeReaction);
  3. Agregue la nueva llamada a la acción que ha creado al evento BrowserDocumentComplete del control hospedado Incidente. Más información: Agregar llamadas a la acción a un evento

    Cuando se desencadena el evento TitleChanged, se genera la solicitud siguiente: http://event/?EventName=TitleChanged&NewTitle=<NEW_TITLE>

    Esto producirá que el evento TitleChanged se desencadene con el siguiente parámetro de datos: NewTitle=<NEW_TITLE>

    Si usa JavaScript en Dataverse para invocar a un evento en Unified Service Desk mediante el moniker de eventos (http://event/?EventName=<EVENT_NAME>&key=value&key=value&…), puede usar la propiedad window.IsUSD para determinar si el código de JavaScript se ejecuta en Unified Service Desk cuando se invoca al evento. El siguiente ejemplo de código puede incluirse en el código JavaScript para asegurarse de que el evento se invoca solo cuando el JavaScript que llama se ejecuta en Unified Service Desk.

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

Consulte también

Eventos
Referencia de tipos de control hospedado y acciones/eventos
Administrar controles hospedados, acciones y eventos
MSDN: Uso de JavaScript con Microsoft Dynamics CRM