I recently discovered SAP GUI SCRIPT. First I started to record easy transactions because I wanted to test if it is possible to execute the script on different PCs with different windows and SAP users. During the testing phase I bumped into one bigger Problem.

In my company every user has the Office Integration which allows you to display (f.e. a Profit Center Report as) an Excel Document in SAP. This display setting is saved permanently.

Now the main problem is that if you record the SAP Script with Excel display deactivated and some other users execute the Script with Excel display actived the Script will not process.

Usually I disable the Excel display setting manually by:

clicking System -> User default -> Personal Settings -> Parameter -> Parameter value for G_RW_DOCUMENT_TYPE from XLS to 0

I tried to record this process with Sap Script but it does not record the whole process.

It only records this

session.findById("wnd[0]").maximize
session.findById("wnd[0]/mbar/menu[4]/menu[2]/menu[3]").select

the script does not record the change in parameter value

Is there a way (by adding a code line etc.) for automatically disabling the Excel display setting from active to inactive?

1 Answers

0
ScriptMan On Best Solutions

SAP GUI script recorder records the commands only in 1st mode. After the command

session.findById("wnd[0]/mbar/menu[4]/menu[2]/menu[3]").select

opens a new mode.

But you can also start the transaction directly and remain in 1st mode.

for example:

session.findById("wnd[0]/tbar[0]/okcd").text = "/nsu3"
session.findById("wnd[0]").sendVKey 0

Now that you know that, the problem could be solved as follows:

session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "/nsu3"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/tabsTABSTRIP1/tabpPARAM").select
session.findById("wnd[0]/usr/tabsTABSTRIP1/tabpPARAM/ssubMAINAREA:SAPLSUID_MAINTENANCE:1104/cntlG_PARAMETER_CONTAINER/shellcont/shell").pressToolbarButton "&FIND"
session.findById("wnd[1]/usr/chkGS_SEARCH-EXACT_WORD").selected = true
session.findById("wnd[1]/usr/txtGS_SEARCH-VALUE").text = "G_RW_DOCUMENT_TYPE"
session.findById("wnd[1]/usr/chkGS_SEARCH-EXACT_WORD").setFocus
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]").close

myRow = session.findById("wnd[0]/usr/tabsTABSTRIP1/tabpPARAM/ssubMAINAREA:SAPLSUID_MAINTENANCE:1104/cntlG_PARAMETER_CONTAINER/shellcont/shell").currentCellRow
session.findById("wnd[0]/usr/tabsTABSTRIP1/tabpPARAM/ssubMAINAREA:SAPLSUID_MAINTENANCE:1104/cntlG_PARAMETER_CONTAINER/shellcont/shell").modifyCell myRow,"PARVA","0"      'instead of "XLS"
session.findById("wnd[0]/usr/tabsTABSTRIP1/tabpPARAM/ssubMAINAREA:SAPLSUID_MAINTENANCE:1104/cntlG_PARAMETER_CONTAINER/shellcont/shell").currentCellColumn = "PARVA"
session.findById("wnd[0]/tbar[0]/btn[11]").press

Regards, ScriptMan