Contexto de execução (referência do cliente)

 

Publicado: janeiro de 2017

Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

O contexto de execução é um parâmetro opcional que pode ser passado para uma função de biblioteca do JavaScript por meio de um manipulador de eventos. Essa opção é apresentada na caixa de diálogo de propriedades do manipulador quando você especifica o nome da função. Essa opção é definida para um elemento <Handler> (FormXml) usando o atributo passExecutionContext.

O contexto de execução é passado automaticamente para funções definidas usando os métodos Xrm.Page.data.fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_addOnSave e Xrm.Page.data.entityAttribute.6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_addOnChange e Xrm.Page.uiControl.51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addPreSearch.

Métodos do contexto de execução

  • getContext
    Método que retorna o objeto Contexto do cliente (referência do cliente).

  • getDepth
    O método que retorna um valor que indica a ordem em que esse manipulador é executado.

  • getEventArgs
    Método que retorna um objeto com métodos para gerenciar o evento Save.

  • getEventSource
    Método que retorna uma referência ao objeto em que o evento ocorreu.

  • getFormContext
    Método que retorna a referência para um formulário ou para a grade editável, dependendo do local de onde o método foi chamado.

  • Variáveis compartilhadas
    Variáveis compartilhadas permitem compartilhamento de uma variável com outros manipuladores para o mesmo evento. Você usa os métodos setSharedVariable e getSharedVariable para trabalhar com variáveis compartilhadas.

getContext

Método que retorna o objeto Contexto do cliente (referência do cliente)

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

getDepth

O método que retorna um valor que indica a ordem em que esse manipulador é executado.

  • Valor de Retorno
    Tipo: Número

    O pedido começa com 0.

getEventArgs

Método que retorna um objeto com métodos para gerenciar o evento Save.

Observação

Esse método retornará nulo para qualquer evento diferente do evento Save.

ExecutionContextObj.getEventArgs()

getEventSource

Método que retorna uma referência ao objeto em que o evento ocorreu.

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

    Esse método retornará o objeto do modelo de objeto Xrm.Page que é a origem do evento, não um objeto HTMLDOM. Por exemplo, em um evento OnChange, este método retorna o objeto de atributo Xrm.Page.data.entity que representa o atributo alterado.

getFormContext

Método que retorna a referência para o formulário (Xrm.Page) ou para a grade editável, dependendo do local de onde o método foi chamado.

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

    Este método retorna uma referência para o objeto do modelo de objeto Xrm.Page ou para o objeto dabc9332-54f3-4b1e-ac98-a3c5a4641b0c#BKMK_GridRow em uma grade editável, dependendo do local de onde o método tiver sido chamado. Esse método permite que você crie manipuladores de eventos comuns que podem operar em um formulário ou em uma grade editável, dependendo do local de onde ele for chamado.

    Mais informações: Use o modelo de objeto Xrm.Page e Objetos e métodos de grade editável (referência do cliente)

    Observação

    Esse método foi apresentado no Atualização de dezembro de 2016 para Dynamics 365 (online e local).

  • Exemplo
    O código de exemplo a seguir demonstra como criar um método que define uma notificação em um campo de formulário ou em uma célula de grade editável, dependendo do local onde você tiver registrado o script (d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_FieldOnChangeEvent ou o evento de grade editável dabc9332-54f3-4b1e-ac98-a3c5a4641b0c#BKMK_OnChange):

    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');
        }
    }
    

Variáveis compartilhadas

Variáveis compartilhadas permitem compartilhamento de uma variável com outros manipuladores para o mesmo evento. Você usa os métodos setSharedVariable e getSharedVariable para passar variáveis entre as funções.

setSharedVariable

Define o valor de uma variável para ser usada por um manipulador depois que o manipulador concluir.

ExecutionContextObj.setSharedVariable(key, value)
  • Argumentos
    String: O nome da variável

    Object: O valor para definir.

getSharedVariable

Recupera um conjunto de variáveis usando setSharedVariable.

ExecutionContextObj.getSharedVariable(key)
  • Argumentos
    String: O nome da variável.

  • Valor de Retorno
    Tipo: Objeto

    O tipo específico depende qual é o objeto para o valor.

Confira Também

Referência de programação do cliente

Microsoft Dynamics 365

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais