Sdílet prostřednictvím


Create a user-defined event

 

Applies To: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016

Unified Service Desk provides you with predefined events for hosted controls based on the type of the hosted control. Apart from these predefined events, you can also create your own events in Unified Service Desk, which are called user-defined events. You can use the FireEvent action or the event moniker to run user-defined events.

In This Topic

Use the FireEvent action

Use the event moniker

Use the FireEvent action

All of the predefined and custom Unified Service Desk hosted control types, except for the CCA Hosted Application have a special UII action called FireEvent. You can call this action to initiate a user-defined event from that control. This is a convenient way to group multiple action calls into a single call, effectively creating a function within Unified Service Desk. It is also a reasonable way to test events and their action sequences before deployment.

The first parameter to the FireEvent is the name of the event:

name=MyEvent

All subsequent name/value pairs become the parameters to the event and thus can be used as replacement parameters within the actions that are called as a result. For example, if you pass the following parameter list:

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

This will fire the custom event MyEvent event enabling the ability to create an action call that uses the var1 parameter as follows:

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

This passes the event parameter as a data parameter to the hosted control action. In this example, that means the data parameter to the hosted control will be the account.name value from the session.

Use the event moniker

You can create a custom event on a hosted control, and then call it using the following event moniker syntax:

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

In the syntax, you specify the key=value pair to pass parameter list to be used when the event is triggered.

Consider an example where you want to raise a user-defined event whenever the title of the case on the case form changes in Dynamics 365. To do this:

  1. Create a new event, called TitleChanged, for the Incident hosted control in Microsoft Dynamics 365.

  2. Create an action call, called Action Call for Title Change, with the following values:

    Field

    Value

    Name

    Action Call for Title Change

    Hosted Control

    Incident

    Action

    RunXrmCommand

    Data

    function titleChangeReaction() 
    { 
       window.open("http://event/?EventName=TitleChanged&NewTitle="+encodeURIComponent(Xrm.Page.getAttribute("title").getValue()));
    }
    Xrm.Page.getAttribute("title").addOnChange(titleChangeReaction);
  3. Add the new action call that you created to the BrowserDocumentComplete event of the Incident hosted control. More information: Add action calls to an event

    When the TitleChanged event is triggered, the following request is raised: http://event/?EventName=TitleChanged&NewTitle=<NEW_TITLE>

    This will cause the TitleChanged event to be triggered with the following data parameter: NewTitle=<NEW_TITLE>

If you use JavaScript in Dynamics 365 to invoke an event in Unified Service Desk using the event moniker (http://event/?EventName=<EVENT_NAME>&key=value&key=value&…), you can use the window.IsUSD property to determine whether the JavaScript code is running under Unified Service Desk when the event is invoked. The following code sample can be included in your JavaScript code to ensure that the event is invoked only when the calling JavaScript is running within Unified Service Desk.

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

See Also

Events
Hosted control types and action/event reference
Manage hosted controls, actions, and events
MSDN: Use JavaScript with Microsoft Dynamics CRM

Unified Service Desk 2.0

© 2017 Microsoft. All rights reserved. Copyright