Загрузка значений на экране множественного выбора в 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