Partilhar via


Extrair dados do SAP GUI com Power Automate

Quando cria ou atualiza registos em SAP, gera informações de estado que incluem os ID de registo recentemente gerados. A SAP apresenta esta informação de estado na parte inferior do UI SAP.

Aqui está um exemplo da mensagem de estado que o SAP exibe depois de criar uma notificação SAP PM.

Captura de ecrã do ID de notificação SAP que foi gerado depois de guardar um novo registo.

Esta informação de estado pode ser útil para os passos do processo de automatização mais tarde. Portanto, deve extrair e atribuir estes dados de estado a variáveis para o processamento de dados a jusante.

Temos várias formas de o conseguir, dependendo da sua abordagem de desenvolvimento. As duas abordagens são técnicas de baixo código ou código-pro.

Abordagem código-pro

A abordagem código-pro utiliza comandos VBScript para extrair informações de elementos SAP UI.

Para extrair dados de estado SAP, como uma requisição de compra recentemente criada ou números de notificação de manutenção de plantas, você precisa de acesso ao elemento UI da barra de estado.

É assim que se acede ao elemento UI da barra de estado.

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

Vamos percorrer a experiência de ponta a ponta. Vamos gravar como criar uma Notificação SAP PM e modificar o código gerado para devolver o ID recém-criado ao Power Automate Desktop.

Caso nunca tenha ouvido falar da Notificação SAP PM ou não tenha acesso a ela, não se preocupe que ainda poderá compreender os passos necessários para extrair esses dados para o seu próprio cenário.

Eis os passos:

  1. Confirme se todas as configurações de scripts SAP GUI estão concluídas.

  2. Abra SAP Logon e selecione o sistema SAP no qual pretende iniciar sessão.

    Captura de ecrã de SAP Login 760.

  3. Selecione Personalizar o Layout Local (Alt+F12), e, em seguida, selecione Script Recording and Playback....

    Captura de ecrã do sistema SAP Easy Access.

  4. Selecione Mais.

  5. Em Guardar para, indique o caminho e o nome do ficheiro onde pretende armazenar as interações do utilizador capturadas.

    Screenshot de guardar o ficheiro de gravação no diálogo Gravar e Reproduzir.

  6. Selecione o botão Gravar Script para iniciar o processo de captura do ecrã. Todas as interações que fizer agora em SAP serão capturadas como comandos VBScript repetíveis.

    Nota

    Se gravou passos e guardou para este ficheiro antes, terá de confirmar se pretende substituir o ficheiro.

  7. Introduza o código de transação IW21 e, em seguida, selecione Enter.

  8. Forneça o tipo de Notificação e, em seguida, selecione Enter.

  9. Introduza um Texto Curto, Grupo de Planificadores, Main WorkCtr, e qualquer outro campo que necessite.

    Captura de ecrã de um registo completo de notificação SAP que está pronto para ser guardado.

  10. Selecione Guardar (Ctrl+S) na barra de ferramentas.

  11. De volta ao formulário Criar notificação PMinicial, irá notar uma nova mensagem de estado na barra de estado no canto inferior esquerdo da UI.

    Captura de ecrã do ID de notificação SAP gerado depois de guardar um novo registo.

  12. Selecione Sair (Shift+F3) na barra de ferramentas e, em seguida, pare a gravação.

  13. Opcionalmente, saia da sessão no SAP e feche todas as janelas do SAP.

Vamos examinar o código VBScript gerado:

Captura de ecrã de VBScript gerado durante a criação da Notificação SAP.

Captura de ecrã de VBScript gerado durante a criação da Notificação SAP 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.

Agora, vamos ajustar o código gerado para incluir um passo que extrai, corta, e depois devolve o novo ID de notificação à ação Executar VBScript.

Captura de ecrã do VBScript ajustado que devolve a Notificação SAP ao Power Automate para Ambiente de Trabalho através de uma variável.

Captura de ecrã de VBScript ajustado que devolve a notificação SAP ao Power Automate para Ambiente de Trabalho através de uma variável 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.

Isto define a variável VBScriptOutput da ação Executar VBScript para o ID de notificação recém-criado.

Captura de ecrã que mostra um diálogo de ação VBScript executado com script realçado que permite a extração de texto da barra de estado SAP.

Se quiser ver o conteúdo do VBScriptOutput, pode utilizar uma ação de exibição de mensagem, semelhante à saída nas seguintes imagens.

Captura de ecrã que mostra uma mensagem de depuração com conteúdo VBScriptOutput.

Captura de ecrã que mostra uma ação de exibição de mensagem e os seus parâmetros.

Abordagem de baixo código

A abordagem de baixo código utiliza ações e selecionadores personalizados para extrair ID de registo recentemente gerados ou outras mensagens de estado que são importantes para o processamento de fluxo a jusante.

Os seguintes passos não entrarão em detalhes sobre como gravar ou usar o design de ação manual para criar um novo registo de notificação SAP PM. Reveja RPA de low-code ou no-code com GUI SAP no Power Automate para Ambiente de Trabalho se precisar de um lembrete de como o fazer.

Siga estes passos para uma abordagem de baixo código:

  1. Utilize o gravador de ambiente de trabalho ou o design de ação manual para capturar todos os controlos necessários para o processo de notificação SAP PM.

  2. Crie um registo de notificação e capture o texto de estado que aparece depois de selecionar Guardar na barra de ferramentas do ecrã de Criar notificação PM.

    Captura de ecrã que mostra um registo de notificação completo com um botão de guardar realçado.

    Depois de guardado o artigo, será redirecionado para o ecrã anterior, onde deverá ver um novo número de notificação no texto da barra de estado.

  3. Agora, volte ao Power Automate Desktop, procure uma ação chamada Obter detalhes de um elemento de UI na janela, e adicione-o à sua tela de autoria.

  4. Selecione o menu suspenso do elemento UI, e depois selecione o botão Adicionar um novo elemento UI.

    Captura de ecrã que mostra Obter detalhes de um elemento da IU no diálogo de ação da janela. O diálogo tem o menu suspenso do elemento da IU expandido, a aguardar entrada.

  5. Selecione a janela SAP Easy Access paire sobre a barra de estado até aparecer uma borda vermelha marcada Gui Statusbar. Enquanto a borda estiver ativa, mantenha a tecla Ctrl sob pressão e clique para selecionar a barra de estado.

    Captura de ecrã que mostra um ecrã SAP com uma mensagem de estado que lista o Id de notificação e a sessão de monitorização de Power Automate Desktop com um controlo selecionado.

  6. Selecione Guardar.

    Captura de ecrã que mostra Obter detalhes de um elemento UI no diálogo de ação da janela com um elemento UI selecionado.

  7. Procure a ação Substituir texto no painel de Ações e arraste-a para a tela de design.

  8. Em Texto a encontrar, introduza Notificação. Em Substituir por, introduza uma cadeia em branco, introduzindo os seguintes carateres: %''%

    Captura de ecrã que mostra um diálogo de ação de Substituir texto com os seus parâmetros especificados.

  9. Adicione outra ação Substituir texto e renomeie as Variáveis produzidas para %NotificationId%. Em Texto para encontrar, introduza save, e em Substituir por, introduza uma cadeia em branco (%''%).

    Captura de ecrã que mostra outro diálogo de ação de Substituir texto com os seus parâmetros especificados.

  10. Procure a ação Cortar texto no painel de Ações, arraste-a para a tela de design, selecione %NotificationId% como valor Texto para cortar e renomeie Variáveis produzidas para %TrimmedNotificationID%.

    Captura de ecrã que mostra um diálogo de ação de Cortar com os seus parâmetros especificados.

  11. Procure a ação Mostrar mensagem no painel de Ações e arraste-a para a tela de design. Defina título da caixa de mensagem e Mostrar mensagem conforme as suas necessidades.

    Captura de ecrã que mostra um diálogo de ação da mensagem do Display com os seus parâmetros especificados.

  12. Executa a automatização que cria uma nova Notificação SAP PM e extrai o seu ID de notificação recentemente gerado que pode ser exibido como se mostra na imagem seguinte.

    Captura de ecrã que mostra um script Power Automate Desktop em execução que produz um ID de notificação recém-criado através de exibição de mensagem.