Introduction
Au cours de nos années de développement de solutions dans le cadre d'Acumatica, nous avons connu de nombreux cas où des fichiers d'un type ou d'un autre devaient être générés et manipulés dans le système.
Un exemple d'utilisation que nous examinerons dans cet article est l'archivage de fichiers attachés à un document dans une instance Acumatica - ou l'attachement de fichiers à partir d'un fichier .Zip à un document dans une instance Acumatica.
.Zip - PX.Common.Std
Pour utiliser les fichiers .ZIP dans Acumatica, vous devrez ajouter une référence à la dll PX.Common.Std dans votre projet. Cette dll se trouve dans le dossier bin de l'installation de l'instance.
ZipArchive
CreateFrom
Cette méthode statique retourne une instance de ZipArchive qui représente un fichier .ZIP. Cette méthode prend en compte un flux os et bool onlyRead comme paramètres.
L'exemple de code ci-dessous illustre la création d'un nouveau fichier zip à l'aide d'un nouveau fichier MemoryStream et en définissant l'option onlyRead à la valeur false pour permettre l'ajout de fichiers à notre fichier .Zip créé.
GIST: [Création d'un fichier .Zip (github.com)]
CreateFrom est également utilisé pour ouvrir un fichier .ZIP préexistant. Pour ouvrir un fichier préexistant, vous devez d'abord récupérer son byte[] et créer un nouveau MemoryStream à partir des données, en définissant l'option bool onlyRead à true.
GIST: [Ouvrir le fichier .Zip existant (github.com)]
Ajouter un fichier
Cette méthode void publique ajoute un fichier à partir du nom donné et d'un tableau byte[] du fichier à inclure dans le fichier .Zip.
GIST: [Ajout d'un fichier à l'archive .Zip créée (github.com)]
Obtenir des fichiers
Cette méthode renvoie une liste de fichiers contenus dans l'archive .Zip ; les informations relatives à chaque fichier sont encapsulées dans la classe ItemInfo.
GIST: [Interroger les noms de fichiers dans Archive (github.com)]
Obtenir des éléments
Cette méthode est utilisée lorsque vous souhaitez uniquement extraire les fichiers d'un répertoire spécifique de l'archive. Elle utilise le paramètre chaîne répertoire.
OuvrirLire
Cette méthode renvoie un flux provenant d'un fichier de l'archive. Le fichier est spécifié en fournissant un nom de fichier, ce nom
GIST : [Récupération d'un fichier depuis ZipArchive (github.com)]
Exemples
Vous trouverez ci-dessous des exemples de création d'une nouvelle archive .Zip dans Acumatica, ainsi que de lecture et d'enregistrement du contenu d'un fichier .Zip joint à un document.
Création d'archives
L'exemple suivant récupère la liste des fichiers attachés à un document Acumatica et crée une archive .Zip qui est ensuite attachée.
GIST: [Ouvre un fichier zip attaché à un document Acumatica (github.com)]
Récupération d'archives
L'exemple suivant permet de récupérer le fichier Zip attaché à un document Acumatica et d'attacher tous les documents de cette archive au document source.
Conclusion
Avec l'utilisation des bibliothèques fournies dans l'installation d'Acumatica ERP, nous sommes en mesure de créer et de manipuler des fichiers .Zip.
Bon codage !