Accueil Blog Apprendre à attacher, mettre à jour, supprimer des fichiers joints dans Acumatica

Apprendre à attacher, mettre à jour, supprimer et supprimer des fichiers joints dans Acumatica

Yuriy Zaletskyy | 13 avril 2023

YuriiBlogImage

Dans le monde de la personnalisation d'Acumatica, il est courant de se demander comment lire ou écrire des pièces jointes dans Acumatica. C'est pourquoi je souhaite partager cet exemple qui montre comment lire, supprimer et enregistrer des fichiers en tant que pièces jointes d'un écran Acumatica (j'utiliserai l'écran Expéditions pour l'exemple).

Acumatica permet à l'utilisateur d'attacher des objets supplémentaires à un enregistrement de données de base - par exemple, une note de texte ou un fichier.

Certaines tables ont déjà cette possibilité. Il se peut que vous deviez activer les pièces jointes de soutien pour chaque tableau particulier.

Pour activer la prise en charge des pièces jointes aux enregistrements de données, ajoutez un champ NoteID au CAD et une colonne NoteID avec le type de données identifiant unique à la table de la base de données. Acumatica stocke les pièces jointes dans des tables séparées, c'est pourquoi l'entité NoteID est utilisée pour stocker l'identifiant.

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

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

En outre, vous devez enregistrer et/ou autoriser l'extension du fichier que vous souhaitez télécharger. Pour ce faire, utilisez le formulaire File Upload Preferences (SM202550). Certaines extensions courantes sont préparées à partir de la boîte. Dans ce formulaire, vous pouvez également définir la taille maximale d'un fichier téléchargé.

Acumatica utilise deux tables dans la base de données pour stocker une pièce jointe : une table pour stocker les fichiers au format BIN, la seconde pour les informations sur l'écran qui utilise ce fichier. Ainsi, lorsque vous souhaitez joindre un fichier à l'aide d'un code, vous devez créer des enregistrements dans ces deux tables.

En général, vous joignez un fichier de la manière suivante :

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

 

Ensuite, vous pouvez lire les informations sur le fichier comme :

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

Si vous souhaitez simplement vérifier si un fichier a été joint, vous devez vérifier la longueur du tableau des fichiers joints :
var hasAttachedFiles = PXNoteAttribute.GetFileNotes(Document.Cache, Document.Current).Length != 0 ;

Une fois qu'un fichier a été joint, il ne peut plus être modifié ou mis à jour. Vous pouvez télécharger un autre fichier en tant que nouvelle version. Vous pouvez également "échanger" un fichier, c'est-à-dire supprimer l'ancien fichier et télécharger un fichier dont le contenu est plus récent.

Vous pouvez également supprimer un fichier de la pièce jointe :

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

Résumé

L'article explique comment attacher, mettre à jour, retirer et supprimer des fichiers joints dans Acumatica, en utilisant l'écran Expéditions comme exemple. Pour permettre la prise en charge des pièces jointes aux enregistrements de données, le champ NoteID doit être ajouté à DAC et la colonne NoteID avec le type de données identifiant unique doit être ajoutée à la table de la base de données. Le formulaire Préférences de téléchargement de fichiers doit également être utilisé pour enregistrer et autoriser l'extension du fichier à télécharger, et pour définir la taille maximale du fichier téléchargé. Acumatica utilise deux tables dans la base de données pour stocker les pièces jointes : une pour stocker les fichiers au format BIN et une autre pour les informations sur l'écran qui utilise le fichier. Des exemples de code sont fournis pour joindre, lire et supprimer des fichiers, et il est expliqué qu'une fois qu'un fichier est joint, il ne peut pas être modifié ou mis à jour, mais qu'une nouvelle version peut être téléchargée, ou que le fichier peut être échangé en supprimant l'ancien fichier et en téléchargeant un nouveau fichier avec un contenu plus récent.

Auteur du blog

Yuriy a commencé à programmer en 2003 en utilisant C++ et FoxPro avant de passer à .Net en 2006. Depuis 2013, il développe activement des applications utilisant le cadre Acumatica xRP, développant des solutions pour de nombreux clients au fil des ans. Il a un blog personnel, bien nommé Yuriy Zaletskyy's Blog, où il documente les problèmes de programmation qu'il a rencontrés au cours des six dernières années - partageant ses observations et ses solutions librement avec d'autres développeurs Acumatica.

Recevez les mises à jour du blog dans votre boîte de réception.