Depuis quelques temps il est possible d’ajouter des boutons personnalisées dans les différents rubans liés à une table :

  • Navigation principale
  • Formulaire
  • Depuis les tables associées d’un formulaire
  • Depuis une sous-grille

Menu d’édition des commandes :
Pour ajouter des commandes dans un ruban, il faut ouvrir une solution, choisir votre application cible (Model Driven App), cliquer sur “Éditer”.
Ensuite, dans la liste des tables, faire un clic droit et choisir “Éditer Barre de commande”.
Le menu de gestion des commandes pour cette table s’ouvre.

Les commandes qui peuvent être ajoutées sont :

  • Un bouton
  • Un regroupement de bouton sous forme de liste
  • Un bouton type “Split”
  • Re-grouper les boutons ou les commandes ci-dessus dans un même bloc

Les principales actions que je trouve les plus interessantes pour ces boutons sont les suivantes :

  • Choisir une icone pour chacune des commandes ci-dessus
    • Se servir du catalogue standard
    • Ajouter une Web resource pour stocker sa propre icone
  • Appliquer une action à chaque commande avec du Power FX
  • Masquer ou Afficher le bouton selon des conditions

Attention : Si vous configurez votre environnement en Français, dans le code Power FX, il faut utiliser des “,” comme séparateur et des ” ” simples pour les valeurs de champs.
Pour l’anglais, il faut utiliser “;” comme séparateur et des ” ” pour les valeurs de champs.

Voici une liste d’exemple de boutons avec certaines actions propres à chacun :

EXEMPLE 1 : Commande liste de boutons avec une règle de visibilité
L’objectif de cette liste de boutons est de s’afficher que si le statut est égale à une certaine valeur.
Pour se faire, j’active l’option d’affichage de la commande en fonction du formule Power FX :

Choisir l’option “Show on condition from formula” pour accéder à la barre de configuration de la formule Power FX.

Pour la formule de visibilité : Ajouter une condition type “IF” :
If(Self.Selected.Item.’Raison du statut’ = ‘Raison du statut (Nom de votre table)’.’Statut souhaité‘, true, false)
Avec cette formule, le bouton s’affichera ou se masquera en fonction du statut de l’enregistrement.

EXEMPLE 2 : Bouton déclanchant un flux Power Automate (Via un champ Oui/non pour déclencheur) et un message de pré-validation d’execution.

L’objectif de ce bouton est de mettre à jour une valeur de champ pour déclancher un flux Power Automate, la mise à jour de ce champ doit déclencher le trigger du flux.
Un message sous forme de popup apparaît aussi à l’écran pour valider ou non le déclenchement du flux.
Pour se faire, dans la focntionnalité OnSelect lié à ce bouton, il faut ajouter la formule suivante :

If(Confirm( “Votre message de prévalidation avant md’Activer ou non l’action du bouton“,{ ConfirmButton: “Confirmer“, CancelButton: “Annuler” }),

Patch(‘Family Services’, Self.Selected.Item, {Status: ‘Status (Nom de votre table)’.Completed, ‘Raison du statut’: ‘Raison du statut (Nom de votre table)’.’Statut souhaité‘}))

La fonction If vous permet d’ajouter l’affichage du popup et la fonction Patch permet de mettre ç jour une valeur de champs et donc provoquer une sauvegarde de votre enregistrement, permettant dans ce cas, le déclenchement d’un flux Power Automate.

Résulat de la configuration pour l’exemple 1 :

Résulat de la configuration pour l’exemple 2 :

Exemple de formulare complémentaire :
Masquer un bouton si un champ est vide :
If(IsBlank(Self.Selected.Item.Votrechamp), true, false)