2013-04-23 1 views
3

Я пытаюсь открыть защищенный паролем Excel файл с помощью SAP ABAP OLE OBJECT следующим образом:ABAP OLE - Open Excel защищенный паролем книги

DATA: lt_excel_line(4096) OCCURS 10 WITH HEADER LINE. 
DATA: app  TYPE ole2_object, 
     workbook TYPE ole2_object, 
     worksheet TYPE ole2_object. 

CREATE OBJECT app 'EXCEL.APPLICATION'. 
SET PROPERTY OF app 'VISIBLE' = 0. 

CALL METHOD OF app 'WORKBOOKS' = workbook. 

CALL METHOD OF workbook 'OPEN' 
    EXPORTING 
    #1 = '<filename>' 
    #5 = '<password>'.   

Имя файла и пароль, безусловно, правильно и открывает следующий код VBA файл по мере необходимости без проблем:

Dim wb1 As Workbook 
Set wb1 = Workbooks.Open Filename:="<filename>", Password:="<password>") 

Но код ABAP всегда возвращает SY-subrc = 2. Кто знает, что может быть происходит? Или что еще я могу попробовать? Благодарен за любую помощь.

ответ

2

Я думаю, проблема заключается в том, что параметры являются только позиционными (просто догадка), поскольку автоматизация SAP GUI не поддерживает имена параметров. Существует 3 параметра между Filename и Password, поэтому вы правильно их пронумеровали, но я думаю, что контроллер автоматизации SAP GUI не видит этого.

Я реплицировать вашу проблему и получил это работает следующим образом:

CALL METHOD OF workbook 'OPEN' = document 
    EXPORTING 
    #1 = '<filename>' 
    #2 = 0    "UpdateLinks 
    #3 = 0    "ReadOnly 
    #4 = 1    "Format 
    #5 = '<password>'. 

Здесь я явно передавая параметры UpdateLinks, ReadOnly и Format.

Я проверил его сначала в VBA. Кажется Format (# 4) должно быть установлено равным true. Я не знаю, что это делает.

Не забудьте установить дескриптор документа в качестве возврата от этого вызова, как я делаю здесь, в противном случае у вас нет ссылки на него!

+0

Кажется причудливым, что он не распознает позицию по номеру, но это действительно работает - большое спасибо! Помечено решено – db579

 Смежные вопросы

  • Нет связанных вопросов^_^