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.
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:
Verifique se todas as Configurações de script da GUI do SAP estão concluídas.
Abra Logon do SAP e selecione o sistema SAP no qual deseja entrar.
Selecione Personalizar layout local (Alt+F12) e Gravação e reprodução de script....
Selecione Mais.
Em Salvar em, forneça o caminho do arquivo e o nome do arquivo onde deseja armazenar as interações do usuário capturadas.
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.
Insira o código da transação IW21 e selecione Inserir.
Forneça o Tipo de notificação e selecione Inserir.
Insira um Breve texto, Grupo de planejadores, WorkCtr Principal e qualquer outro campo necessário.
Selecione Salvar (Ctrl+S) na barra de ferramentas.
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.
Selecione Saída (Shift+F3) na barra de ferramentas e pare a gravação.
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 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 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.
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.
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:
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.
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.
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.
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.
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.
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.
Selecione Salvar.
Pesquise a ação Substituir texto no painel Ações e arraste-o até a tela de design.
Em Texto a ser localizado, insira Notificação. Em Substituir por, insira uma cadeia de caracteres em branco inserindo os seguintes caracteres: %''%
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 (%''%).
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%.
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.
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.