Adicionar método de visualização ou edição através de extensão no Dynamics 365
Publicado: 16 de fevereiro de 2025 às 11:56:00 UTC
Neste artigo, explico como utilizar uma extensão de classe para adicionar um método de visualizaçã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 planear utilizar métodos de visualização ou edição no Dynamics seja algo que geralmente o deve fazer considerar se talvez seja possível conceber a sua solução de uma forma diferente, por vezes são a melhor forma de o fazer.
Nas versões anteriores do Dynamics e do Axapta, era muito fácil criar métodos de visualização ou edição em tabelas e formulários, mas quando recentemente precisei de criar o meu primeiro método de edição no Dynamics 365, descobri que o procedimento para o fazer é um pouco diferente.
É evidente que existem várias abordagens válidas, mas a que considero melhor (tanto em termos de intuitividade como de beleza do código) é utilizar uma extensão de classe. Sim, pode utilizar extensões de classes para adicionar métodos a outros tipos de elementos para além das classes — neste caso, uma tabela — mas isto também funciona para formulários.
Primeiro, crie uma nova classe. Pode dar-lhe o nome que quiser, mas por algum motivo deve ter o sufixo "_Extension". Digamos que precisa de adicionar um método de visualização à CustTable.
A classe deve ser decorada com ExtensionOf para que o sistema saiba o que está a estender, assim:
public final class MyCustTable_Extension
{
}
Agora pode simplesmente implementar o seu método de visualização nesta classe, como faria diretamente na tabela nas versões anteriores do Dynamics - "this" até faz referência à tabela, para que possa aceder a campos e outros métodos.
Por exemplo, uma classe com um método de visualização simples (e completamente inútil) que apenas devolve o número da conta do cliente poderia ser assim:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Agora, para adicionar o método de visualização a um formulário (ou extensão de formulário, se não puder editar o formulário diretamente), precisa de adicionar um campo ao formulário manualmente e certificar-se de que utiliza o tipo correto (string neste exemplo).
De seguida, no controlo, 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 que inclui o nome da classe, caso contrário o compilador não conseguirá encontrar o método).
E já está :-)
Actualização: Já não é necessário incluir o nome da classe de extensão ao adicionar o método de visualização a um formulário, mas no momento original da publicação era. Estou a deixar aqui a informação caso alguns leitores ainda estejam a usar versões mais antigas.