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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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