Как автоматически загружать файлы в SAP с помощью VBA

#vba #file #upload

Вопрос:

Мне нужен очень стабильный способ загрузки файлов в SAP с помощью VBA.

Приведенный ниже код работает на некоторых компьютерах, но не работает на других. Он также работал на моем компьютере сразу после новой установки Windows, но через несколько дней не работает. Похоже, что эта проблема вызвана настройками Windows.

Я хотел бы получить некоторую помощь в изменении этого кода или совершенно новом способе загрузки.


 filepath = rng.Offset(0, 20)
If filepath <> "" Then
    Wshell.Run "C:Tempcode.vbs " amp; filepath amp; " " amp; "Open File", 0, False
End If
session.findById("wnd[0]/usr/tabsTAB_MAIN/tabpTSMAIN/ssubSCR_MAIN:SAPLCV110:0102/btnPB_FILE_BROWSER").press
 

<< код.vbs>< код.vbs>>

 set Wshell = CreateObject("WScript.Shell")

Do 
bWindowFound = Wshell.AppActivate(WScript.Arguments(1)) 
WScript.Sleep 2000
Loop Until bWindowFound

Wshell.sendkeys "%n"  'alt   n

Wshell.sendkeys WScript.Arguments(0)
WScript.Sleep 200

Wshell.sendkeys "%o"  'alt   o
WScript.Sleep 200
 

Комментарии:

1. SendKeys известно, что он ненадежен, даже заблокирован на некоторых машинах, поэтому используйте код, который не зависит от пользовательского интерфейса.

2. Пожалуйста, обратите внимание на следующую ссылку: blogs.sap.com/2014/03/26/… Обычно свойство «Показывать собственные диалоговые окна MS Windows» должно быть отключено. Тогда вам придется перезаписать часть сценария на этом этапе и использовать его вместо устаревшей конструкции с помощью клавиш отправки.

3. спасибо за ваш обнадеживающий ответ. Я пытался, но потерпел неудачу, потому что я не знаю подробного способа получения скрипта в диалоговых окнах Show native Microsoft. Можете ли вы объяснить это более подробно?

4. Если вы выполнили рекомендуемую настройку в SAP, вам придется выполнить новую запись сценария, как показано по ссылке: blogs.sap.com/2014/08/04/script-recording-playback-for-dummies Вы также можете получить предложение по этой ссылке: blogs.sap.com/2012/11/19/…