La mayoría de nosotros lo hemos hecho alguna vez. El cliente necesita un nuevo campo en la pantalla, los consultores proporcionan la información y usted crea una UDF en una tabla estándar de Acumatica. Trabajo hecho. Pero, por la razón que sea, el campo no se utiliza o quizás se creó por error. A menos que intervenga con un script SQL para eliminar la columna, este campo UDF no utilizado probablemente seguirá existiendo en SOOrder o SOLine para siempre. Me parece muy frustrante y es otra buena razón para tener siempre una instancia de prueba de Acumatica. Pero ese es el tema de otro artículo. En este artículo, quiero discutir los méritos de crear campos personalizados de manera diferente mediante la creación de tablas de extensión DAC en lugar de crear campos UDF individuales en una tabla estándar de Acumatica.
Una tabla de extensión DAC es una tabla SQL independiente que Acumatica asigna automáticamente a una tabla estándar (por ejemplo, SOOrder) mediante una unión izquierda o una unión interna, según la configuración. La tabla de extensión DAC tiene los mismos campos clave que la tabla estándar, además de todos los campos UDF que desee crear. Acumatica crea automáticamente una entrada en su tabla de extensión DAC cuando lo necesite o para cada registro de la tabla unida de Acumatica, según la configuración. En mi opinión, esta es una forma mucho mejor de agregar información que está directamente vinculada a las tablas estándar de Acumatica. Algunas cosas importantes que debe tener en cuenta al crear su propia tabla de extensión DAC:
- La tabla SQL debe tener las mismas columnas clave que las tablas estándar (aunque no es necesario definirlas en el CAD).
- La tabla SQL debe contener los campos CompanyID y DeletedDatabaseRecord
- Debe tener el atributo PXTable adjunto a su tabla DAC Extension DAC. El parámetro isOptional dicta si Acumatica mapea su tabla con un Inner o Left Outer Join.
- No es necesario utilizar el prefijo 'Usr' que se requiere al crear una UDF estándar, en su lugar, debe utilizar un prefijo que indique su autor.
- Puede utilizar los tipos de columnas de auditoría estándar para añadir metadatos a su tabla(tstamp, CreatedByID, etc.). Sin embargo, si la tabla estándar contiene estos campos de auditoría, asegúrese de evitar colisiones de nombres.
Aquí tienes un ejemplo de código:
GIST: https://gist.github.com/patrick711/8cde1aaf8da0069d75a59626edd6fdb9
Buena suerte y feliz codificación.