Solved

Login to SAP with VBScript

Posted on 2010-09-01
2
20,053 Views
Last Modified: 2012-06-21
Dear Experts,

Could you please have a look at the attached file and code, it is an VBScript file which is able to login to SAP.

My short question would be that how to continue and for example enter a transaction after?

For example the transaction MMBE, how to call through it?

thanks,
set WshShell = CreateObject("WScript.Shell")
 Set proc = WshShell.Exec("C:\Program Files\SAP\FrontEnd\SAPgui\saplogon.exe")
            Do While proc.Status = 0
            WScript.Sleep 100
      Loop
   Set SapGui = GetObject("SAPGUI")
Set Appl = SapGui.GetScriptingEngine

Set Connection = Appl.Openconnection("Test SAP", True)
Set session = Connection.Children(0)
session.findById("wnd[0]/usr/txtRSYST-BNAME").Text = "User"
session.findById("wnd[0]/usr/pwdRSYST-BCODE").Text = "Password11"
session.findById("wnd[0]/usr/txtRSYST-LANGU").Text = "E"
session.findById("wnd[0]").sendVKey 0

Open in new window

VBS-SAP-login.vbs
0
Comment
Question by:csehz
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 42

Accepted Solution

by:
sedgwick earned 500 total points
ID: 33575894
0
 
LVL 1

Author Comment

by:csehz
ID: 33575980
Thanks, yes the key is the Script Recording and Playback menu in SAP R3 pressing firstly the ALT-F12.

So if somebody will need such solution in the future, the attached code is able to go to SE16 and download a table content in excel automatically

thanks,
set WshShell = CreateObject("WScript.Shell")
 Set proc = WshShell.Exec("C:\Program Files\SAP\FrontEnd\SAPgui\saplogon.exe")
            Do While proc.Status = 0
            WScript.Sleep 100
      Loop
   Set SapGui = GetObject("SAPGUI")
Set Appl = SapGui.GetScriptingEngine
 
Set Connection = Appl.Openconnection("Test SAP", True)
Set session = Connection.Children(0)
session.findById("wnd[0]/usr/txtRSYST-BNAME").Text = "xxx"
session.findById("wnd[0]/usr/pwdRSYST-BCODE").Text = "xxxxx"
session.findById("wnd[0]/usr/txtRSYST-LANGU").Text = "E"
session.findById("wnd[0]").sendVKey 0
 
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]/tbar[0]/okcd").text = "/nMM03"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[0]/okcd").text = "/nSE16"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtDATABROWSE-TABLENAME").text = "MARD"
session.findById("wnd[0]/usr/ctxtDATABROWSE-TABLENAME").caretPosition = 4
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtI2-LOW").text = "PLF6"
session.findById("wnd[0]/usr/ctxtI2-LOW").setFocus
session.findById("wnd[0]/usr/ctxtI2-LOW").caretPosition = 4
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/mbar/menu[6]/menu[5]/menu[2]/menu[2]").select
session.findById("wnd[1]/usr/sub/1/rad[1,0]").select
session.findById("wnd[1]/usr/sub/1/rad[1,0]").setFocus
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/usr/ctxtRLGRAP-FILENAME").text = "C:\MARD.xls"
session.findById("wnd[1]/usr/ctxtRLGRAP-FILENAME").caretPosition = 11
session.findById("wnd[1]").sendVKey 0

Open in new window

0

Featured Post

[Live Webinar] The Cloud Skills Gap

As Cloud technologies come of age, business leaders grapple with the impact it has on their team's skills and the gap associated with the use of a cloud platform.

Join experts from 451 Research and Concerto Cloud Services on July 27th where we will examine fact and fiction.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article will show, step by step, how to integrate R code into a R Sweave document
The Windows functions GetTickCount and timeGetTime retrieve the number of milliseconds since the system was started. However, the value is stored in a DWORD, which means that it wraps around to zero every 49.7 days. This article shows how to solve t…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

635 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question