Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O contexto de execução define o contexto de evento no qual o código é executado. O sistema passa o contexto de execução quando um evento ocorre em um formulário ou grade. Use-o no manipulador de eventos para executar várias tarefas, como determinar o formContext ou gridContext ou gerenciar o evento save.
Você pode passar o contexto de execução das seguintes maneiras:
Definindo manipuladores de eventos usando a interface do usuário: o contexto de execução é um parâmetro opcional que você pode passar para uma função de biblioteca JavaScript por meio de um manipulador de eventos. Use a opção Passar o contexto de execução como primeiro parâmetro na caixa de diálogo Propriedades do Manipulador ao especificar o nome da função para passar o contexto de execução do evento. O contexto de execução é o primeiro parâmetro passado para uma função.
- Definindo manipuladores de eventos usando código: o sistema passa automaticamente o contexto de execução como o primeiro parâmetro para funções definidas usando código. Para obter uma lista de métodos que você pode usar para definir manipuladores de eventos no código, consulte Adicionar ou remover funções de manipulador de eventos usando o código da API do Cliente.
O objeto de contexto de execução fornece métodos para trabalhar com o contexto. Para obter mais informações, consulte a referência de métodos de contexto de execução da API do Cliente.
Usar objetos de contexto de forma assíncrona
O contexto que o sistema passa para um evento só funciona conforme o esperado durante o evento. Quando você mantém uma referência a um contexto após o término do evento, podem ocorrer ações que fazem com que os métodos de contexto se comportem de maneira inesperada.
Por exemplo, se o manipulador de eventos expedir uma ação assíncrona que leva muito tempo enquanto você estiver mantendo uma referência ao contexto de execução, o usuário final poderá navegar para longe da página atual quando a promessa for resolvida e você invocar o método de contexto. Essa situação pode fazer com que métodos como formContext.getAttribute(<name>).getValue() retornem null, mesmo que no momento em que o manipulador de eventos original foi executado, o atributo tivesse um valor.
Os exemplos a seguir mostram onde você deve adicionar mais verificações e tomar cuidado porque a função do manipulador de eventos usa o contexto de execução após o término do evento.
Acessar contexto em uma Promise
O contexto pode mudar de maneiras inesperadas após a resolução de uma promise.
function onLoad(executionContext) {
const formContext = executionContext.getFormContext();
fetch("https://www.contoso.com/").then((result) => {
// Using formContext or executionContext here may not work as expected
// because onLoad has already completed when the promise is resolved.
formContext.getAttribute("name").setValue(result);
});
}
Acessar o contexto após uma instrução await
O contexto pode mudar de maneiras inesperadas depois de usar await dentro de uma função assíncrona.
async function onLoad(executionContext) {
const formContext = executionContext.getFormContext();
const result = await fetch("https://www.contoso.com/");
// Using formContext or executionContext here might not work as expected
// because the synchronous part of onLoad has already completed.
formContext.getAttribute("name").setValue(result);
}
Acessar contexto em uma função de timeout
O contexto pode mudar de maneiras inesperadas depois de usar setTimeout ou setInterval para adiar a execução de algum código.
function onLoad(executionContext) {
const formContext = executionContext.getFormContext();
if (notReady) {
setTimeout(() => {
// Using formContext or executionContext here may not work as expected
// because onLoad has already completed when this delayed function executes.
const name = formContext.getAttribute("name").getValue();
}, 100);
} else {
formContext.getAttribute("name").setValue("abc");
}
}
Artigos relacionados
Contexto de formulário da API do cliente
Contexto de grade da API do cliente
Contexto de formulário e grade em ações da barra de ferramentas