Notifications
Clear all

Como abrir tela de Logon do SAP HANA?

3 Posts
2 Usuários
0 Reactions
2,619 Visualizações
sagrado7
(@sagrado7)
Posts: 32
Eminent Member
Topic starter
 

Pessoal preciso de um código que abra a tela de logon do Hana do SAP 740, estou com a Tela de Seleção de Conexões aberta e preciso que o VBA acesse o Hana que está na lista.
Como podem ver na imagem em anexo, estou preso na primeira tela, preciso que o VBA abra a segunda tela que é a de usuario e senha.

Conte Comigo!
Profissão: Programador VBA Pleno
"Para bom entendedor, meia palavra basta"

 
Postado : 22/02/2016 1:47 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Eu testei no SAP 720
http://stackoverflow.com/questions/3098 ... n-with-vba

Sub Test()
If Not IsObject(SAPguiApp) Then
    Set SAPguiApp = CreateObject("Sapgui.ScriptingCtrl.1")
End If
If Not IsObject(Connection) Then
    Set Connection = SAPguiApp.OpenConnection("P01 [Produção]", True)
End If
If Not IsObject(session) Then
    Set session = Connection.Children(0)
End If
session.findById("wnd[0]/usr/txtRSYST-MANDT").Text = "400"
session.findById("wnd[0]/usr/txtRSYST-BNAME").Text = "USER"
session.findById("wnd[0]/usr/pwdRSYST-BCODE").Text = "PASSWORD"
session.findById("wnd[0]/usr/txtRSYST-LANGU").Text = "PT"
session.findById("wnd[0]/usr/txtRSYST-LANGU").SetFocus
session.findById("wnd[0]/usr/txtRSYST-LANGU").caretPosition = 2
session.findById("wnd[0]").sendVKey 0

session.findById("wnd[0]/tbar[0]/okcd").Text = "/nmm01"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]").maximize

MsgBox "If you click on the OK button, the SAP session is terminated."
End Sub

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 23/02/2016 12:12 pm
sagrado7
(@sagrado7)
Posts: 32
Eminent Member
Topic starter
 

Essa linha resolveu o problema: Set Connection = SAPguiApp.OpenConnection("P01 [Produção]", True)
Eu já a tinha usado mas devia estar fazendo algo errado.
Melhorei o código com tratamento de erro:

Sub ConexaoSAP()

On Error GoTo NAOLOGADO

Set session = GetObject("SAPGUI").GetScriptingEngine.Children(0).Children(0)

GoTo LOGADO

NAOLOGADO:

'Se SAP não estiver aberto, abre SAP minimizado
If FindWindow(vbNullString, "SAP Logon 740") = 0 Then Call Shell("C:Program Files (x86)SAPFrontEndSAPguisaplogon.exe", vbMinimizedFocus)
'Seta sessao e faz Login
If Not IsObject(SAPguiApp) Then Set SAPguiApp = CreateObject("Sapgui.ScriptingCtrl.1")
If Not IsObject(Connection) Then Set Connection = SAPguiApp.OpenConnection("111 PRD (MP0) LAR ECC 6.07 on HANA", True)
If Not IsObject(session) Then Set session = Connection.Children(0)
session.findById("wnd[0]/usr/txtRSYST-MANDT").Text = "100" 'Mandante
session.findById("wnd[0]/usr/txtRSYST-BNAME").Text = "usuario" 'Usuario
session.findById("wnd[0]/usr/pwdRSYST-BCODE").Text = "senha" 'Senha
session.findById("wnd[0]/usr/txtRSYST-LANGU").Text = "PT" 'Idioma de Logon
session.findById("wnd[0]").sendVKey 0

LOGADO:

On Error GoTo -1 'Desliga GoTo

'========= TELA INICIAL DO SAP ========='

session.findById("wnd[0]/tbar[0]/okcd").Text = "sm37" 'Entra na tela sm37
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]").maximize

'MAIS CODIGO.......

'Termina a sessao com SAP
End Sub

Conte Comigo!
Profissão: Programador VBA Pleno
"Para bom entendedor, meia palavra basta"

 
Postado : 01/03/2016 1:44 pm