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


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

ScriptMan On Best Solutions

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


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]/tbar[0]/okcd").text = "/nsu3"
session.findById("wnd[0]").sendVKey 0
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"

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"

Regards, ScriptMan