Загрузка значений на экране множественного выбора в SAP

Попытка автоматизировать процесс с помощью сценариев SAP-Gui, где необходимо вставить несколько значений на экране множественного выбора в SAP.

введите описание изображения здесь

Я не смогу использовать, paste from clipboard поскольку к тому времени, когда это будет выполнено, содержимое буфера обмена будет изменено. Когда я записываю import from file опция, команда не записывается. Есть ли способ добиться этого?

session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "/nfs10n"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/btn%_SO_BUKRS_%_APP_%-VALU_PUSH").press

'  **The import from file command should go here.**

session.findById("wnd[1]/tbar[0]/btn[24]").press
session.findById("wnd[1]/tbar[0]/btn[8]").press

Я попробовал CopyText команда, но она не работает, как задумано, хотя и не знаю, почему.

Copytext fromFile="myfile.txt" toText="t1"
Copytext fromText="t1" -toclipboard

Есть ли способ достичь этого? Например, чтение файла в буфер обмена перед использованием команды вставки из буфера обмена... В настоящее время существует около 3000 таких позиций, и их циклическое выполнение заставляет скрипт работать долго.

2 ответа

Если опция "Показывать собственные диалоговые окна Microsoft Windows" не активна, сценарий может выглядеть следующим образом:

session.findById("wnd[0]/usr/btn%_S_RECNNR_%_APP_%-VALU_PUSH").press
session.findById("wnd[1]/tbar[0]/btn[23]").press
session.findById("wnd[2]/usr/ctxtDY_PATH").text = "z:\"
session.findById("wnd[2]/usr/ctxtDY_FILENAME").text = "test.txt"
session.findById("wnd[2]/usr/ctxtDY_FILENAME").caretPosition = 8
session.findById("wnd[2]/tbar[0]/btn[0]").press
session.findById("wnd[1]/tbar[0]/btn[8]").press

Решение проблемы в настройках SAP GUI Scripting. Там должны быть отключены / деактивированы все три варианта выбора. Особенно "диалоговое окно Microsoft Windows показывает". Затем вы также можете записать кнопку 23 и оставить кнопку 24 выключенной.

PS Команда "CopyText" происходит от GuiXT и не может быть легко применена в сценарии VB.

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

Другие вопросы по тегам