Текущее время: Пн, июл 21 2025, 02:07

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Открыть документ из SOOD во внешнем приложении
СообщениеДобавлено: Вс, дек 01 2013, 12:59 
Начинающий
Начинающий

Зарегистрирован:
Ср, апр 10 2013, 09:59
Сообщения: 6
Необходимо открыть документы во внешнем приложении (в моем случае - это файлы txt) из таблички SOOD.. может быть есть ФМ какой-нибудь? перерыл множество форумов, но так и не нашел пока информации, как можно это реализовать..


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Открыть документ из SOOD во внешнем приложении
СообщениеДобавлено: Вс, дек 01 2013, 17:56 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Общий подход к таком случае - выгрузить файл на компьютер пользователя и вручную запустить нужное приложение, передав ему путь к выгруженному файлу (при помощи, например, WS_EXECUTE или GUI_EXEC).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Открыть документ из SOOD во внешнем приложении
СообщениеДобавлено: Вс, дек 01 2013, 23:27 
Начинающий
Начинающий

Зарегистрирован:
Ср, апр 10 2013, 09:59
Сообщения: 6
А например открывать документ во внешнем приложении по клику в алв таблице без его выгрузки на компьютер.. возможно ли это реализовать?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Открыть документ из SOOD во внешнем приложении
СообщениеДобавлено: Пн, дек 02 2013, 08:40 
Специалист
Специалист

Зарегистрирован:
Чт, дек 16 2010, 15:23
Сообщения: 133
Откуда: Набережные Челны
Пол: Мужской
Ну тогда выгружайте на сервер приложений, расшарьте папку и передавайте в приложение сетевой путь.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Открыть документ из SOOD во внешнем приложении
СообщениеДобавлено: Пн, дек 02 2013, 12:29 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Чтобы внешнее (т.е. локальное на компьютере пользователя) приложение открыло документ (файл) оно должно его как-то получить. Варианта 2: либо скачать файл, либо запустить приложение и скормить ему каким-либо образом поток байт нашего файла. Второе умеют немногие приложения. В частности можно передать ссылку (http или smb, не суть). Но это же сложнее.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Открыть документ из SOOD во внешнем приложении
СообщениеДобавлено: Чт, дек 05 2013, 16:34 
Начинающий
Начинающий

Зарегистрирован:
Ср, апр 10 2013, 09:59
Сообщения: 6
По ключу состоящему из 3х полей в таблице sood я нашел 2 записи в таблице sofm, после этого открыл ракурс sofm/sood и оказалось, что это и есть 2 файла прикрепленных к документу..У каждого из файлов есть свой ключ тоже состоящий из 3х полей в таблице sofm.
Теперь имея 2 ключа(один из sood, второй из sofm), я выгрузил файлы и открыл во внешнем приложении с помощью фм SO_DOCUMENTS_MANAGER

выглядит это примерно так:
Code:
data ls_v_sofc type v_sofc.
  select single foltp folyr folno doctp docyr docno from v_sofc into corresponding fields of ls_v_sofc
    where foltp = objtp
      and folyr = objyr
      and folno = objno.

  data lt_docs type table of sood4.
  data ls_docs like line of lt_docs.
  ls_docs-objtp = ls_v_sofc-foltp.
  ls_docs-objyr = ls_v_sofc-folyr.
  ls_docs-objno = ls_v_sofc-folno.
  ls_docs-atttp = ls_v_sofc-doctp.
  ls_docs-attyr = ls_v_sofc-docyr.
  ls_docs-attno = ls_v_sofc-docno.
  append ls_docs to lt_docs.
  call function 'SO_DOCUMENTS_MANAGER'
    exporting
      activity  = 'DISP'
    tables
      documents = lt_docs.


p.s. Может кому то поможет :wink:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Открыть документ из SOOD во внешнем приложении
СообщениеДобавлено: Сб, дек 28 2013, 22:42 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
С помощью класса cl_gui_html_viewer можно показать практически любой контент из SOOD, главное озаботиться хранением mime-типа.
Фрагмент работающего кода:
Code:
  DATA: lt_solix TYPE TABLE OF solix,
        ls_document_data TYPE sofolenti1,

        lt_data TYPE srt_abuf_transport_tab,
        l_size TYPE i,

        l_url TYPE text1024.

  CALL FUNCTION 'SO_DOCUMENT_READ_API1'
    EXPORTING
      document_id                = i_doc_id
    IMPORTING
      document_data              = ls_document_data
    TABLES
      contents_hex               = lt_solix
    EXCEPTIONS
      document_id_not_exist      = 1
      operation_no_authorization = 2
      x_error                    = 3
      OTHERS                     = 4.

  IF sy-subrc <> 0.
  ENDIF.

  DATA: content_viewer TYPE REF TO cl_gui_html_viewer.

  CREATE OBJECT content_viewer
    EXPORTING
      parent = cl_gui_container=>screen0.
*      parent = cl_gui_container=>desktop.

  IF content_viewer IS BOUND.
    l_size = ls_document_data-doc_size.
    content_viewer->load_data(
      EXPORTING
        type         = i_mime_type                          "#EC NOTEXT
        subtype      = space
        size         = l_size
      IMPORTING
        assigned_url = l_url
      CHANGING
        data_table   = lt_solix
      EXCEPTIONS
        OTHERS       = 1
    ).

    IF sy-subrc = 0 AND NOT l_url IS INITIAL.
      content_viewer->show_url(
        EXPORTING
          url = l_url
          frame    = space
          in_place = space
        EXCEPTIONS
          OTHERS   = 0
      ).
    ENDIF.

    CALL METHOD content_viewer->set_visible
      EXPORTING
        visible = cl_gui_control=>visible_false.

    CALL METHOD content_viewer->free.
  ENDIF.



_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB