Compartilhar via


Extrair dados da interface do usuário da GUI do SAP com o Power Automate

Quando você cria ou atualiza registros no SAP, ele gera informações de status que incluem os IDs de registro recém-geradas. O SAP exibe essas informações de status na parte inferior da interface do usuário do SAP.

Veja a seguir um exemplo de mensagem de status que o SAP exibe após a criação de uma notificação de PM do SAP.

Captura de tela da ID de Notificação do SAP que foi gerada após salvar um novo registro.

Essas informações de status podem ser úteis para as etapas do processo de automação posteriores. Portanto, você deve extrair e atribuir esses dados de status a variáveis para processamento de dados downstream.

Temos várias maneiras de fazer isso, dependendo de sua abordagem de desenvolvimento. As duas abordagens são técnicas de pouco código ou código profissional.

Abordagem de código profissional

A abordagem de código profissional usa comandos VBScript para extrair informações de elementos da interface do usuário do SAP.

Para extrair dados de status do SAP, como requisições de compra recém-criadas ou números de notificação de manutenção da fábrica, você precisa acessar o elemento da interface do usuário da barra de status.

Veja como acessar o elemento da interface do usuário da barra de status.

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

Vamos explicar a experiência completa. Vamos gravar como criar uma Notificação de PM do SAP e modificar o código que é gerado para retornar a ID recém-criada para o Power Automate Desktop.

Caso você nunca tenha ouvido falar da Notificação de PM do SAP ou não tenha acesso a ela, não se preocupe, você ainda poderá entender as etapas necessárias para extrair esses dados para seu próprio cenário.

Veja a seguir as etapas para fazer isso:

  1. Verifique se todas as Configurações de script da GUI do SAP estão concluídas.

  2. Abra Logon do SAP e selecione o sistema SAP no qual deseja entrar.

    Captura de tela do SAP Login 760.

  3. Selecione Personalizar layout local (Alt+F12) e Gravação e reprodução de script....

    Captura de tela da janela do sistema SAP Easy Access.

  4. Selecione Mais.

  5. Em Salvar em, forneça o caminho do arquivo e o nome do arquivo onde deseja armazenar as interações do usuário capturadas.

    Captura de tela do salvamento do arquivo de gravação na caixa de diálogo

  6. Selecione o botão Gravar script para iniciar o processo de captura de tela. Cada interação que você faz agora no SAP é capturada como comandos VBScript repetíveis.

    Observação

    Se você gravou etapas e salvou nesse arquivo antes, será necessário confirmar se deseja substituir o arquivo.

  7. Insira o código da transação IW21 e selecione Inserir.

  8. Forneça o Tipo de notificação e selecione Inserir.

  9. Insira um Breve texto, Grupo de planejadores, WorkCtr Principal e qualquer outro campo necessário.

    Captura de tela de um registro de Notificação do SAP preenchido que está pronto para ser salvo.

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

  11. De volta ao formulário inicialCriar Notificação de PM, você notará uma nova mensagem de status na barra de status no canto inferior esquerdo da interface do usuário.

    Captura de tela da ID de Notificação do SAP gerada após salvar um novo registro.

  12. Selecione Saída (Shift+F3) na barra de ferramentas e pare a gravação.

  13. Opcionalmente, faça logoff do SAP e feche todas as janelas do SAP.

Vamos examinar o código VBScript gerado:

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

Captura de tela do VBScript gerado durante a criação da Notificação 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 uma etapa que extrai, corta e retorna a nova ID de notificação para a ação Executar VBScript.

Captura de tela do VBScript ajustado que retorna a Notificação do SAP para o Power Automate Desktop por meio de uma variável.

Captura de tela do VBScript ajustado que retorna a Notificação do SAP para o Power Automate Desktop por meio de uma variável 39. Esta é a sessão do botão Salvar findById quot wnd 0 tbar 0 btn 11 quot press 39 Este é o texto completo da barra de status que contém os dados a serem extraídos statusBarMessage session findById quot wnd 0 sbar pane 0 quot text 39 Cortar e remover texto ao redor da nova notificação Id notificationID Trim Replace Replace statusBarMessage quot Notification quot quot quot quot saved quot quot quot 39 Esta é a sessão do botão Sair findById quot wnd 0 tbar 0 btn 15 quot press 39 Isso grava a Id recém-criada para a variável de saída Executar VBScript no Power Automate Desktop WScript Echo notificationID.

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

Captura de tela que mostra uma caixa de diálogo da ação

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

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

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

Abordagem de pouco código

A abordagem de pouco código usa ações e seletores customizados para extrair IDs de registro recém-geradas ou outras mensagens de status que são importantes para o processamento de fluxo downstream.

As etapas a seguir não entrarão em detalhes sobre como registrar ou usar o design de ação manual para criar um novo registro da Notificação de PM do SAP. Analise a RPA de pouco código ou sem código com a GUI do SAP no Power Automate Desktop if you need a refresher on how to do that.

Siga estas etapas para uma abordagem de pouco código:

  1. Use o gravador da área de trabalho ou o design de ação manual para capturar todos os controles de que você precisa para o processo de Notificação de PM do SAP.

  2. Crie um registro de notificação e capture o texto de status que é exibido depois de selecionar Salvar na barra de ferramentas da tela Criar Notificação de PM.

    Captura de tela que mostra um registro de Notificação concluído com um botão

    Depois que o item for salvo, você será redirecionado para a tela anterior, onde verá um novo número de notificação no texto da barra de status.

  3. Agora, volte para o Power Automate Desktop, pesquise uma ação chamada Obter detalhes de um elemento da interface do usuário na janela e adicione-o à sua tela de criação.

  4. Selecione o menu suspenso do elemento da interface do usuário e selecione o botão Adicionar um novo elemento da interface do usuário.

    Captura de tela que mostra obter detalhes de um elemento da interface do usuário na caixa de diálogo de ação da janela. A caixa de diálogo tem seu menu suspenso de elementos da interface do usuário expandido, aguardando entrada.

  5. Selecione a janela SAP Easy Access e passe o mouse sobre a barra de status até uma borda vermelha rotulada Barra de status da GUI seja exibida. Enquanto a borda estiver ativa, mantenha pressionado Ctrl e clique para selecionar a barra de status.

    Captura de tela que mostra uma tela do SAP com uma mensagem de status listando a ID de Notificação e a Sessão de acompanhamento do Power Automate Desktop com um controle selecionado.

  6. Selecione Salvar.

    Captura de tela que mostra uma caixa de diálogo da ação

  7. Pesquise a ação Substituir texto no painel Ações e arraste-o até a tela de design.

  8. Em Texto a ser localizado, insira Notificação. Em Substituir por, insira uma cadeia de caracteres em branco inserindo os seguintes caracteres: %''%

    Captura de tela que mostra uma caixa de diálogo da ação

  9. Adicionar outra ação Substituir texto e renomeie Variáveis produzidas como %NotificationId%. Em Texto a ser localizado, insira Salvar e, em Substituir por, insira uma cadeia de caracteres em branco (%''%).

    Captura de tela que mostra outra caixa de diálogo da ação

  10. Pesquise a ação Cortar texto no painel Ações, a arraste até a tela de design, selecione %NotificationId% como o valor Texto a ser cortado e renomeie Variáveis produzidas como %TrimmedNotificationID%.

    Captura de tela que mostra uma caixa de diálogo da ação

  11. Pesquise a ação Exibir mensagem no painel Ações e arraste-o até a tela de design. Defina Título da caixa de mensagem e Mensagem a ser exibida para atender às suas necessidades.

    Captura de tela que mostra uma caixa de diálogo da ação

  12. Execute a automação que cria uma nova Notificação de PM do SAP e extrai a ID de notificação recém-gerada que pode ser exibida conforme mostrado na imagem a seguir.

    Captura de tela que mostra um script em execução do Power Automate Desktop que gera uma ID de notificação recém-criada por meio de uma mensagem de exibição.