Partage via


Extraire les données de l’interface utilisateur SAP GUI avec Power Automate

Lorsque vous créez ou mettez à jour des enregistrements dans SAP, il génère des informations d’état qui incluent les ID d’enregistrement nouvellement générés. SAP affiche ces informations de statut dans la partie inférieure de l’interface utilisateur SAP.

Voici un exemple de message d’état que SAP affiche après avoir créé une notification PM.

Capture d’écran de l’ID de notification SAP qui a été généré après la sauvegarde d’un nouvel enregistrement.

Ces informations d’état peuvent être utiles pour les étapes ultérieures du processus d’automatisation. Par conséquent, vous devez extraire et affecter ces données d’état aux variables pour le traitement des données en aval.

Il existe plusieurs façons d’y parvenir, en fonction de votre approche de développement. Les deux approches sont les techniques low-code ou pro-code.

Approche pro-code

L’approche pro-code utilise des commandes VBScript pour extraire des informations des éléments de l’interface utilisateur SAP.

Pour extraire les données d’état SAP, telles que les demandes d’achat nouvellement créées ou les numéros d’avis de maintenance de l’usine, vous devez accéder à l’élément d’interface utilisateur de la barre d’état.

Voici comment accéder à l’élément d’interface utilisateur de la barre d’état.

session.findById("wnd\[0\]/sbar/pane\[0\]").Text

Parcourons l’expérience de bout en bout. Nous allons enregistrer comment créer une notification PM SAP et modifier le code généré pour renvoyer l’ID nouvellement créée à Power Automate Desktop.

Si vous n’avez jamais entendu parler de la notification PM de SAP ou si vous n’y avez pas accès, ne vous inquiétez pas, vous pourrez toujours comprendre les étapes nécessaires pour extraire ces données pour votre propre scénario.

Voici la procédure à suivre :

  1. Vérifiez que toutes les configurations des scripts SAP GUI sont effectuées.

  2. Ouvrez Connexion SAP et sélectionnez le système SAP auquel vous souhaitez vous connecter.

    Capture d’écran de SAP Login 760.

  3. Sélectionnez Personnaliser la disposition locale (Alt+F12), puis sélectionnez Enregistrement et lecture de scripts....

    Capture d’écran du système SAP Easy Access.

  4. Sélectionnez Plus.

  5. Sous Enregistrer dans, indiquez le chemin d’accès et le nom du fichier dans lequel vous souhaitez stocker les interactions utilisateur capturées.

    Capture d’écran de la sauvegarde du fichier d’enregistrement dans la boîte de dialogue Enregistrement et lecture.

  6. Cliquez sur le bouton Enregistrer le script pour démarrer le processus de capture d’écran. Chaque interaction que vous effectuez désormais dans SAP est capturée sous forme de commandes VBScript reproductibles.

    Note

    Si vous avez déjà enregistré des étapes et sauvegardé dans ce fichier, vous devrez confirmer si vous souhaitez écraser ou non le fichier.

  7. Entrez le code de transaction IW21, puis cliquez sur Entrer.

  8. Indiquez le Type de notification, puis sélectionnez Entrer.

  9. Renseignez les champs Texte court, Groupe du planificateur, Ctr travail principal, et tout autre champ dont vous avez besoin.

    Capture d’écran d’un enregistrement de notification SAP terminé, prêt à être enregistré.

  10. Cliquez sur Enregistrer (Ctrl+S) sur la barre d’outils.

  11. De retour dans le formulaire initial Créer une notification PMinitial, vous remarquerez un nouveau message dans la barre d’état dans le coin inférieur gauche de l’interface utilisateur.

    Capture d’écran de l’ID de notification SAP généré après la sauvegarde d’un nouvel enregistrement.

  12. Cliquez sur Quitter (Maj+F3) dans la barre d’outils, puis sur arrêter l’enregistrement.

  13. Vous pouvez, si vous le souhaitez, vous déconnecter de SAP et fermez toutes les fenêtres SAP.

Examinons le code VBScript généré :

Capture d’écran du VBScript généré lors de la création de la notification SAP.

Screenshot of VBScript generated during SAP Notification creation If Not IsObject application Then Set SapGuiAuto GetObject quot SAPGUI quot Set application SapGuiAuto GetScriptingEngine End If If Not IsObject connection Then Set connection application Children 0 End If If Not IsObject session Then Set session connection Children 0 End If If IsObject WScript Then WScript ConnectObject session quot on quot WScript ConnectObject application quot on quot End If session findById quot wnd 0 quot maximize session findById quot wnd 0 tbar 0 okcd quot text quot IW21 quot session findById quot wnd 0 quot sendVKey 0 session findById quot wnd 0 usr ctxtRIWO00 QMART quot text quot M2 quot session findById quot wnd 0 usr ctxtRIWO00 QMART quot caretPosition 2 session findById quot wnd 0 quot sendVKey 0 session findById quot wnd 0 usr subSCREE shortened command quot text quot My Notification Short Text quot session findById quot wnd 0 usr tabsTAB_ shortened command quot text quot 010 quot session findById quot wnd 0 usr tabsTAB_ shortened command quot text quot 0001 quot session findById quot wnd 0 usr tabsTAB_ shortened command quot text quot MAIN quot session findById quot wnd 0 usr tabsTAB_ shortened command quot setFocus session findById quot wnd 0 usr tabsTAB_ shortened command quot caretPosition 4 session findById quot wnd 0 tbar 0 btn 11 quot press session findById quot wnd 0 tbar 0 btn 15 quot press.

Ajustons maintenant le code généré pour inclure une étape qui extrait, rogne, puis renvoie le nouvel ID de notification à l’action Exécuter VBScript.

Capture d’écran du VBScript ajusté qui renvoie la notification SAP à Power Automate pour le bureau via une variable.

Screenshot of adjusted VBScript that returns SAP Notification to Power Automate Desktop via a variable 39 This is the Save button session findById quot wnd 0 tbar 0 btn 11 quot press 39 This is the full Status Bar text that contain the data to be extracted statusBarMessage session findById quot wnd 0 sbar pane 0 quot text 39 Trimming and removing any text surrounding our new notification Id notificationID Trim Replace Replace statusBarMessage quot Notification quot quot quot quot saved quot quot quot 39 This is the Exit button session findById quot wnd 0 tbar 0 btn 15 quot press 39 This writes the newly created Id to the Run VBScript output variable in Power Automate Desktop WScript Echo notificationID.

Cette opération définit la variable VBScriptOutput de l’action Exécuter VBScript sur l’ID de notification nouvellement créé.

Capture d’écran montant une boîte de dialogue d’action Exécuter VBScript avec un script en surbrillance qui permet l’extraction du texte de la barre d’état SAP.

Pour voir le contenu de VBScriptOutput, vous pouvez utiliser une action Afficher le message, similaire au résultat dans les images suivantes.

Capture d’écran montrant un message d’affichage de débogage avec le contenu VBScriptOutput.

Capture d’écran montrant une action de message d’affichage et ses paramètres.

Approche low-code

L’approche low-code utilise des actions et des sélecteurs personnalisés pour extraire les ID d’enregistrement nouvellement générés ou d’autres messages d’état qui sont importants pour le traitement du flux en aval.

Les étapes suivantes ne vont pas entrer dans les détails sur la façon d’enregistrer ou d’utiliser la conception d’action manuelle pour créer un nouvel enregistrement de notification PM SAP. Veuillez consulter Low-code ou RPA sans code avec SAP GUI dans Power Automate pour le bureau si vous avez besoin d’un rappel sur la façon de le faire.

Suivez ces étapes pour une approche low-code :

  1. Utilisez l’enregistreur de bureau ou la conception d’actions manuelles pour capturer tous les contrôles dont vous avez besoin pour le processus de notification PM SAP.

  2. Créez un enregistrement de notification et capturez le texte d’état qui apparaît après avoir sélectionné Enregistrer dans la barre d’outils de l’écran Créer une notification PM.

    Capture d’écran qui montre un enregistrement de notification terminé avec le bouton Enregistrer en surbrillance.

    Une fois l’élément enregistré, vous serez redirigé vers l’écran précédent où vous devriez voir un nouveau numéro de notification dans le texte de la barre d’état.

  3. À présent, revenez dans Power Automate Desktop, recherchez une action nommée Obtenir les détails de l’élément d’interface utilisateur dans la fenêtre, et ajoutez-la à votre canevas de création.

  4. Sélectionnez le menu déroulant de l’élément d’interface utilisateur, puis cliquez sur le bouton Ajouter un nouvel élément d’IU.

    Capture d’écran montrant Obtenir les détails d’un élément de l’interface utilisateur dans la boîte de dialogue d’action de la fenêtre. La boîte de dialogue a son menu déroulant d’élément d’interface utilisateur développé, en attente d’entrée.

  5. Sélectionnez la fenêtre SAP Easy Access et survolez la barre d’état jusqu’à ce qu’une bordure rouge nommée Barre d’état de l’interface graphique apparaisse. Pendant que la bordure est active, maintenez la touche Ctrl enfoncée, puis cliquez pour sélectionner la barre d’état.

    Capture d’écran montrant un écran SAP avec un message d’état répertoriant l’ID de notification et la session de suivi de Power Automate Desktop avec un contrôle sélectionné.

  6. Sélectionnez Enregistrer.

    Capture d’écran montant la boîte de dialogue de l’action Obtenir les détails de l’élément d’interface utilisateur dans la fenêtre avec un élément d’interface utilisateur sélectionné.

  7. Recherchez l’action Remplacer le texte dans le volet Actions et faites-la glisser sur le canevas de conception.

  8. Dans Texte à rechercher, entrez Notification. Sous Remplacer par, saisissez une chaîne vide en saisissant les caractères suivants : %’’%

    Capture d’écran montrant la boîte de dialogue de l’action Remplacer le texte avec les paramètres spécifiés.

  9. Ajoutez une autre action Remplacer le texte et remplacez le nom Variables produites par %NotificationId%. Dans Texte à rechercher, entrez enregistrer, et sous Remplacer par, entrez une chaîne vide (%’’%).

    Capture d’écran montrant une autre boîte de dialogue de l’action Remplacer le texte avec les paramètres spécifiés.

  10. Recherchez l’action Découper le texte dans le volet Actions, faites-la glisser sur le canevas de conception, sélectionnez %NotificationId% comme valeur de Texte à découper et remplacez le nom Variables produites par %TrimmedNotificationID%.

    Capture d’écran montrant la boîte de dialogue de l’action Découper le texte avec les paramètres spécifiés.

  11. Recherchez l’action Afficher le message dans le volet Actions et faites-la glisser sur le canevas de conception. Définissez les champs Titre de la zone de message et Message à afficher selon vos besoins.

    Capture d’écran montrant la boîte de dialogue de l’action Afficher le message avec les paramètres spécifiés.

  12. Exécutez l’automatisation qui crée une nouvelle notification PM SAP et extrait son ID de notification nouvellement généré qui peut être affiché comme indiqué dans l’image suivante.

    Capture d’écran montrant un script Power Automate Desktop en cours d’exécution qui génère un ID de notification nouvellement créé via un message d’affichage.