Как получить текст имени файла из вложения в PR в SAP

Я хочу получить имя файла из вложения внутри заявки на покупку в SAP с помощью VBA.

Я уже пытался изменить последнюю строку для некоторых случайных чисел, но ничего не произошло, и я не могу найти, где я могу получить имя файла.

session.findByid("wnd[0]/usr/subSUB0:SAPLMEGUI:0010/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:3212/cntlGRIDCONTROL/shellcont/shell").pressToolbarButton "&MEREQDMS"

'here my code tells me if there are any attachment in purchase requisition item
doc = session.findByid("wnd[1]/usr/tblSAPLCVOBTCTRL_DOKUMENTE/ctxtDRAW-DOKNR[1,0]").Text

'starts on item line (0)    
n = 0

    Do While doc <> ""

    session.findByid("wnd[1]/usr/tblSAPLCVOBTCTRL_DOKUMENTE/ctxtDRAW-DOKNR[1," & n & "]").SetFocus
    session.findByid("wnd[1]/usr/tblSAPLCVOBTCTRL_DOKUMENTE/ctxtDRAW-DOKNR[1," & n & "]").caretPosition = 5


'opens the attachment page with the documents inside for download
    session.findByid("wnd[1]").sendVKey 2

    Application.AutomationSecurity = msoAutomationSecurityForceDisable
    Application.AutomationSecurity = msoAutomationSecurityByUI


        q = 1
        s = 0

'num_files returns me "PDF" or "XLS".
        num_files = session.findByid("wnd[0]/usr/tabsTAB_MAIN/tabpTSMAIN/ssubSCR_MAIN:SAPLCV110:0102/cntlCTL_FILES1/shellcont/shell/shellcont[1]/shell").getnodetextbypath(q)

...

Вот файл с именем файла, которое мне нужно, VBA сообщает мне ("Escopo Plataforma..."):

вложение DMS


person Fiinguer    schedule 08.08.2019    source источник
comment
спасибо за редактирование, я новичок, публикуя вопросы.   -  person Fiinguer    schedule 08.08.2019
comment
Любая помощь? Я не знаю, что делать...   -  person Fiinguer    schedule 09.08.2019


Ответы (1)


Пожалуйста, попробуйте следующее.

Например:

...
'num_files returns me "PDF" or "XLS".
num_files = session.findByid("wnd[0]/usr/tabsTAB_MAIN/tabpTSMAIN/ssubSCR_MAIN:SAPLCV110:0102/cntlCTL_FILES1/shellcont/shell/shellcont[1]/shell").getnodetextbypath(q)

myFileName = session.findByid("wnd[0]/usr/tabsTAB_MAIN/tabpTSMAIN/ssubSCR_MAIN:SAPLCV110:0102/cntlCTL_FILES1/shellcont/shell/shellcont[1]/shell").getitemtext(CStr(q),"C          7")

Я предполагаю, что название элемента "C 7" будет другим для вас. Вот как вы определяете правильное ItemName:

  1. Запишите сценарий с помощью средства записи сценариев SAP GUI.
  2. Щелкните мышкой в ​​столбце с именем файла.
  3. Оставьте курсор там и закончите запись.
  4. Найдите в записанном скрипте имя элемента.

С уважением, Скриптмен.

person ScriptMan    schedule 12.08.2019