Как автоматически отключить отображение Excel с помощью SAP Script - PullRequest
0 голосов
/ 13 мая 2019

Я недавно обнаружил SAP GUI SCRIPT .Сначала я начал записывать простые транзакции, потому что хотел проверить, можно ли выполнить скрипт на разных компьютерах с разными окнами и пользователями SAP.На этапе тестирования я столкнулся с еще одной большой проблемой.

В моей компании у каждого пользователя есть интеграция с Office, которая позволяет отображать (например, отчет центра прибыли как) документ Excel в SAP.Этот параметр отображения сохраняется постоянно.

Теперь основная проблема состоит в том, что если вы записываете отключенный экран SAP Script с Excel и некоторые другие пользователи выполняют активированный экран Script with Excel, сценарий не будет обрабатываться *

Я пытался записать этот процесс с помощью Sap Script, но он не записывает весь процесс.

Он только записывает этот

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

, сценарий незаписать изменение значения параметра

Есть ли способ (путем добавления строки кода и т. д.) для автоматического отключения настройки отображения Excel с активного на неактивный?

1 Ответ

0 голосов
/ 13 мая 2019

Регистратор сценариев SAP GUI записывает команды только в 1-м режиме.После того, как команда

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

открывает новый режим.

Но вы также можете запустить транзакцию напрямую и остаться в 1-м режиме.

например:

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

Теперь, когда вы это знаете, проблему можно решить следующим образом:

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

С уважением, ScriptMan

...