Sap Script

Sap Script & VBA – Conexão

Vou disponibilizar para download um arquivo de Excel Vba, este arquivo é um modelo de como conectar ao Sap e executar um script.

Este arquivo verificara se existem mandantes do Sap aberto e caso exista perguntará em qual mandante deseja executar o Script. Caso não encontre nenhum mandante será aberto um formulário de login para criar uma conexão.

Para fazer uma automação entre Excel e Sap utilizamos a linguagem Vba para interpretar e adaptar o código Vbs que foi criado pelo gerador de Script do Sap (ver introdução de como gerar o arquivo .vbs no SAP).

Existe mais de uma maneira de se fazer essa conexão, vou demonstrar a forma que acredito ser mais pratica e que em meus testes causou menor impacto em compatibilidade por não estar utilizando bibliotecas (dll’s).

Verifique onde seu Sap Logon esta instalado. Para isso clique no atalho do seu Sap Logon com o botão direito depois clique em propriedades.

Procure na janela que será aberta a guia onde esteja identificado o caminho da instalação do seu Sap Logon.

Copie e guarde esse caminho ele será utilizado depois no código.

Conforme imagem abaixo a planilha foi estruturada com 3 módulos

  1.  basExecutar – Neste modulo teremos a rotina ExecutarScript(), essa rotina possui uma chamada para outra rotina de nome Executar() que está contida no modulo basTransaction.
  2.  basSAP – Neste modulo estão todas as rotinas que tratam do Sap, rotinas para conexão, desconexão, verificar se existe mandantes abertos etc…
  3.  basTransaction – Neste modulo teremos a rotina Executar(), aqui iremos colocar customizar o Script gerado pelo Sap e adapta-lo a nossa necessidade.

Dentro do basSAP teremos que alterar o caminho do Sap Logon para o caminho da sua instalação, isso é necessário caso você não deseje utilizar um mandante aberto e queira fazer a conexão pelo formulário de conexão.

De um duplo clique no modulo basSAP, encontre a rotina ConectarSAP. Feito isso altere o caminho para aquele indicado no inicio dessa postagem.

Feito as alterações, vamos aos testes!

Seguindo a postagem anterior de introdução, fiz a geração de um script que abre a transação FS10N insere dados nos campos solicitados e executa a transação mostrando saldo em tela.

Conforme imagem acima preencha as células C13, C14 e C15 e clique no botão executar. Caso existir diferenças entre meu Script e o seu utilize a introdução para gerar um script e tente adapta-lo, caso precise de ajuda deixe seus comentários.

Esse é um exemplo simples de execução, mas serve de exemplo de conexão. A customização pode abranger vários processos, desde lançamentos manuais pela FV50 ou transações de custeio, fiscal, financeiro. Tudo que for um processo manual, repetitivo e logico pode ser adaptado e customizado utilizando Vba.

Tentei comentar ao máximo o código, não vou detalhar nesta postagem cada função porque seria muito exaustivo e pouco produtivo, caso tenham qualquer duvida entrem em contato nos comentários.

Clique aqui para baixar o arquivo.

61 thoughts on “Sap Script & VBA – Conexão

  • Rodrigo Novais

    Show de bola os Códigos. Muito obrigado.

    Resposta
    • Fabio Mitsueda

      Obrigado é bom saber que alguém utiliza.

      Forte Abraço

      Resposta
  • Rodrigo

    Oi Fábio… cara… muito útil seu código! Parabéns! É difícil encontrar informações claras sobre scripts de acesso ao SAP. Criei um código semelhante, porém não tão detalhado. Certamente vou fazer melhorias no meu. Obrigado! Agora, tenho um dúvida, tenho tentando (sem sucesso) que o script identifique diferentes telas do SAP. Todas as telas abrem com a nomenclatura “session.findById(“wnd[0]”)…” e no SAP quando abrimos mais de uma tela fica identificado no canto inferior direito como “PEP (1) 400”, “PEP (2) 400”, e assim sucessivamente. Teria como identificar isso via script para poder alternar entre as janelas?

    Novamente, parabéns pela iniciativa e espero poder contribuir com o blog!

    Abraços

    Resposta
    • Fabio Mitsueda

      Oi Rodrigo.
      Bom saber que esta sendo útil. Com relação a identificação e seleção da tela, isso é possivel sim. No codigo que eu disponibilizei já existe alguma coisa semelhante mas com relação aos mandantes abertos. Para capturar as Janelas abertas seria praticamente a mesma coisa, “teoricamente”. Crie um variante do tipo object para carregar as session de cada janela, e quando for setar o objeto session busque nessa variante, parece simples, mas teria que entender bem a regra. O codigo que eu disponibilizei você consegue pegar a quantidade de mandantes abertos, a quantidade de janelas abertas etc…
      Não prometo que será logo, porque esta bem corrido aqui pra mim, mas assim que der um tempo monto um post sobre isso com um exemplo.
      Abraço

      Resposta
  • LEONARDO DE SOUZA MACEDO

    Esses comandos funciona no SAP Business One?

    Resposta
    • Ola Leonardo,
      Eu nunca trabalhei com SAP Business One. Mas se existe a opção de gravar script deve funcionar. Talvez o Sap Logon seja diferente, mas só testando mesmo para confirmar.
      Abraço

      Resposta
  • Francisco Brito

    Olá Fábio… Parabéns pelo código!!! Peço permissão para adequar as minhas necessidades…
    É possível, com essa base, além de abrir o relatório no SAP, gostaria de salvar o relatório gerado no formato excel dentro do deste mesmo arquivo que disponibilizou, porém em uma outra aba? Poderia dar essa dica? Grande abraço…

    Resposta
  • ALEXANDRE ORTUNES

    Olá ! Fábio , já utilizo com frequência o script, mas gostaria de saber se existe um código que copia uma informação do sap e cola no excel

    Resposta
    • Fabio Mitsueda

      Alexandre, desculpa a demora. Mas me a da um exemplo do que precisa.

      Entranna transação tal… Captura o codigondo campo tal…

      Aí eu monto um exemplo.

      Abraço

      Resposta
      • Alexandre Ortunes

        Obrigado Fábio pelo retorno! Eu consegui achar um modelo e deu certo, eu postei mais abaixo o exemplo.

        Valeu!!

        Resposta
  • Calmi

    Fabio.
    Esses comandos me ajudaram muito.
    Criei atalho na area de trabalho puxando o Script, porem qdo chega na parte do excel da erro.. sabe como posso corrigir?

    Resposta
  • Rodrigo Novais

    Fabio,
    Boa tarde.

    Primeiramente mais uma vez, muito obrigado por compartilhar seus códigos, ele me ajuda muito no dia a dia.

    Gostaria se possível de um auxilio seu.
    Estou montando um script no qual faço a conexão com o SAP e através do Script faço conexão com o Excel.
    Consegue montar as linhas de códigos, porém tenho um problema, só consigo rodar quando o SAP está fechado, quando está aberto o Script tá erro.

    Esta é a linha de código:

    Você consegue me ajudar criando uma variável de quando o SAP estiver aberto ele prosseguir com o código?

    Dim WSHShell, SAPGUIPath, SID, InstanceNo, WinTitle, Name
    Set WSHShell = WScript.CreateObject(“WScript.Shell”)
    If IsObject(WSHShell) Then
    SAPGUIPath = “C:\Program Files (x86)\SAP\FrontEnd\SAPgui\”
    Name = “””GMP [SALES]”””
    SID = “GMP”
    InstanceNo = “12”
    WSHShell.Exec SAPGUIPath & “sapgui.exe ” & name & ” ” & _
    InstanceNo
    WinTitle = “SAP”
    While Not WSHShell.AppActivate(WinTitle)
    WScript.Sleep 250
    Wend
    Set WSHShell = Nothing
    End If

    If Not IsObject(application) Then
    Set SapGuiAuto = GetObject(“SAPGUI”)
    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, “on”
    WScript.ConnectObject application, “on”
    End If

    session.findById(“wnd[0]”).maximize
    session.findById(“wnd[0]/usr/txtRSYST-MANDT”).text = “100”
    session.findById(“wnd[0]/usr/txtRSYST-BNAME”).text = “rodrigo.sn”
    session.findById(“wnd[0]/usr/pwdRSYST-BCODE”).text = “‘1qazxsw23edcvfr45”
    session.findById(“wnd[0]/usr/pwdRSYST-BCODE”).setFocus
    session.findById(“wnd[0]/usr/pwdRSYST-BCODE”).caretPosition = 10
    session.findById(“wnd[0]”).sendVKey 0

    Session.findById(“wnd[0]”).maximize
    Session.findById(“wnd[0]/tbar[0]/okcd”).Text = “/nvl10c”
    Session.findById(“wnd[0]”).sendVKey 0

    Session.findById(“wnd[0]/tbar[1]/btn[17]”).press
    Session.findById(“wnd[1]/usr/txtV-LOW”).Text = “only mezanino”
    Session.findById(“wnd[1]/usr/txtV-LOW”).caretPosition = 13
    Session.findById(“wnd[1]/tbar[0]/btn[8]”).press
    Session.findById(“wnd[0]/usr/tabsTABSTRIP_ORDER_CRITERIA/tabpS0S_TAB3”).Select
    Session.findById(“wnd[0]/usr/tabsTABSTRIP_ORDER_CRITERIA/tabpS0S_TAB3/ssub%_SUBSCREEN_ORDER_CRITERIA:RVV50R10C:1040/btn%_ST_MATNR_%_APP_%-VALU_PUSH”).press
    Session.findById(“wnd[1]/tbar[0]/btn[16]”).press
    Session.findById(“wnd[1]/tbar[0]/btn[8]”).press
    Session.findById(“wnd[0]/tbar[1]/btn[8]”).press
    Session.findById(“wnd[0]/tbar[1]/btn[45]”).press
    Session.findById(“wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]”).Select
    Session.findById(“wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]”).SetFocus
    Session.findById(“wnd[1]/tbar[0]/btn[0]”).press
    Session.findById(“wnd[1]/usr/ctxtDY_PATH”).Text = “C:\Users\rodrigo.sn\Documents\SAP\”
    Session.findById(“wnd[1]/usr/ctxtDY_FILENAME”).Text = “pend.xls”
    Session.findById(“wnd[1]/usr/ctxtDY_FILENAME”).caretPosition = 8
    Session.findById(“wnd[1]/tbar[0]/btn[11]”).press

    Dim Args, objExcel

    Set args = wscript.Arguments

    Desde já agradeço.

    Resposta
  • DHIEGO SANTOS LOPES

    Bom dia. Estou com exatamente a mesm duvida.. se puder ajudar seria otimo.

    Desde já agradeço

    Resposta
  • Maurício

    Boa tarde Fábio!
    Parabéns e obrigado pelas informações compartilhadas!!!
    As informações de “Conta do Razão” são restritas à alguma área da empresa, contatei o pessoal da TI e desconhecem… (eu também…)?
    Se puder me indicar onde identifico esta informação, te agradeço.

    Novamente, parabéns pela iniciativa.

    Grande abraço!

    Resposta
    • Vladimir

      Boa tarde Fabio
      Vice teria algum conteúdo referente ao inverso? Retirar dados do SAP para uma planilha Excel isso quando não é possível gerar um arquivo do próprio sistema.

      Resposta
  • Alexandre Ortunes

    Boa tarde srs! Também precisava de algo assim, consegui este arquivo:

    Sub Macro()

    OpenSession
    session.FindById(“wnd[0]”).Maximize

    session.StartTransaction “VL02N”
    session.FindById(“wnd[0]/usr/ctxtLIKP-VBELN”).Text = Range(“A2”).Value
    session.FindById(“wnd[0]”).SendVKey 0

    Range(“B2”).Value = session.FindById(“wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV50A:1102/tblSAPMV50ATC_LIPS_OVER/txtLIPSD-G_LFIMG[2,0]”).Text

    session.FindById(“wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV50A:1102/tblSAPMV50ATC_LIPS_OVER/txtLIPSD-G_LFIMG[2,0]”).Text = Range(“C2”).Value
    session.FindById(“wnd[0]”).SendVKey 0
    session.FindById(“wnd[0]”).SendVKey 11

    Range(“D2”).Value = session.FindById(“wnd[0]/sbar”).Text

    End Sub

    Funcionou bem comigo, porém quando coloco em loop, o comando on error goto não funciona…

    Resposta
  • Matheus

    Bom dia Fabio!

    Estou com uma dúvida de script que talvez você possa me ajudar, estou gerando um código de preenchimento de cadastro no SAP com rotinas que retiram as informações do Excel, porém só consigo que funcione corretamente se a linha termina em .text, algumas das informações inseridas são células que me geram código em “VALUE02”,”…” e não sei como fazer para que esse tipo de linha abra o excel e retire as informações,

    Poderia me iluminar com algo?

    Desde já agradeço, um grande abraço!!

    Resposta
  • RAFAEL MAGNO DE CARVALHO CAMPOS

    Fabio, boa tarde.

    parabéns pelo seu trabalho me ajudou muito é o melhor!!!

    Resposta
  • Murilo

    Fabio, tudo bem?
    Gostaria de saber se é possivel, com o SAP já logado, utilizar uma macro que abre uma transação do SAP e executa um scirpt gerado pelo SAP(aprendi em seu outro tutorial)

    Resposta
    • Olá Murilo, tudo bem obrigado e você?
      É possível sim, como você mesmo disse já existe uma postagem com essa funcionalidade, qual a sua duvida?

      Resposta
      • Anderson Alemeida

        Fabio, tudo bem?
        Estou iniciando os conceitos de interação SAP com Excel. Ao utilizar a macro aconteceu o seguinte erro.
        Run-time error 91

        Resposta
  • Anderson Alemeida

    Fabio, tudo bem?
    Estou iniciando os conceitos de interação SAP com Excel. Ao utilizar a macro aconteceu o seguinte erro.
    Run-time error 91 – object variable or with block variable not set.
    Public Sub Executar()

    Session.FindById(“wnd[0]”).maximize

    Resposta
    • Eduardo Prada

      Amigo estou com o mesmo problema, conseguiu resolver?

      Resposta
  • thiago quirino

    Ola tudo bem,
    Estou tentando criar um script para selecionar um texto descritivo para nota PM e não estou conseguindo selecionar o texto tem alguma ideia ??

    Resposta
  • Marcelo Rodrigues

    Olá! Estava desesperado achando algo que me fizesse entrar no SAP pelo excel e meu, sensacional essa planilha. consegui adaptar aqui no trabalho e venho lhe agradecer por multiplicar essses conhecimentos! vc é fera!
    aproveitando, preciso aprimorar minhas habilidades nessas linguagens. Você disponibiliza curso, aula particular ou poderia recomendar algo para que possa me desenvolver melhor? amo linguagens de programação. Abs

    Resposta
  • Vynycius

    Olá amigos,
    para vocês que estão encontrando o erro Run-time error 91, na linha “Session.FindById(“wnd[0]”).maximize”:

    O que está acontecendo de errado é na função que abre o ambiente do SAP. Pelo menos no meu caso, eu estava tentando abrir o ambiente PE1. Quando colocava apenas PE1 acontecia esse problema. Quando coloquei o nome completo do ambiente “ECC – Production – PE1”, não obtive problemas.

    Valeu, flw.

    Resposta
    • Louri

      Bom dia. Eu estava com o mesmo erro usando o ambiente S0P.

      Colocando “#. Production Brazil – S0P” funcionou

      Resposta
  • MarceloStrehlow

    Boa Tarde Fábio!
    Primeiramente, parabéns pelo conteúdo produzido e disponibilizado. Muito Obrigado por compartilhar seus conhecimentos.
    Não sei se aqui é o lugar certo pra perguntar isso, mas é possível executar duas transações, em duas janelas simultaneamente no SAP, através do VBA?

    Resposta
    • Fabio Mitsueda

      Oi Marcelo, olhando apenas pelo lado do VBA não é possível disparar dois código ao mesmo tempo, visto que um precisa ser finalizado para outro dar continuidade ou inicialização, mas se você utilizar duas instancias do Excel teoricamente é possível executar os códigos simultaneamente, você pode colocar o código no evento open e abrir um novo application abrindo esse workbook. Agora do lado do SAP eu não se te dizer precisa testar. Abraço.

      Resposta
  • Paulo Lima

    Olá Fávio!
    Obrigado por compartilha seu código, muito útil. Tenho uma dúvida, estou querendo automatizar uma tarefa no SAP que demora muito para rodar, tendo em vista o volume de informações, creio que vou conseguir agendar a tarefa para um horário que eu não esteja utilizando a máquina, mas preciso tirar a mensagem de confirmação da abertura da seção do SAP Gui, é possível para que funcione, é possível?

    Resposta
    • Fabio Mitsueda

      Você esta falando da mensagem que aparece antes de executar um script? Se for você de desmarcar as opções
      Notificar se um script se vincular a um SAP GUI
      Notificar quando um script abre uma ligação

      Essa opções estão disponiveis na pasta de Acessibilidade & Scripting nas opções (Alt+F12)

      Abraço

      Resposta
  • Adalto Dantas Santana

    Caro Fábio Mitsueda, boa noite!
    Parabéns pelo seu script sensacional.
    Baixei a planilha de códigos e estou adaptando às minhas necessidades. Todavia, no meu caso, o script não reconhece que há telas abertas no SAP e sempre chama o userform para logon (que dá erro, quando já existe uma conexão). Outra coisa, a encerrar o SAP, o seu código funciona, mas fica alternando as janelas do SAP e do Excel, ao trazer dados para minha planilha. Eu queria que o SAP ficasse em segundo plano, para que ninguém percebesse o que está rolando nos bastidores…
    Pode me ajudar?
    Meus e-mails:

    Comercial – adaltods@petrobras.com.br
    Pessoal – adaltods@hotmail.com

    Aguardo ansiosamente!

    Grande abraço.

    Resposta
  • Adalto

    Caro Fábio Mitsueda, bom dia!
    Parabéns pelas soluções brilhantes que você desenvolveu.
    Todavia, no meu caso, o Script de conexão não está reconhecendo o meu ambiente Sap aberto (nenhuma janela, mesmo eu estando conectado em diversos mandantes, inclusive), e fica chamando o userform de logon…
    Além disso, quando executo meus códigos para trazer valores do Sap para minha planilha, as telas Excel e Sap ficam alternando para lá e para cá …
    Eu queria que o Sap trabalhasse em segundo plano (invisível), como fazer?

    Obrigado e um abraço!

    Adalto.
    adaltods@hotmail.com

    Resposta
  • Kamila Peruch

    Boa noite, Fábio! Gostaria de tirar uma dúvida, se possível. Fiz um código para extrair dados para o excel na transação zles001, porem ao rodar a macro ela trava pois ao abrir esta transação aparece um pop up no qual é necessário clicar e permitir o acesso (este pop up só aparece quando rodo a macro, quando entro normalmente sem macro ele nao aparece). Existeum código no qual eu possa desbloquear este pop up?

    Resposta
    • Marcelo

      Bom Dia Kamila!

      Realize o procedimento citado pelo Fabio logo acima, em resposta a duvida do Paulo Lima em 18 de janeiro de 2020 em 07:39, e veja se resolve.

      Resposta
  • Anônimo

    Muito bom Fabio! Me tire uma duvida por favor. Quando vou fazer a conexão ele acha o SAP Logon mas pelo fato do Meu SAP Logon possuir diversas conexões como ambiente DEV, QA ele se perde e não entra na Conexão. Como posso resolver isso?

    Resposta
    • Fabio Mitsueda

      A forma que o codigo foi construido é você deve digitar o nome da sua conexão igual aparece no SAP Logon, geralmente as empresas tem um arquivo XML onde fica todas essas informações e o caminho esta nas configurações do SAP Logon, o que você pode fazer é utilizar o VBA para ler as conexões existentes e popular um listbox no Userform.

      Resposta
  • erllon

    Olá Boa tarde!

    Muito legal a disponibilidade de transmitir conosco o seu conhecimento, muito obrigado…..

    Veja por favor se pode me ajudar…..

    Esta dando erro nesse trecho meu:
    ‘Carregando a variavel com as propriedade da seção SAP onde será incluido o usuário e a senha
    ‘Set Sesion = GetObject(“SAPGUI”).GetScriptingEngine.Children(0).Children(0)
    Set Session = objConnection.Children(0)

    Abraços Erllon.

    Resposta
  • Anônimo

    Fábio, sabe de alguém que possar das aulas de sap script + vba?

    Resposta
  • Leandro Rosa

    Olá, Fábio!

    Tem algum código disponível onde eu consiga acessar simultaneamente pelo mesmo usuario?

    As vezes, o usuário que utilizo já está logado no SAP (em outras execuções) e, quando o script roda, não permite porque já existe essa execução ativa (em outra máquina).

    A idéia é selecionar “Continuar com esse logon sem encerrar os logons existentes”.

    Obrigado.

    Resposta
  • Leandro Rosa

    Olá, Fábio!

    Tem algum código disponível onde eu consiga acessar simultaneamente pelo mesmo usuario?

    As vezes, o usuário que utilizo já está logado no SAP (em outras execuções) e, quando o script roda, não permite porque já existe essa execução ativa (em outra máquina).

    A idéia é selecionar “Continuar com esse logon sem encerrar os logons existentes”.

    Obrigado.

    Resposta
  • Anônimo

    Olá Fabio.

    Poderia me informar como faço para solucionar o erro “a microsoft está aguardando que outro aplicativo conclua a ação OLE”.

    Montei uma macro e os relatórios são pesados e se demora muito pra gerar aparece esse erro, ai tenho que dar um ok para a macro continuar.

    Resposta
    • Fabio Mitsueda

      é isso pode acontecer, no caso do application.displayalerts não funcionar tente dar um doevents no seu codigo

      Resposta
      • Diogo Cleves Ecard Monteiro

        salvou aqui meu caro!! Estava apanhando para desativar isso.

        Resposta
  • Anônimo

    Boa Noite! Você pode usar a instrução Application.DisplayAlerts = False no início da macro, e alterar para True no fim da execução.

    Resposta
  • Anônimo

    Oi Fábio… cara… muito útil seu código! Parabéns! É difícil encontrar informações claras sobre scripts de acesso ao SAP.
    estou utilizando script para automatizar varias tarefas, porem fico limitado a executar um script por vez, teria como identificar as janelas do sabe dentro do script, assim me possibilitaria executar até 6 scripts por vez, poderia dar um exemplo de como fazer isso?

    Resposta
    • Fabio Mitsueda

      Olá, tem sim como identificar as janelas do SAP saber qual transação esta em tela, se a tela esta ocupada ou não, mas o Excel VBA para disparar mais de um script simultaneamente não é uma tarefa muito facil porque o codigo é linear, tem que executar um depois o outro e assim sucessivamente a não ser que vc utilize varias instancias do Excel para disparar simultaneamente, de qualquer forma respondendo a sua pergunta existe sim como identificar a janela do SAP, estude a função GetSapUserOpen e verifique como carrego a variavel strTransacao

      Resposta
  • Luciano da Mata

    Fabio, bom dia!
    Parabéns pelo projeto, ficou excelente.
    Uma pergunta, é possível gravar o script do SAP para salvar o arquivo de extração em Planilha Eletrônica ou até mesmo manipular o VBA para planilha eletrônica, resumindo, falo isso por que existe algumas transações SAP que não possui o file local, somente a lista >> exportar >> planilha eletrônica.
    Já pegou algum cenário assim?

    Resposta
    • Fabio Mitsueda

      Oi Luciano, já sim geralmente eu uso o trecho abaixo

      strCaminho = C:\Macros Diversas
      strNomeFile = MeuArquivo.xls

      Session.findById(“wnd[1]/usr/ctxtDY_PATH”).Text = strCaminho
      Session.findById(“wnd[1]/usr/ctxtDY_FILENAME”).Text = strNomeFile
      Session.findById(“wnd[1]/tbar[0]/btn[0]”).press

      Costuma funcionar na maioria dos casos.

      Abraço

      Resposta
  • ITAMAR CONCEIÇÃO

    Olá, Fábio!
    Fantástico seu conteúdo!!! Você fez algum treinamento específico para isso?
    Já venho procurando isso há alguns anos e abandonei porque não encontrava nada a respeito e os treinamentos que encontrei eram uma fortuna, mas enfim, agora consigo andar com alguma coisa com essa base.
    Enfim… você teve algum treinamento e poderia indicar alguém ou você tem plano de abrir um treinamento on line para isso?
    outro ponto, que vi nos comentários acima, mas talvez não tenha entendido, vi seu vídeo do YT e vi enviar do excel para o SAP, o inverso funciona no mesmo princípio? Tipo… se for gravando, posso encontrar os “labels” do campo e escrever onde está no SAP e registrar numa cel no excel, é isso? Tem algum exemplo?

    Obrigado pela atenção e por compartilhar seu conhecimento! Sucesso cada vez mais!

    Resposta
    • Fabio Mitsueda

      Oi Itamar, fico feliz que o conteúdo esteja sendo útil. Eu não fiz um curso especial sobre SAP Gui Scripting, mas tive um treinamento in Company que me apresentou o conceito, como eu já tinha uma experiência em VBA a coisa fluiu bem. Muitas pessoas me perguntam se dou curso ou se indico algum, bom meu intuito é disseminar conhecimento e ajudar os colegas, mas não atuo nessa área é mais um hobby pra mim, não tenho como indicar cursos porque não cheguei a fazer, mas sempre que alguém me pergunta sobre curso desse tema eu pergunto de volta, como está o seu VBA e conceito basico de programação orientada a objeto? Porque no meu ponto de vista 80% é VBA 10% conceito de programação orientada a objeto, 5% SAP como usuário ou funcional e 5% de Sap Gui Scripting. Então meu conselhos e mergulhe no VBA e isso tem muito material bom na internet e livros ótimos a disposição. Eu sou da época das revistas de banca de jornal da DIGERATI kkk eu queria colocar mais conteúdo nesse canal mas o tempo e um complicador… De qualquer forma obrigado por comentar e qualquer dúvida estou por aqui. Abraco

      Resposta
  • ITAMAR CONCEIÇÃO

    Opa! Obrigado pela atenção na resposta, Fábio! A situação é a seguinte, eu não sou um programador, mas dou minhas “codadas” em VBA há algum tempinho kkkk comecei a fazer as primeiras macros em 96, 97 e depois disso, não tem um emprego que eu arrume que não apareça um projetinho de algum sisteminha seja de controle de instrumentos, manutenção ou meu último bebê uma planilha que gera cartas de Controle e Histograma com base nos conceito de CEP, só que o legal é um pouquinho SQL em meio ao código para gerar a consulta dos dados por período, mercado, código de produto, ficou bem legal!
    Mas quanto ao SAP Scripting, não consegui encontrar nada mais direcionado na net ou em algum livro, sempre vejo alguém mostrando que é possível e que pode-se fazer verdadeiros milagres em termos de ganho de eficiência. Por isso, estou atrás desse conhecimento.
    Seu canal de vídeos no You Tube, foi o primeiro que vi isso de uma maneira bem escrita e com o código e a forma como faz isso dentro SAP. Pelo que entendi, aquilo é meio que o caminho das pedras e o restante é adaptação, certo? Digamos que “simples assim” rs… mas é sempre bom saber se tem realmente um tutoria bem pega na mão e bora lá.
    De qualquer forma, agradeço novamente e sou inscrito lá e fico esperando um novo post.
    Grande abraço e ótimo 2021 com muito sucesso e saúde!

    Resposta
  • Victor Daniel Andrade

    Bom dia Fábio! Tudo bem?
    Minha dúvida é na hora do encerramento do SAP.
    Quando ele vai fechar, aparece uma mensagem: Os dados não gravados serão perdidos. Efetuar logoff ? Sim ou não? com isso o código da erro. Como solucionar ? não da para fazer usando robô com mouse, eu não sei se tem como desabilitar essa msg.

    Resposta
    • Fabio Mitsueda

      Olá, cada caso é um caso, não deve acontecer isso sempre correto, então grave o script para capturar essa mensagem ele deve ter algo wnd[1] no script.

      Feito isso coloque essa instrução dentro de um tratamento de erro.

      On Error Resume Next
      …..wnd[1]….
      On Error Goto 0

      Isso deve resolver.

      Espero ter ajudado, abraço.

      Resposta
  • Anônimo

    Olá, boa noite.
    Eu gostaria de um script que pegasse a informação de um documento em pdf na fb03 e copiasse essa informação no excel. Pode me ajudar?

    Resposta
  • ludson

    Oi fabio, meu problema esta no inicio do login, ele nao está lendo que o acesso ja esta em execução (login ja dfoi feito) sempre abre a tela de login e quando digito os dados cai naquela tela do SAP de derrubar quem já esta usando..

    Resposta
  • Anônimo

    O arquivo com o Bas transation não está mais disponivel?

    Resposta
    • Fabio Mitsueda

      Olá, esta sim. De uma olhada na ultima linha da postagem tem um clique aqui

      Resposta
  • Alexandre M de A Souza

    Boa noite, Fábio!
    Realizando os testes em seu código, percebi que a listagem para mais de um mandante na verdade não funciona. Mesmo com 2 ou mais mandantes logados, a listagem para escolha do mandante o qual rodará o script só é povoada com apenas 1 mandante (o que logou primeiro). Existe algum erro no Ubound…ou na parte do loop “For X = LBound(vSap) to Ubound(vSap)…” ou na definição do idSap.

    Resposta
  • Букмекерская контора 1xBet является очень известных на рынке. 1xbet сайт Большой выбор событий из мира спорта и киберспорта, множество открытых линий, высочайшие коэффициенты. Также, БК имеет обширный функционал и немногие дает возможность совершать ставки по уникальным промокодам. Используя их, вы можете получить реальный денежный выигрыш, не внося абсолютно никаких средств. Это реально! Узнать последний промокод вы можете сейчас же, однако использовать его необходимо в соответствии с правилами и инструкциями, которые приведены ниже.

    Resposta

Deixe uma resposta

%d blogueiros gostam disto: