on ‎2020 Aug 12 6:16 PM
Hi,
I'm trying to access information by double click on a cell and it is not working. After the entering into the screen i'm unable to print any details. the automation fails.
session.findById("wnd[0]/usr/cntlIMAGE_CONTAINER/shellcont/shell/shellcont[0]/shell").selectedNode = "0000000022"
session.findById("wnd[0]/usr/cntlIMAGE_CONTAINER/shellcont/shell/shellcont[0]/shell").doubleClickNode("0000000022")
session.findById("wnd[0]/usr/ctxtER_STAT").text = "R"
session.findById("wnd[0]/usr/ctxtER_BP2-LOW").text = b+"*"
session.findById("wnd[0]/usr/ctxtER_RTN_D-LOW").text = today
session.findById("wnd[0]/usr/ctxtER_RTN_D-HIGH").text = today
session.findById("wnd[0]/tbar[1]/btn[8]").press()
---Code works fine until here The screen with the information reflects-- The below code does not work-
print("In the details page")
session.findById("wnd[0]/usr/lbl[3,5]").setFocus()
print("focus")
session.findById("wnd[0]/usr/lbl[3,5]").caretPosition = 0
session.findById("wnd[0]").sendVKey(2)
print("Success")
Attached is image of the view. I'm unable to change this to a grid view.
Regards,
Renato.
Request clarification before answering.
I think that you have several SAP GUI sessions, and you are running the script on the wrong session.
I've got this VBS script that you may adapt to python, to list the opened SAP GUI sessions and ask the user which session (variable sess) is to be used to run the script:
Set Wrapper = WScript.CreateObject("SapROTWr.SapROTWrapper")
Set SapGui = Wrapper.GetROTEntry("SAPGUI")
Set application = sapgui.GetScriptingEngine
if application.Children.count = 0 then
msgbox("please start a SAP GUI session")
wscript.quit 0
end if
prepared_question = "Choose the session:" + chr(13)
set mysessions = CreateObject("Scripting.Dictionary")
sessionNumber = -1
for connNr = 0 to application.Children.Length - 1
set conn = application.children.ElementAt(connNr)
for sessNr = 0 to conn.Children.Length - 1
set sess = conn.children.ElementAt(sessNr)
If sess.Busy = false Then
set window = sess.ActiveWindow
sessionNumber = sessionNumber + 1
mysessions.add cstr(sessionNumber), cstr(connNr) & "," & cstr(sessNr)
prepared_question = prepared_question & cstr(sessionNumber) & ": " & window.text & chr(13)
End If
next
next
sessionNumber = inputbox(prepared_question)
if sessionNumber = "" then
WScript.quit 0
end if
arrSession = split(mysessions.item(sessionNumber),",")
set conn = application.children.ElementAt(cint(arrSession(0)))
set sess = conn.children.ElementAt(cint(arrSession(1)))
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You don't explain what goal you want to achieve.
Anyway, if you expect to set the cursor at the output-only text ("label") which starts at column 3, row 5, then this code is fine:
session.findById("wnd[0]/usr/lbl[3,5]").setFocus()If you want to position at "RR" (output-only text starting at column 22, row 0), then you should do:
session.findById("wnd[0]/usr/lbl[22,0]").setFocus()
Concerning the double-click, it corresponds to pressing F2, so this code is fine:
session.findById("wnd[0]").sendVKey 2 ' Press F2
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Sandra,
I'm trying to double click on the label. Which would in turn take me to the next screen. The challenge i'm facing it that it is not recognizing either the
session.findById("wnd[0]/usr/lbl[3,5]").setFocus()Or
session.findById("wnd[0]").sendVKey 2 ' Press F2I'm not sure why it is not working.
There is a tiny check box beside the label. I have tried setting that as true as well and it still does not work. Which is quite puzzeling for me.
Regards,
Renato.
I don't understand why your code doesn't work and my code works, although it has exactly the same lines of code.
Are you sure that there's a label starting at column 3 (4th column) and row 5 (6th row)? If no and if SAP GUI doesn't send an error message, then it means that you handle all errors, so you will have big issues to troubleshoot your code! Just don't handle all errors.
What checkbox are you talking about?
Could you please provide screenshots corresponding to what you expect?
This is the check box image and im not trying to catch any error.
I tired selecting all the checkbox using the below code and it does not work.
session.findById("wnd[0]/tbar[1]/btn[5]").press()Not sure it is a problem with the GUI. When i record it i find the options are correct.
hard to say with the info provided, but try
session.findById("wnd[0]").sendVKey 19
to display the focused data in a pop-up.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 12 | |
| 9 | |
| 7 | |
| 5 | |
| 4 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.