Aggiungere il metodo di visualizzazione o modifica tramite estensione in Dynamics 365
Pubblicato: 16 febbraio 2025 alle ore 11:55:38 UTC
Ultimo aggiornamento: 12 gennaio 2026 alle ore 08:57:20 UTC
In questo articolo spiego come utilizzare un'estensione di classe per aggiungere un metodo di visualizzazione a una tabella e a un modulo in Dynamics 365 for Operations, inclusi esempi di codice X++.
Add Display or Edit Method via Extension in Dynamics 365
Sebbene pianificare di utilizzare metodi di visualizzazione o modifica in Dynamics sia qualcosa che in genere dovrebbe farti considerare se potresti progettare la tua soluzione in un modo diverso, a volte questi metodi rappresentano la soluzione migliore.
Nelle versioni precedenti di Dynamics e Axapta era molto semplice creare metodi di visualizzazione o modifica su tabelle e moduli, ma quando di recente mi è capitato di dover creare il mio primo metodo di modifica in Dynamics 365, ho scoperto che la procedura per farlo è leggermente diversa.
Esistono evidentemente diversi approcci validi, ma quello che trovo migliore (sia in termini di intuitività che di estetica del codice) è l'utilizzo di un'estensione di classe. Sì, è possibile utilizzare le estensioni di classe per aggiungere metodi ad altri tipi di elementi oltre alle classi - in questo caso una tabella, ma funziona anche per i form.
Per prima cosa, crea una nuova classe. Puoi chiamarla come preferisci, ma per qualche motivo deve avere il suffisso "_Extension". Supponiamo che tu debba aggiungere un metodo di visualizzazione a CustTable, potresti ad esempio chiamarla MyCustTable_Extension.
La classe deve essere decorata con ExtensionOf per far sapere al sistema cosa si sta estendendo, in questo modo:
public final class MyCustTable_Extension
{
}
Ora puoi semplicemente implementare il tuo metodo di visualizzazione in questa classe, come avresti fatto direttamente sulla tabella nelle versioni precedenti di Dynamics: "this" fa addirittura riferimento alla tabella, così puoi accedere ai campi e ad altri metodi.
Ad esempio, una classe con un metodo di visualizzazione semplice (e completamente inutile) che restituisce semplicemente il numero di conto del cliente potrebbe apparire così:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Ora, per aggiungere il metodo di visualizzazione a un modulo (o a un'estensione del modulo, se non è possibile modificare direttamente il modulo), è necessario aggiungere manualmente un campo al modulo e assicurarsi di utilizzare il tipo corretto (stringa in questo esempio).
Quindi, sul controllo imposterai DataSource su CustTable (o qualunque sia il nome della tua origine dati CustTable) e DataMethod su MyCustTable_Extension.displayAccountNum (assicurati di includere il nome della classe, altrimenti il compilatore non riuscirà a trovare il metodo).
E il gioco è fatto :-)
Aggiornamento: non è più necessario includere il nome della classe di estensione quando si aggiunge il metodo di visualizzazione a un modulo, ma al momento della pubblicazione originale lo era. Lascio qui le informazioni nel caso in cui alcuni lettori utilizzino ancora versioni precedenti.
Ulteriori letture
Se ti è piaciuto questo post, potrebbero piacerti anche questi suggerimenti:
- Visual Studio si blocca all'avvio durante il caricamento dei progetti recenti
- Creazione di un campo di ricerca per una dimensione finanziaria in Dynamics 365
- Metti Dynamics 365 FO Virtual Machine Dev o Test in modalità di manutenzione
