Accueil Blog Ajouter des actions personnalisées en utilisant les dossiers spéciaux dans Acumatica

Ajouter des actions personnalisées en utilisant les dossiers spéciaux dans Acumatica

Keith Richardson | 12 juin 2021

Il est important pour les utilisateurs d'Acumatica d'avoir une interface utilisateur cohérente. Les utilisateurs finaux se rendent généralement dans les menus standard d'un écran pour rechercher des actions supplémentaires - Actions, Demandes et Rapports. Aujourd'hui, je vais passer en revue l'ajout de dossiers spéciaux ainsi que l'ajout d'actions personnalisées.

Ajouter des actions personnalisées en utilisant les dossiers spéciaux dans Acumatica

Vous pouvez ajouter une nouvelle action à l'aide de l'éditeur d'écran s'il s'agit de l'un des trois types suivants : Exécuter un rapport, Navigation : Rechercher des enregistrements ou Navigation : Créer un enregistrement.

Il se peut que vous souhaitiez ajouter une action personnalisée pour votre processus de gestion ou copier une action d'un autre écran et l'ajouter à un autre écran. Cela peut être fait dans le code, mais apparaît généralement sous la forme d'un bouton dans la barre d'outils, et non dans le menu. Vous pouvez l'ajouter au menu Actions via l'extension graphique ou via l'éditeur d'écran.

Dans Acumatica 2019 R1, nous avons ajouté l'avantage de déplacer les actions dans les dossiers spéciaux par le biais d'un projet de personnalisation. Ceci est bénéfique car nous pouvons ne pas avoir accès au code et vouloir déplacer une action dans l'un des 3 menus principaux, comme dans une solution ISV.

Par exemple, nous pouvons avoir une action personnalisée sur l'écran du client et vouloir la déplacer dans le dossier Actions:

Action personnalisée sur l'écran du client.

 

Tout d'abord, ouvrez l'écran dans un projet de personnalisation ; ensuite, développez DataSource : CustomerMaint; puis développez Form-Specific :

Projet de personnalisation - étendre DataSource - Customer.

 

Nous verrons l'action personnalisée que nous voulons déplacer. Développez les actions, puis faites glisser l'action à l'endroit souhaité dans le menu :

 

Action personnalisée

 

Il met en évidence l'endroit où l'action sera placée. Dans cet exemple, elle a été placée juste au-dessus de Change ID :

Drag-Actions

Une fois que nous aurons publié notre projet de personnalisation, nous verrons que l'action personnalisée a été déplacée à l'endroit où nous l'avons placée dans le menu Actions:

Projet de personnalisation - Action personnalisée.

 

Si nous voulons ajouter une action par programme au dossier Actions, nous pouvons le faire en remplaçant la fonction Initialize et en l'ajoutant au menu Actions à l'aide de la fonction AddMenuAction. Par exemple, l'ajout d'une action appelée CustomAction se ferait comme suit :


public override void Initialize()
{
base.Initialize();
this.Base.action.AddMenuAction(CustomAction);
}

Nous pouvons également spécifier deux paramètres supplémentaires pour la fonction AddMenuAction si nous voulons la placer à un endroit spécifique du menu. Le premier paramètre est une chaîne de caractères contenant le nom de l'action et le second est insertAfter. Si insertAfter est faux, l'action sera insérée avant l'action spécifiée. S'il est vrai, l'action sera placée après dans la liste. Par exemple, si nous voulons ajouter une autre action appelée AnotherCustomAction, elle sera placée après CustomAction dans le menu. Dans ce cas, le code serait le suivant :


(AnotherCustomAction, "CustomAction", true) ;

Si nous créons notre propre écran et que nous devons ajouter le dossier Actions/Enquêtes/Rapports, nous pouvons le faire en créant nos propres actions avec les noms standard et en leur donnant une désignation de dossier spéciale. Pour ajouter un menu d'actions, nous utiliserons le code suivant dans notre graphique :


public PXAction<CYCylinder> action;
[PXUIField(DisplayName = "Actions", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
[PXButton(SpecialType = PXSpecialButtonType.ActionsFolder)]
protected IEnumerable Action(PXAdapter adapter)
{
return adapter.Get();
}

SpecialType correspond au dossier Actions et ressemble au menu Actionde l'écran standard dans l'éditeur de projet de personnalisation. Vous pouvez également spécifier PXSpecialButtonType.ReportsFolder pour les rapports et PXSpecialButtonType.InquiriesFolder pour les demandes.

Nous pouvons avoir besoin d'ajouter la fonction Initialize à notre graphe personnalisé en héritant de l'interface IGraphWithInitialization. Nous pouvons alors surcharger la fonction Initialize. Nous pourrions alors ajouter des éléments de menu sans avoir besoin de this.Base, puisque notre action se situe dans le graphe actuel :


public virtual void Initialize()
{
base.Initialize();
action.AddMenuAction(CustomAction);
}

 

C'est une bonne idée de marquer notre méthode Initialize comme virtuelle au cas où le graphe aurait besoin d'être étendu et que d'autres choses devraient être faites pendant la fonction Initialize.

Résumé

Il est important pour les développeurs d'avoir une interface utilisateur cohérente pour que leurs utilisateurs puissent naviguer dans les applications en général et dans Acumatica en particulier. Les utilisateurs finaux reviennent souvent aux menus standard d'un écran pour rechercher des actions supplémentaires telles que les Actions, les Requêtes et les Rapports. Nous pouvons intégrer ces éléments dans nos applications, afin d'assurer la cohérence à laquelle les utilisateurs finaux sont habitués.

Auteur du blog

Architecte des systèmes d'application chez Haun Welding Supply

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