Introduction
Acumatica a la capacité de personnaliser presque n'importe quel écran pour fournir des informations supplémentaires ou une logique d'entreprise requise par un client ERP. Les personnalisations sont effectuées à l'aide de la plateforme Acumatica xRP et s'intègrent de manière transparente dans la plateforme ERP (Enterprise Resource Planning). L'extension est robuste et agile, garantissant qu'elle permettra à l'application d'être toujours évolutive et que, lorsque le package est supprimé, l'application reviendra à son état d'origine.
Dans ce blog, nous allons créer un package de personnalisation qui permettra aux utilisateurs professionnels de spécifier un type de commande interne, qui peut être utilisé pour les flux de travail, les cartes d'affectation et les rapports. En outre, le package inclut un sélecteur de renommage de colonne.
Création d'un paquet de personnalisation
Pour créer des personnalisations, allez dans Personnalisations et ouvrez Projets de personnalisation (SM204505). Sur l'écran, créez une nouvelle personnalisation et ouvrez le lien.
NOTES :
- L'utilisateur doit avoir le rôle de personnalisateur
- La convention de dénomination des projets doit être adaptée à la fonction.
- Fournir une séquence de numéros de version pour gérer les réitérations de personnalisation (sur la description)
- Construction minimale d'Acumatica
- Répétition de la version
- Le niveau du projet est important pour deux raisons :
- Plus la personnalisation est importante, plus le nombre est élevé.
- Il garantit que les personnalisations ne fusionnent pas et ne provoquent pas de conflits.
Une fois le paquet de personnalisation créé, commencez par les écrans et ajoutez tous les écrans nécessaires à la personnalisation. Ci-dessous, nous ajoutons un écran de commande (PO301000) :
Dans l'écran, créez un champ défini par l'utilisateur pour le type de commande interne.
L'ajout de champs personnalisés, basés sur le type de stockage (DBTableColumn), pourrait créer une colonne dans la base de données. En suivant ce processus, deux éléments supplémentaires sont créés dans le projet :
- Accès aux données - Champ DAC et ses attributs
- Database Scripts - le script qu'Acumatica génère pour créer la colonne (type de stockage DBTableColumn).
NOTES :
- Les champs définis par l'utilisateur doivent être spécifiés avec le préfixe "Usr". Cela permet de s'assurer que la colonne n'est pas supprimée lors des mises à jour.
- Lors de l'ajout de nouveaux champs, le projet doit être publié avant que le champ puisse être utilisé.
- Le champ est ajouté à l'écran avec "CREATE CONTROLS".
- Lors de l'ajout de nouveaux champs, veillez à ce que la vue correcte soit sélectionnée lors de la création du champ, c'est-à-dire que si le champ se trouve dans l'en-tête, veillez à ce que la section "résumé" soit sélectionnée lors de la création de nouveaux champs.
- Examiner et ajuster les attributs du champ avant de l'ajouter au formulaire
- Si cet élément n'est pas défini, le type d'élément d'origine sera utilisé. Ce problème se pose lorsqu'un champ est créé pour une liste déroulante ou un sélecteur, mais qu'il n'est pas défini. Sans cette définition, le champ serait ajouté en tant que champ de texte simple.
Lors de la création de contrôles, le champ est ajouté à la vue. Une fois ajouté, le champ (basé sur le type de champ sélecteur) possède une liste d'attributs. Deux propriétés doivent être examinées
- CommitChanges - cette propriété déclenche l'événement de mise à jour du champ
- ID - L'identifiant du contrôle sur la page. Acumatica fournit par défaut un champ Cst... ID. Pro-tip Modifiez l'ID pour qu'il soit unique au champ, car d'autres personnalisations sur le même site peuvent avoir la même valeur d'ID personnalisée assignée et causer un problème de conflit.
En ce qui concerne l'accès aux données, convertir le point en une extension à. Le point serait transféré à la section du code en vue d'un nouvel amendement.
D'autres activités peuvent être réalisées à partir de la section du code :
De ce qui précède, il ressort ce qui suit :
- La section Code énumère toutes les extensions du code
- Override Method fournit une liste de méthodes/actions qui peuvent être surchargées, ce qui permet d'appeler une méthode originale et de la modifier.
- Nouvelle action fournit le code permettant de créer de nouveaux "boutons" d'action à l'écran.
- Déplacer le code dans une bibliothèque d'extension/code-behind (fichier dll)
Une fois que l'extension du CED a été modifiée pour les attributs du champ du CED, le champ peut être ajouté à l'écran. (Pour plus d'informations sur le codage de l'extension, voir la section suivante).
Le champ DAC est défini comme un sélecteur, qui énumère les identifiants et les descriptions des attributs.
Code
GIST : https://gist.github.com/Gerhard-ZA/102d5a2c5a182e8795bbb19733dee6ee
Étendre le paquetage au code-behind
Pour déplacer l'extension, cliquez sur la bibliothèque d'extensions et créez/ouvrez la bibliothèque d'extensions.
En ouvrant Visual Studio, le fichier d'extension sera disponible dans l'explorateur de solutions.
- Le fichier PO Order Extension est disponible dans l'explorateur de solutions. Ce fichier est utilisé pour attacher la bibliothèque d'extensions à Internet Information Service (IIS).
- REMARQUE - Si le fichier (extension) se trouve à la fois dans le Customization Package et dans Visual Studio, le fichier du Customization Package sera utilisé pour le traitement.
- Le nom de la classe de l'extension, ce nom doit être unique car il pourrait causer un conflit si l'application a le même nom d'extension dans un autre paquet de personnalisation.
- La méthode IsActive permet à la logique métier d'identifier si l'extension doit être utilisée ou non. Cette méthode peut être utilisée avec la logique métier ou la configuration pour n'être activée que sous certaines conditions.
Lors de la création d'une bibliothèque d'extension, le fichier dll doit être inclus dans le projet de personnalisation afin que le paquet de personnalisation soit fonctionnel.
Le résultat final
Lien vers le paquet de personnalisation → URL
Résumé
En utilisant les méthodes fournies dans cet article, vous éviterez les problèmes avec d'autres personnalisations publiées et vous garderez vos paquets propres et faciles à maintenir maintenant et dans le futur. D'autres meilleures pratiques de personnalisation seront proposées par moi-même et d'autres développeurs MVP.
Bonne chance et bon codage !