Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => Тема начата: Stas от Май 19, 2009, 01:10:29 pm

Название: DOI Excel OPEN_DOCUMENT_FAILED
Отправлено: Stas от Май 19, 2009, 01:10:29 pm
Привет! Использую DOI для выгрузки в Excel. Проблема возникает только в том случае, если у пользователя висит несохраненный Excel-файл. open_document выдает OPEN_DOCUMENT_FAILED. Может кто сталкивался?
Название: Re: DOI Excel OPEN_DOCUMENT_FAILED
Отправлено: Паганель от Май 19, 2009, 01:20:43 pm
А подробнее можно? Какая FM?
Название: Re: DOI Excel OPEN_DOCUMENT_FAILED
Отправлено: Stas от Май 19, 2009, 01:22:57 pm
Код: You are not allowed to view links. Register or Login
    control->get_document_proxy(
     exporting
       register_container = 'X'
       document_type   = 'Excel.Sheet.8'
       document_format = 'OLE'
     importing
       document_proxy  = proxy
       retcode         = retcode
     ).

    c_oi_errors=>raise_message( 'E' ).

    replace all occurrences of '\' in url with '/'.
    concatenate 'file://' im_path into url.

    "Открываем шаблон в Excel
    proxy->open_document(
      exporting
        no_flush  = 'X'
        document_url = url
        open_inplace = 'X'
      importing
        retcode      = retcode
    ).
    c_oi_errors=>raise_message( 'E' ).
Название: Re: DOI Excel OPEN_DOCUMENT_FAILED
Отправлено: Stas от Май 19, 2009, 01:25:23 pm
Вроде бы все делается по документации. Заметили случайно, на показе))))) Ошибка возникает только если у пользователя открыт какой-нибудь (любой левый) Excel-документ с несохраненными изменениями.
Название: Re: DOI Excel OPEN_DOCUMENT_FAILED
Отправлено: Паганель от Май 19, 2009, 01:31:47 pm
Честно никогда таким образом не работал с Excel, может Uukrul или Dmitriy что-то скажут...

Вы кстати делали по примеру SAPRDEMOEXCELINTEGRATION2, том что в библиотеке REUSE?

Там посмотрите есть методы 
    METHODS: retrieve_document
                 IMPORTING documents TYPE document_list
                 EXPORTING document_format TYPE soi_document_type
                           doc_url TYPE t_url.

    METHODS: close_document
                  IMPORTING do_save         TYPE c DEFAULT ' '
                            value(no_flush) TYPE c DEFAULT ' '
                  EXPORTING error       TYPE REF TO i_oi_error.

Т.е. может попробуете сохранить или закрыть документ перед тем как создавать свой, либо просто выводить сообщение что предыдущий  документ не сохранен .....

Но это все ИМХО, как я сказал с этим не работал.
Название: Re: DOI Excel OPEN_DOCUMENT_FAILED
Отправлено: Uukrul от Май 19, 2009, 04:51:21 pm
Ну если делали по предложенному примеру, то там в нем идет проверка на уже активную OLE инстацию и если такая найдена, то выдается сообщение, правда в 4.6 не очень красивое, сразу отваливается на выход из программы, но у себя можно сделать проверку и если Exel уже активен, то предложить его закрыть для продолжения работы, что Паганель уже и предложил делать.
Название: Re: DOI Excel OPEN_DOCUMENT_FAILED
Отправлено: Stas от Май 20, 2009, 01:47:23 pm
Спасибо за ответы. Видимо, приличное решение сделать не успею. Придется пока обойтись сообщением "Сохраните открытые документы Excel" или что-нибудь в этом духе))))
Название: Re: DOI Excel OPEN_DOCUMENT_FAILED
Отправлено: Uukrul от Май 20, 2009, 02:18:49 pm
You are not allowed to view links. Register or Login
Спасибо за ответы. Видимо, приличное решение сделать не успею. Придется пока обойтись сообщением "Сохраните открытые документы Excel" или что-нибудь в этом духе))))
Скорее всего что приличное решение это напрямую общаться с экселем через OLE. Но думаю в вашем случае, как я понял это демонстрация можно и сообщением обойтись.
Название: Re: DOI Excel OPEN_DOCUMENT_FAILED
Отправлено: Stas от Май 20, 2009, 03:39:37 pm
Да нет. Показ-показом, а отчет продуктивный. Все равно придется искать решение. Видимо придется действительно делать через прямой OLE.
Название: Re: DOI Excel OPEN_DOCUMENT_FAILED
Отправлено: Uukrul от Май 20, 2009, 04:13:58 pm
You are not allowed to view links. Register or Login
Да нет. Показ-показом, а отчет продуктивный. Все равно придется искать решение. Видимо придется действительно делать через прямой OLE.
Я не делал таких вещей, но судя по всему читаем внимательно MSDN в части работы с экселем, там думаю все что надо и еще много чего сверху есть... но думаю будет все это очень муторно  ::)
Название: Re: DOI Excel OPEN_DOCUMENT_FAILED
Отправлено: Паганель от Май 20, 2009, 04:40:53 pm
You are not allowed to view links. Register or Login
Да нет. Показ-показом, а отчет продуктивный. Все равно придется искать решение. Видимо придется действительно делать через прямой OLE.

Ради интереса, можеш скинуть примерчик?