Introducción
Acumatica tiene la capacidad de personalizar casi cualquier pantalla para proporcionar información adicional o lógica de negocio que sea requerida por un cliente ERP. Las personalizaciones se realizan utilizando la plataforma Acumatica xRP y se integran perfectamente en la plataforma ERP (Enterprise Resource Planning), la extensión es robusta y ágil, asegurando que permitiría que la aplicación siga siendo actualizable y cuando se elimina el paquete, devuelve la aplicación a su estado original.
En este blog, crearemos un paquete de personalización que permitirá a los usuarios de negocio especificar un tipo de pedido interno, que puede ser utilizado para flujos de trabajo, mapas de asignación e informes. Además, el paquete incluye un selector de cambio de nombre de columna.
Creación de un paquete de personalización
Para crear personalizaciones, vaya a Personalizaciones y abra Proyectos de personalización (SM204505). En la pantalla, cree una nueva personalización y abra el enlace.
NOTAS:
- El usuario debe tener el rol de Personalizador
- La convención de nomenclatura del proyecto debe ser relevante para la función
- Proporcionar una secuencia de números de versión para gestionar las reiteraciones de personalización (en la descripción)
- Desarrollo mínimo de Acumatica
- Reiteración de versiones
- El nivel de proyecto es importante por dos razones:
- Cuanto más importante sea la personalización, mayor será el número
- Garantiza que las personalizaciones no se fusionen y causen conflictos
Una vez creado el paquete de personalización, comience con las pantallas y añada todas las pantallas necesarias para la personalización. Abajo estamos agregando una pantalla de Orden de Compra (PO301000):
En la pantalla, cree un campo definido por el usuario para el tipo de orden interna.
Añadiendo campos personalizados, basados en el tipo de almacenamiento (DBTableColumn), se podría crear una columna en la base de datos. Siguiendo este proceso, se crean dos elementos adicionales en el proyecto:
- Acceso a datos - Campo DAC y sus atributos
- Scripts de base de datos - el script que Acumatica genera para crear la columna (tipo de almacenamiento DBTableColumn)
NOTAS:
- Los campos definidos por el usuario deben especificarse con el prefijo "Usr". Esto es para asegurar que la columna no se elimine durante las actualizaciones.
- Al añadir nuevos campos, es necesario publicar el proyecto antes de poder utilizar el campo
- El campo se añade a la pantalla con "CREAR CONTROLES".
- Al añadir nuevos campos, asegúrese de seleccionar la vista correcta al crear el campo, es decir, si está en la cabecera, asegúrese de seleccionar la sección de resumen al crear nuevos campos.
- Revisar y ajustar los atributos del campo antes de añadirlo al formulario
- Si no se hace, se utilizará el tipo de elemento original. Este es un problema cuando se crea un campo para un desplegable o selector pero no se define. Sin ella, el campo se añadiría como un campo de texto sin formato
Al "CREAR CONTROLES" , el campo se añade a la vista. Una vez añadido, el campo (basado en el tipo de campo selector) tiene una lista de atributos. Es necesario revisar dos propiedades
- CommitChanges - esta propiedad activaría el evento de campo actualizado
- ID - El identificador del control en la página. Acumatica por defecto proporcionaría un ID de campo Cst.... Pro-tip Cambie el ID para que sea único para el campo, ya que otras personalizaciones en el mismo sitio podrían tener el mismo valor de ID personalizado asignado y causará un problema de conflicto.
En Acceso a datos, convertir el punto en una extensión a. El artículo pasaría a la sección del Código para su posterior modificación.
Desde la sección de códigos se pueden realizar actividades adicionales:
De lo anterior lo siguiente:
- La sección de código enumera todas las extensiones del código
- Override Method proporciona una lista de métodos/acciones que pueden ser override, esto permite que un método original sea llamado y pueda ser modificado
- Nueva acción proporciona el código para crear nuevas acciones "botones" en la pantalla
- Trasladar el código a una biblioteca de extensión/code-behind (archivo dll)
Una vez modificada la extensión DAC para los atributos del campo DAC, se puede añadir el campo a la pantalla. (Encontrará más información sobre la codificación de extensiones en la sección siguiente).
El campo DAC se configura como un selector, que enumerará los ID y las descripciones de los atributos.
Código
GIST: https://gist.github.com/Gerhard-ZA/102d5a2c5a182e8795bbb19733dee6ee
Ampliación del paquete a code-behind
Para mover la extensión, haga clic en la Biblioteca de extensiones y cree/abra la biblioteca de extensiones.
Al abrir Visual Studio, el archivo de extensión estará disponible en el explorador de soluciones.
- El archivo PO Order Extension está disponible en el explorador de soluciones, este archivo se utiliza cuando se adjunta la biblioteca de extensiones a Internet Information Service (IIS).
- NOTA - Si el archivo (extensión) se encuentra tanto en el paquete de personalización como en Visual Studio, el archivo del paquete de personalización se utilizaría para el procesamiento
- El nombre de la clase de la extensión, este nombre debe ser único ya que podría causar un problema de conflicto si la aplicación tiene el mismo nombre de extensión en otro paquete de personalización.
- El método IsActive permite a la lógica de negocio identificar si la extensión debe ser utilizada o no. Este método se puede utilizar con la lógica de negocio o configuración para activar sólo en ciertas condiciones
Al crear una biblioteca de extensión, el archivo dll deberá incluirse en el proyecto de personalización para que el paquete de personalización funcione.
El resultado final
Enlace al paquete de personalización → URL
Resumen
Usando los métodos proporcionados en el post, evitarás problemas con otras personalizaciones publicadas y mantendrás tus paquetes limpios y mantenibles ahora y en el futuro. Busca más buenas prácticas de personalización de mi parte y de otros desarrolladores MVP.
Buena suerte y feliz codificación.