Inicio Blog Aprenda a Adjuntar\Actualizar\Quitar\Eliminar archivos adjuntos en Acumatica

Aprenda a Adjuntar\Actualizar\Quitar\Eliminar archivos adjuntos en Acumatica

Yuriy Zaletskyy | 13 de abril de 2023

YuriiBlogImage

Moviendonos en el mundo de la personalizacion de Acumatica es usual la pregunta de como leer o escribir archivos adjuntos en Acumatica. Por lo tanto, quiero compartir este ejemplo de cómo se puede leer, borrar y guardar archivos como archivos adjuntos de la pantalla de Acumatica (voy a utilizar la pantalla de envíos por ejemplo).

Acumatica permite al usuario adjuntar objetos adicionales a un registro de datos maestros, por ejemplo, una nota de texto o un archivo.

Algunas mesas ya tienen esta posibilidad. Aunque es posible que tenga que activar los accesorios de soporte para cada mesa en particular de forma individual.

Para activar la compatibilidad con archivos adjuntos de registros de datos, agregue un campo NoteID a DAC y una columna NoteID con el tipo de datos de identificador único a la tabla de base de datos. Acumatica almacena los archivos adjuntos en tablas separadas, por lo que la entidad NoteID se utiliza para almacenar el identificador.

#region NoteID
public abstract class noteID : PX.Data.IBqlField { }

[PXNote]
public virtual Guid? NoteID { get; set; }
#endregion

Además, es necesario registrar y/o permitir la extensión del fichero que se desea subir. Para ello utilice el formulario Preferencias de subida de ficheros (SM202550). Algunas extensiones normales se preparan desde la caja. En este formulario, también puede ser necesario definir el tamaño máximo de un archivo subido.

Acumatica utiliza dos tablas en DB para almacenar un archivo adjunto: una tabla para almacenar archivos en formato BIN, la segunda para información sobre la pantalla que utiliza este archivo. Por lo tanto, cuando desee adjuntar un archivo mediante un código, deberá crear registros en estas dos tablas.

Generalmente, se adjunta el archivo de la siguiente manera:

GIST: https://gist.github.com/yuriycto/46eb4be2a9e26b0c9fc5e25a29383641

 

A continuación, puede leer la información sobre el archivo como:

GIST: https://gist.github.com/yuriycto/64c62cd7ce76d4a16f5d6b6497a11a9a

Si sólo necesitas comprobar si hay algún archivo adjunto, necesitas comprobar la longitud del array de archivos adjuntos:
var hasAttachedFiles = PXNoteAttribute.GetFileNotes(Document.Cache, Document.Current).Length != 0;

Después de adjuntar un archivo, no se puede editar ni actualizar. Puede cargar otro archivo como nueva versión. También puede "intercambiar" archivos, es decir, eliminar el archivo antiguo y cargar un archivo con un contenido más reciente.

También puede eliminar el archivo adjunto:

GIST: https://gist.github.com/yuriycto/0772a453a6e70278bca6a9b1f3b017d9

Resumen

El artículo explica cómo adjuntar, actualizar, eliminar y borrar archivos adjuntos en Acumatica, utilizando como ejemplo la pantalla de Envíos. Para habilitar el soporte para archivos adjuntos de registros de datos, el campo NoteID debe agregarse a DAC y la columna NoteID con el tipo de datos de identificador único debe agregarse a la tabla de base de datos. También se debe utilizar el formulario de Preferencias de carga de archivos para registrar y permitir la extensión del archivo que se va a cargar, y para definir el tamaño máximo del archivo cargado. Acumatica utiliza dos tablas en la base de datos para almacenar archivos adjuntos: una para almacenar archivos en formato BIN y otra para información sobre la pantalla que utiliza el archivo. Se proporcionan ejemplos de código para adjuntar, leer y eliminar archivos, y se explica que una vez que se adjunta un archivo, no se puede editar ni actualizar, pero se puede cargar una nueva versión, o se puede intercambiar el archivo eliminando el archivo antiguo y cargando uno nuevo con contenido más reciente.

Autor del blog

Yuriy empezó a programar en 2003 utilizando C++ y FoxPro, para pasar después a .Net en 2006. A partir de 2013, ha estado desarrollando activamente aplicaciones utilizando Acumatica xRP Framework, desarrollando soluciones para muchos clientes a lo largo de los años. Tiene un blog personal, acertadamente llamado Blog de Yuriy Zaletskyy, donde ha estado documentando los problemas de programación que se ha encontrado en los últimos seis años, compartiendo sus observaciones y soluciones libremente con otros desarrolladores de Acumatica.

Reciba las actualizaciones del blog en su bandeja de entrada.