Adicionar método de exibição ou edição por meio de extensão no Dynamics 365
Publicado: 16 de fevereiro de 2025 às 11:55:56 UTC
Última atualização: 12 de janeiro de 2026 às 08:57:26 UTC
Neste artigo, explico como usar uma extensão de classe para adicionar um método de exibição a uma tabela e a um formulário no Dynamics 365 for Operations, incluindo exemplos de código X++.
Add Display or Edit Method via Extension in Dynamics 365
Embora planejar o uso de métodos de exibição ou edição no Dynamics geralmente deva levar você a considerar se talvez seja possível projetar sua solução de uma maneira diferente, ocasionalmente essa é a melhor opção.
Nas versões anteriores do Dynamics e do Axapta, era muito fácil criar métodos de exibição ou edição em tabelas e formulários, mas quando recentemente precisei criar meu primeiro método de edição no Dynamics 365, descobri que o procedimento para fazê-lo é um pouco diferente.
Existem, evidentemente, várias abordagens válidas, mas a que considero melhor (tanto em termos de intuitividade quanto de elegância do código) é usar uma extensão de classe. Sim, você pode usar extensões de classe para adicionar métodos a outros tipos de elementos além de classes — neste caso, uma tabela, mas também funciona para formulários.
Primeiro, crie uma nova classe. Você pode dar o nome que quiser, mas por algum motivo ela precisa ter o sufixo "_Extension". Digamos que você precise adicionar um método de exibição à classe CustTable; você poderia, por exemplo, chamá-la de MyCustTable_Extension.
A classe deve ser decorada com ExtensionOf para que o sistema saiba o que você está estendendo, da seguinte forma:
public final class MyCustTable_Extension
{
}
Agora você pode implementar seu método de exibição nesta classe, como faria diretamente na tabela em versões anteriores do Dynamics - "this" inclusive faz referência à tabela, permitindo o acesso a campos e outros métodos.
Por exemplo, uma classe com um método de exibição simples (e completamente inútil) que apenas retorna o número da conta do cliente poderia ter a seguinte aparência:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Agora, para adicionar o método de exibição a um formulário (ou extensão de formulário, caso não seja possível editar o formulário diretamente), você precisa adicionar um campo ao formulário manualmente e certificar-se de usar o tipo correto (string neste exemplo).
Em seguida, no controle, você definiria DataSource como CustTable (ou qualquer que seja o nome da sua fonte de dados CustTable) e DataMethod como MyCustTable_Extension.displayAccountNum (certifique-se de incluir o nome da classe, caso contrário, o compilador não conseguirá encontrar o método).
E pronto :-)
Atualização: Não é mais necessário incluir o nome da classe de extensão ao adicionar o método de exibição a um formulário, mas era necessário na data de publicação original. Estou deixando a informação aqui caso alguns leitores ainda estejam usando versões antigas.
Leitura adicional
Se você gostou deste post, você também pode gostar destas sugestões:
- Coloque o Dynamics 365 FO Virtual Machine Dev ou Test no modo de manutenção
- Atualizar valor da dimensão financeira do código X++ no Dynamics 365
- O Visual Studio trava na inicialização ao carregar projetos recentes
