Contexto de ejecución (referencia del lado del cliente)

 

Publicado: enero de 2017

Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

El contexto de ejecución es un parámetro opcional que puede pasarse a una función de la biblioteca de JavaScript mediante un controlador de eventos. Esta opción se muestra en el cuadro de diálogo de propiedades del controlador cuando se especifica el nombre de la función. Esta opción se establece para un elemento <Handler> (FormXml) mediante el atributo passExecutionContext.

El contexto de ejecución automáticamente se pasa a las funciones establecidas usando los métodos Xrm.Page.data.fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_addOnSave y Xrm.Page.data.entityAttribute.6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_addOnChange y Xrm.Page.uiControl.51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addPreSearch.

Métodos del contexto de ejecución

  • getContext
    Método que devuelve el objeto Contexto del lado del cliente (referencia del lado del cliente).

  • getDepth
    Método que devuelve un valor que indica el orden en el que se ejecuta el controlador.

  • getEventArgs
    Método que devuelve un objeto con métodos para administrar el evento Save.

  • getEventSource
    Método que devuelve una referencia al objeto en que se produjo el evento.

  • getFormContext
    Método que devuelve referencia a un formulario o una cuadrícula editable en función de dónde se llamó al método.

  • Variables compartidas
    Las variables compartidas permiten compartir una variable con otros controladores para el mismo evento. Utilice los métodos setSharedVariable y getSharedVariable para trabajar con variables compartidas.

getContext

Método que devuelve el objeto Contexto del lado del cliente (referencia del lado del cliente)

ExecutionContextObj.getContext()
  • Valor de retorno
    Tipo:Objeto

getDepth

Método que devuelve un valor que indica el orden en el que se ejecuta el controlador.

  • Valor de retorno
    Tipo: Número

    El orden empieza con 0.

getEventArgs

Método que devuelve un objeto con métodos para administrar el evento Save.

Nota

Este método devuelve null para cualquier evento distinto del evento Save.

ExecutionContextObj.getEventArgs()

getEventSource

Método que devuelve una referencia al objeto en que se produjo el evento.

ExecutionContextObj.getEventSource()
  • Valor de retorno
    Tipo:Objeto

    Este método devuelve el objeto del modelo de objetos Xrm.Page que es el origen del evento, no un objeto HTMLDOM. Por ejemplo, en un evento OnChange, este método devuelve el objeto de atributo Xrm.Page.data.entity que representa el atributo cambiado.

getFormContext

Método que devuelve referencia al formulario (Xrm.Page) o una cuadrícula editable en función de dónde se llamó al método.

ExecutionContextObj.getFormContext()
  • Valor de retorno
    Tipo:Objeto

    Este método devuelve una referencia al objeto del modelo de objetos de Xrm.Page o al objeto dabc9332-54f3-4b1e-ac98-a3c5a4641b0c#BKMK_GridRow en una cuadrícula editable en función de dónde se llamó al método. Este método le permite crear controladores de eventos comunes que pueden trabajar en un formulario o una cuadrícula editable en función de dónde se llame.

    Más información: Use el modelo de objeto Xrm.Page y Objetos y métodos de cuadrícula editables (referencia del lado del cliente)

    Nota

    Este método se introdujo en Actualización de diciembre de 2016 para Dynamics 365 (online y local).

  • Ejemplo
    El código de ejemplo siguiente demuestra cómo puede crear un método que establece una notificación en un campo de formulario o una celda de cuadrícula editable en función de dónde registró el script (d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_FieldOnChangeEvent o evento dabc9332-54f3-4b1e-ac98-a3c5a4641b0c#BKMK_OnChange de cuadrícula editable):

    function commonEventHandler(executionContext) {
        var entityObject = executionContext.getFormContext().data.entity;
        var telephoneAttr = entityObject.attributes.getByName('telephone1');
        var isNumberWithCountryCode = telephoneAttr.getValue().substring(0,1) === '+';
    
        // telephoneField will be an Xrm.Page control if invoked from a form OnChange event;
        // telephoneField will be a editable grid GridCell object if invoked from editable grid OnChange event.
        var telephoneField = telephoneAttr.controls.getByIndex(0);
    
        if (!isNumberWithCountryCode) {
            telephoneField.setNotification('Please include the country code beginning with ‘+’.', 'countryCodeNotification');
        }
        else {
            telephoneField.clearNotification('countryCodeNotification');
        }
    }
    

Variables compartidas

Las variables compartidas permiten compartir una variable con otros controladores para el mismo evento. Utilice los métodos setSharedVariable y getSharedVariable para pasar variables entre funciones.

setSharedVariable

Establece el valor de una variable que será usada por un controlador una vez que se complete el controlador actual.

ExecutionContextObj.setSharedVariable(key, value)
  • Argumentos
    String: El nombre de la variable.

    Object: El valor que se va a establecer.

getSharedVariable

Recupera un conjunto de variables definidas mediante setSharedVariable.

ExecutionContextObj.getSharedVariable(key)
  • Argumentos
    String: El nombre de la variable.

  • Valor de retorno
    Tipo:Objeto

    El tipo específico depende de cuál es el objeto del valor.

Ver también

Referencia de programación del lado del cliente

Microsoft Dynamics 365

© 2017 Microsoft. Todos los derechos reservados. Copyright