Subtilités des applications Power Automate et Logic. Guide de référence # 1 du développeur citoyen

Bonne journée à tous! Dans l'un de mes articles précédents, j'ai parlé des fonctionnalités des services cloud Power Automate et Logic Apps. Nous avons examiné les principales différences entre eux, étudié dans quels cas l'un ou l'autre service devait être utilisé, et nous nous sommes également familiarisés avec certains scénarios d'utilisation. Aujourd'hui, je voudrais commencer une nouvelle série d'articles consacrés à divers hacks de la vie et solutions de contournement qui vous permettront de mettre en œuvre un certain nombre de scénarios d'entreprise en utilisant les outils disponibles.



Ne perdons pas de temps et examinons l'un des scénarios d'aujourd'hui, à savoir:

Lancer le flux Logic Apps par bouton depuis Power Apps


Dans certains cas, lors de la conception et de la configuration de divers modules système, il est plus rentable d'utiliser Logic Apps que Power Automate. Il peut y avoir plusieurs raisons à cela, mais l'une des plus populaires est la présence de connecteurs premium dans Logic Apps sans acheter de plans supplémentaires, tels que Power Automate. Par exemple, dans un flux, vous devrez peut-être effectuer un appel de service Web HTTP et vous connecter à SQL Server, mais dans Power Automate, ces connecteurs ne sont pas disponibles sans acheter un plan spécial pour les utilisateurs ou pour les flux. Dans ce cas, Logic Apps nous aidera, où un mécanisme de tarification légèrement différent est utilisé et tous les connecteurs, y compris premium, sont disponibles initialement. Vous pouvez en savoir plus sur les fonctionnalités de Logic Apps dans cet article .

Cependant, il existe une fonctionnalité: le flux Logic Apps ne peut pas être lancé par un bouton à partir d'un formulaire ou d'une application Power Apps, contrairement au flux Power Automate. Comment résoudre ce problème? En fait, la solution est assez simple. Considérez ce cas comme un exemple du processus de demande d'assistance technique.

Donc, dans notre cas, nous avons une liste SharePoint des «applications de support technique»:



De plus, la liste a une personnalisation du formulaire à l'aide de Power Apps:



Comme vous pouvez le voir, dans l'en-tête du formulaire, il y a une transition vers un écran supplémentaire avec des boutons d'action pour l'application sélectionnée:



Cliquez sur "Déléguer la demande" et remplissez les champs supplémentaires:



En utilisant le bouton «Confirmer», il est nécessaire de démarrer le flux Logic Apps, mais nous n'avons pas la possibilité d'effectuer cette opération directement. Par conséquent, nous allons essayer de faire un peu différemment.

Créez une liste d'actions supplémentaire sur le site SharePoint et ajoutez plusieurs champs:

  1. ActionType - type d'action à appeler
  2. Commentaires - Commentaires
  3. ParentItemID - identifiant de l'élément parent (application)
  4. DelegateTo - champ supplémentaire pour stocker le délégué
  5. CompleteProcessFlag - indicateur de traitement d'action



Maintenant, à partir de PowerApps, nous créons un élément dans la liste ActionsList en cliquant sur le bouton "Confirmer":



En utilisant la fonction Patch, créez un nouvel élément dans la liste ActionsList avec le type "Délégué" et transférez les valeurs de contrôle restantes du formulaire. Vérifiez que l'élément est créé:



nous pouvons maintenant accéder à Logic Apps. Nous allons à Azure, créons un nouveau flux Logic Apps et spécifions le déclencheur «Lors de la création d'un élément dans la liste SharePoint»:



Nous faisons le flux avec le commutateur:



La logique de ce flux est la suivante:

Lors de la création d'un élément dans la liste ActionsList, le flux augmente, vérifie la valeur du champ "ActionType" du nouvel élément et, selon le type d'action, se rend dans l'une des branches de commutation où la logique requise est traitée. Ainsi, nous pouvons créer autant de branches que vous le souhaitez pour le commutateur dans un thread et traiter tous les événements dans le même thread. Il ne reste plus qu'à créer des éléments dans la liste ActionsList avec les types d'événements souhaités et à ajouter la prise en charge de ces types au flux, sous la forme de branches de commutation supplémentaires.
Faisons une autre création d'événement à partir de PowerApps, par exemple, pour annuler une application:



Dans ce cas, un nouvel événement apparaîtra dans la liste ActionsList avec le type «Rejeter» et des commentaires pour l'annulation. Assurez-vous de transmettre la valeur de l'identifiant de l'élément parent, sinon il sera très problématique de trouver l'ordre requis dans le flux plus tard. Ensuite, ajoutez la prise en charge du nouveau type d'événement dans le flux Logic Apps. Nous faisons une branche de plus dans le switch:



Et il reste à ajouter à la toute fin du flux une mise à jour du drapeau de traitement, afin de comprendre quels événements sont traités par notre flux et lesquels ne le sont pas:



Ce drapeau aidera en cas de situations imprévues pendant lesquelles le traitement de l'événement par le thread échoue. Il sera possible de créer un thread qui, par exemple, augmentera deux fois par jour en fonction d'un planning et traitera les événements de la liste ActionsList, dont l'indicateur «CompleteProcessFlag» est Non.

Le mécanisme décrit dans cet article a été implémenté avec succès et fonctionne de manière stable pour plusieurs clients. En conclusion, je voudrais dire qu'il y a beaucoup de fonctionnalités intéressantes dans la plate-forme Power qui peuvent ne pas être visibles à première vue, mais elles peuvent être très utiles dans la mise en œuvre de divers cas. Dans les articles suivants, je vais essayer de vous montrer encore plus de possibilités. Merci beaucoup pour votre attention!

All Articles