Se déplaçant dans le monde de la personnalisation d’Acumatica, il est question habituelle de savoir comment lire ou écrire des pièces jointes dans Acumatica. Donc, je veux partager cet exemple comment vous pouvez lire, supprimer et enregistrer des fichiers en tant que pièce jointe de l’écran d’Acumatica (j’utiliserai l’écran Expéditions par exemple).
Acumatica permet à l’utilisateur de joindre des objets supplémentaires à un enregistrement de données de base, par exemple, une note textuelle ou un fichier.
Certaines tables ont déjà cette possibilité. Alors que vous devrez peut-être activer les pièces jointes de support pour chaque table particulière individuellement.
Pour activer la prise en charge des pièces jointes d’enregistrement de données, ajoutez un champ NoteID à la colonne DAC et NoteID avec le type de données d’identificateur unique à la table de base de données. Acumatica stocke les pièces jointes dans des tables distinctes, par conséquent, l’entité NoteID est utilisée pour stocker l’identificateur.
#region NoteID
public abstract class noteID : PX.Data.IBqlField { }
[PXNote]
public virtual Guid? NoteID { get; set; }
#endregion
De plus, vous devez vous inscrire et/ou autoriser l’extension du fichier que vous souhaitez télécharger. Pour ce faire, utilisez le formulaire Préférences de téléchargement de fichier (SM202550). Certaines extensions régulières sont préparées à partir de la boîte. Sur ce formulaire, vous devrez peut-être également définir la taille maximale d’un fichier téléchargé.
Acumatica utilise deux tables dans DB pour stocker une pièce jointe : une table pour stocker des fichiers au format BIN, une autre pour des informations sur l’écran qui utilisent ce fichier. Ainsi, lorsque vous souhaitez joindre un fichier utilisant du code, vous devez créer des enregistrements dans ces deux tables.
En règle générale, vous joignez le 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 avez juste besoin de vérifier s’il y avait un fichier joint, vous devez vérifier la longueur du tableau de fichiers joints:
var hasAttachedFiles = PXNoteAttribute.GetFileNotes(Document.Cache, Document.Current). Longueur != 0;
Une fois qu’un fichier a été joint, il ne peut pas être modifié ou mis à jour. Vous pouvez télécharger un autre fichier en tant que nouvelle version. Ou vous pouvez « échanger » un fichier, c’est-à-dire supprimer un ancien fichier et télécharger un fichier avec un contenu 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 joindre, mettre à jour, supprimer et supprimer des fichiers de pièces jointes dans Acumatica, en utilisant l’écran Expéditions comme exemple. Pour activer la prise en charge des pièces jointes d’enregistrement de données, le champ NoteID doit être ajouté à la DAC et la colonne NoteID avec le type de données d’identifiant unique doit être ajoutée à la table de base de données. Le formulaire Préférences de téléchargement de fichier doit également être utilisé pour enregistrer et permettre 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 : l’une pour stocker des fichiers au format BIN et l’autre pour obtenir des 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 une nouvelle version peut être téléchargée, ou le fichier peut être échangé en supprimant l’ancien fichier et en téléchargeant un nouveau fichier avec un contenu plus récent.