Agregar método de visualización o edición mediante extensión en Dynamics 365
Publicado: 16 de febrero de 2025, 11:55:28 UTC
Última actualización: 12 de enero de 2026, 8:57:17 UTC
En este artículo, explico cómo usar una extensión de clase para agregar un método de visualización a una tabla y un formulario en Dynamics 365 for Operations, se incluyen ejemplos de código X++.
Add Display or Edit Method via Extension in Dynamics 365
Si bien planificar el uso de métodos de visualización o edición en Dynamics es algo que generalmente debería hacerle considerar si quizás podría diseñar su solución de una manera diferente, en ocasiones son la mejor manera de hacerlo.
En versiones anteriores de Dynamics y Axapta, era muy fácil crear métodos de visualización o edición en tablas y formularios, pero cuando recientemente tuve que crear mi primer método de edición en Dynamics 365, descubrí que el procedimiento para hacerlo es algo diferente.
Evidentemente, existen varios enfoques válidos, pero el que considero más adecuado (tanto por su intuitividad como por la estética del código) es usar una extensión de clase. Sí, se pueden usar extensiones de clase para añadir métodos a otros tipos de elementos que no sean clases (en este caso, una tabla), pero también funciona con formularios.
Primero, crea una nueva clase. Puedes nombrarla como quieras, pero por alguna razón debe tener el sufijo "_Extension". Supongamos que necesitas añadir un método de visualización a CustTable; por ejemplo, podrías nombrarlo MyCustTable_Extension.
La clase debe estar decorada con ExtensionOf para que el sistema sepa qué estás extendiendo, de la siguiente manera:
public final class MyCustTable_Extension
{
}
Ahora puede implementar su método de visualización en esta clase, como lo hubiera hecho directamente en la tabla en versiones anteriores de Dynamics: "esto" incluso hace referencia a la tabla, por lo que puede acceder a los campos y otros métodos.
Por ejemplo, una clase con un método de visualización simple (y completamente inútil) que solo devuelve el número de cuenta del cliente podría verse así:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Ahora, para agregar el método de visualización a un formulario (o extensión de formulario, si no puede editar el formulario directamente), debe agregar un campo al formulario manualmente y asegurarse de usar el tipo correcto (cadena en este ejemplo).
Luego, en el control deberá establecer DataSource en CustTable (o cualquiera que sea el nombre de su fuente de datos CustTable) y DataMethod en MyCustTable_Extension.displayAccountNum (asegúrese de incluir el nombre de la clase; de lo contrario, el compilador no podrá encontrar el método).
Y ya está :-)
Actualización: Ya no es necesario incluir el nombre de la clase de extensión al añadir el método de visualización a un formulario, aunque al momento de la publicación original sí lo era. Dejo la información aquí por si algunos lectores aún usan versiones anteriores.
Lectura adicional
Si te ha gustado esta publicación, puede que también te gusten estas sugerencias:
- Actualizar el valor de la dimensión financiera desde el código X++ en Dynamics 365
- Creación de un campo de búsqueda para una dimensión financiera en Dynamics 365
- Ponga la máquina virtual de desarrollo o prueba de Dynamics 365 FO en modo de mantenimiento
