Additional Blogs by Members
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member

Introdução

Muitas vezes precisamos automatizar um processo de input de informações para o SAP e para essa atividade existem diversas ferramentas disponibilizadas pela SAP, mas vamos focar no SAP GUI Scripting.

Esse artigo demonstra a utilização do SAP GUI Scripting que é uma API(Interface de Programação de Aplicações), que pode ser usada para automação de tarefas (repetitivas), testes e carga de dados.

O SAP GUI Scripting é escrito na linguagem de programação VB (Microsoft VBScrip), o VB é uma linguagem de script de fácil aprendizado usada amplamente no pacote MS Office (principalmente Excel) e sistemas comerciais deste o Windows 98.

Apesar do SAP GUI Scripting não ser uma ferramenta nova, vou apresentar sua atualização básica devido ao grande poder de construção, interação com MS Office e flexibilidade.

Objetivo


O objetivo é demostrar automatização de anulação de compensações usando a transação FBRA com SAP GUI Scripting.


Verificação do ambiente


Passo 01:  Habilitar o SAP GUI Scripting no SAP GUI Configuration conforme a tela abaixo.

.

Passo 02: Na transação rz11 você terá que habilitar o  parâmetro sapgui/user_scripting conforme a nota http://service.sap.com/sap/support/notes/480149.


Criação do Script.


Semelhante ao a LSMW o SAP GUI Scripting precisamos mapear os campos e após o mapeamento o SAP gera o script VB.


Vamos usar a opção “Registro e Reprodução de Scrpit” conforme os passos abaixo:

Passo 01: Criação do script.

Passo 02: É necessário informar a pasta e nome do script para o SAP salvar as informações.


Passo 03: Para começar a gravar é necessário clicar no botão "Registrar Script" e chamar a transação FBRA e informar os dados normalmente.



Passo 04: Vamos usar a transação normalmente e concluir o processo da anulação de partida, após a conclusão vamos clicar no botão "Encerrar". Nesta etapa o SAP já mapeou o campos e tem as informações necessárias.


Passo 05: Vamos abrir o script com o bloco de notas.

Passo 06:  Observe que as informações digitas para anulação do documento estão gravadas no script, se executarmos esse scrpit agora ele irá reproduzir no passo 04.




Passo 06:  Vamos inserir os blocos (Vermelho) B1 e B2 no nosso script, não é necessário conhecimento de programação.

O bloco B1 vai chamar a planilha (Excel) aberta, ler a planilha, criar uma estrutura de repetição e criar as variáveis com os conteúdos das colunas, com isso substituímos os valores fixos com as variáveis criadas.

O bloco B2 só fecha a instrutura de repetição.




Código Fonte :



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

REM  B1 INICIO***********************************************

Dim objExcel

Dim objSheet, intRow, i

Set objExcel = GetObject(, "Excel.Application")         ' CHAMA O EXCEL ATIVO 

Set objSheet = objExcel.ActiveWorkbook.ActiveSheet   ' LER O CONTEUDO DA PRIMEIRA ABA DO EXECEL

For i = 2 To objSheet.UsedRange.Rows.Count           ' LER DA PLANILHA APARTI DA 2 LINHA

    DOCUMENTO = Trim(CStr(objSheet.Cells(i, 1).Value))  'A VARIAVEL DOCUMENTO

    EMPRESA   = Trim(CStr(objSheet.Cells(i, 2).Value))  'A VARIAVEL EMPRESA

    ANO       = Trim(CStr(objSheet.Cells(i, 3).Value))  'A VARIAVEL ANO

    session.findById("wnd[0]").maximize

REM B1 FIM *************************************************

    session.findById("wnd[0]/tbar[0]/okcd").Text = "/nfbra"

    session.findById("wnd[0]").sendVKey 0

    session.findById("wnd[0]/usr/txtRF05R-AUGBL").Text  = DOCUMENTO

    session.findById("wnd[0]/usr/ctxtRF05R-BUKRS").Text = EMPRESA

    session.findById("wnd[0]/usr/txtRF05R-GJAHR").Text  = ANO

    session.findById("wnd[0]/usr/txtRF05R-GJAHR").SetFocus

    session.findById("wnd[0]/usr/txtRF05R-GJAHR").caretPosition = 4

    session.findById("wnd[0]/tbar[0]/btn[11]").press

    session.findById("wnd[0]").sendVKey 0

    session.findById("wnd[1]/usr/btnSPOP-OPTION1").press

    session.findById("wnd[1]/usr/ctxtRF05R-STGRD").Text = "01"

    session.findById("wnd[1]/tbar[0]/btn[0]").press

    session.findById("wnd[0]").sendVKey 0

REM B2 ************************************************

Next

REM ****************************************************

Passo 07:  Criação da Planilha Excel, só é necessário criar a planilha com colunas DOCUMENTO, EMPRESA e ANO conforme o print abaixo.

Passo 08: Para executar o script é necessário que a planilha (Excel) esteja aberta e com isso vamos usar a opção “Registro e Reprodução de Scrpit”, selecionar o botão "Processar Script" conforme o print abaixo.


Com isso SAP vai interpretar o arquivo script executando a transação FBRA com SAP  e lendo as informações da planilha(Excel).





Conclusão


Poderíamos usar LSMW para fazer essa atividade que foi descrita acima, mas a ideia é desvincular da LSMW e apresentar SAP GUI Scripting.

Muitas empresas têm verdadeiros sistemas em planilhas Excel que posteriormente seus resultados precisam ser integrados com o SAP.

A automação dessas tarefas não substitui a inteligência no SAP, mais complementa na utilização do SAP com o usuário final, com isso, dando mais opções ao consultor para desenhar soluções.

O SAP GUI Scripting x MS Office abre leque de possibilidades que vão muito além do que foi apresentado neste artigo, caso queiram conhecer um pouco mais, segue link abaixo.

Caso alguém encontrei algum divergência ou inconsistência, por favor fique a vontade para a devida colaboração.

Abaixo link com maiores informações caso queriam apreender mais.

SAP Connectivity with MS Excel

http://scn.sap.com/docs/DOC-31015

Introduction to SAP Gui Scripting

http://scn.sap.com/community/gui/blog/2012/10/08/introduction-to-sap-gui-scripting

The SAP GUI Scripting API

https://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/80aaac18-2dfe-2a10-bbb1-ec9b3760ea4c&overrid...


SAP GUI Scripting API Documentation


VBScript User's Guide

https://msdn.microsoft.com/en-us/library/sx7b3k7y(v=vs.85).aspx

Artur Paulino Da Silva Cardoso

Claudio Rafael

20 Comments