Sap Script

Sap Script & VBA – Tipos de mensagens

Enquanto trabalhamos nas atividades do dia a dia é bastante comum que durante uma entrada de dados ou geração de relatórios seja exibido algum tipo de mensagem no rodapé ou mesmo uma janela modal Pop Up em tela, esses avisos podem ser de informação, alerta ou erro.

Algumas dessas mensagens trazem também informação. Por exemplo, após efetuar  um lançamento manual pela transação FV50 é informado uma mensagem no rodapé com o numero do documento.

Essas mensagens nem sempre podem ser capturada durante a gravação do script e sua exibição pode atrapalhar a execução correta do seu código. Acarretando em uma quebra no seu código principalmente se a mensagem solicitar algum tipo de interação com o usuário.

Por padrão temos  5 (cinco) mensagem que podem ser exibidas no seu SAP (pelo menos as que eu conheço e que encontrei em pesquisas).

 Mensagem tipo S (Sucesso) – Essa é  uma mensagem de que tudo ocorreu corretamente ela não necessita de nenhuma intervenção e não trava o código VBA, não sendo necessário tratar a menos que queira pegar o texto exibido na mensagem.

 Mensagem tipo I (Informação) – Essa mensagem apresenta informações, não é muito comum aparecer, mas caso apareça pode travar seu código sendo necessário enviar um enter para prosseguir.

 Mensagem tipo W (Alerta) – Essa mensagem é a mais comum e assim como a de informação necessita de uma iteração com o usuário, geralmente um enter para dar sequencia no código.

 Mensagem tipo E (Erro) – Essa mensagem é ruim! Ocorreu um erro e também deve ser tratado e necessita de uma interação com usuário. O ideal é que caso apareça essa mensagem seu código ou trate ou pare mesmo.

 Mensagem tipo A (Abend) – Essa mensagem também é ruim e tem a mesma tratativa de  um erro, geralmente quando ela aparece após o enter o SAP volta para o nível superior anterior a execução. O erro no código deve ser tratado ou o código vai parar.

O código Session.findById(“wnd[0]/sbar”).messagetype vai retornar uma das cinco variáveis acima (S-I-W-E-A), com essa informação é possível colocar em trechos estratégicos do seu código um tratamento para tratar essas mensagens.

Para capturar o texto na mensagem do tipo S (Sucesso) utilize o trecho do código:

Para tratar os demais erros enviando um enter para passar o código use o código:

Com as dicas acimas é possível adaptar seu código para tratar essas mensagens que podem aparecer em sequencia sendo necessário enviar vários enter’s o que pode ser solucionado com um loop ou um laço de repetição combinado com um tratamento de erros On Error Resume Next / On Error GoTo 0.

Varias são as possibilidade e com certeza existem outras formas de chegar ao mesmo resultado! Espero ter colaborado com essa dica e caso tenham algo a contribuir ou questionar deixe seu recado! Feedback são sempre bem vindos! Abraço!!!

14 thoughts on “Sap Script & VBA – Tipos de mensagens

  • Evandro Rissatto Pereira

    Estas postagens Sap Script & VBA são muito valiosas Sr Fabio, vou tentar carregar dados do Excel para preenchimento de dados no SAP, a princípio está tudo funcionando, graças à qualidade desse seu código comentado. Obrigado por compartilhar!

    Resposta
    • Fabio Mitsueda

      Obrigado Evandro.

      Resposta
    • christopher Mafra

      também preciso dessa ajudinha

      Resposta
  • Fabio, muito bom seu trabalho….so fiquei em duvidas de como capturar por exemplo as informacoes que sao exibidas por exemplo na barra que fica no rodape do sap…quando por exemplo ele cria uma solicitacao ou uma remessa por exemplo….ele cria com sucesso e fala o numero…como eu capturo a mensagem la do rodape?

    Resposta
    • Lucas da Conceição

      Você pode utilizar o código “Session.findById(“wnd[0]/sbar”).Text” para capturar as informações do rodapé e armazenar em uma variável.

      Resposta
  • Andre Nunes

    Fábio, faz um excelente trabalho.
    Estou me aventurando em criar scritp para o excel para trabalhar em alguns processos do SAP.
    Consegui montar script que efetua o registro de acordo com os dados da planilha.
    Porém alguns registros não são concluídos pois falta parâmetros a serem cadastrados no SAP, onde temos as mensagens de erro SAP.
    Meu script já informa status como registrado e me retorna o numero de registro, mas quando dá erro para tudo.
    Preciso inserir no código algo que quando der erro saia da transação e siga para o próximo registro, você tem alguma idéia ou sugestão, algum site que possa estudar o assunto.

    Agradeço se puder ajudar.

    Resposta
  • Daniel

    Alguém tem um código script para pedidos. Buscandos as informações como data base, valor líquido, nm

    Resposta
  • Anônimo

    Oi Fábio, Blz?
    Segui os passos, mas o SAP me retorna essa mensagem quando aparece o Erro (Tipo E):
    “The control could not be found by ID”
    Daí não consigo colocar uma tratativa, o Script para a execução.

    Já viu algo parecido?

    Resposta
  • Anônimo

    Parabens, me ajudou bastante.

    Resposta
  • Robson

    Muito obrigado, estava precisando desta ajuda.

    Resposta
  • Anônimo

    Muito obrigado cara. Estás de parabéns ajudaste me muito

    Resposta
  • Jefferson Cleber

    Prof. Fábio, boa noite… Estou encontrando alguns problemas com a ID da tela SAPLMEGUI, onde sempre temos a alteração da ID ocasionando erro de tela ou ele não aplica os comandos. Utilizando a ME53N ele não pega algumas informações. Será que desta maneira o código conseguirá acesso? Grato.

    Resposta
  • Anônimo

    Olá Prof. Fábio. As vezes ocorre um erro no Script e pára a execução. Prefiro que se ocorrer um erro, simplesmente seja desviado para o fim do código e feche a transação. Teria como?

    Resposta
  • Armando

    Tem como desviar para o fim do código e encerrar o SAP?

    Resposta

Deixe uma resposta