Текущее время: Пт, мар 29 2024, 00:57

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




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Печать в смартформе рисунка, сохраненного в аттачменте
СообщениеДобавлено: Вт, авг 25 2009, 11:21 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, авг 24 2009, 14:03
Сообщения: 1
Откуда: Минск
Пол: Женский
Привет всем!
Клиенты поставили следующую задачу:
есть Quality Notification, для которого они сохраняют рисунки в аттачменте, через стандартные функции. Далее при печати смартформы эти рисунки должны также распечатываться.

Моя задача состоит на основе номера QN найти загруженные картинки, сохранить их на сервер смартформ\сапскриптов (стандартно при наличии картинки на презентационном сервере реализовывается с помощью SE78) и вывод на печать.
С помощью таблицы SRGBTBREL и FM "SO_OBJECT_READ" я нахожу и вычитываю название картинки, также там есть информация о папке и объекте, но в виде:
FOLTP FOLYR FOLNO DOCTP DOCYR DOCNO
FOL 31 000000000004 EXT 34 000000000107

Может кто знает, с помощью каких функций можно вычитать содержимое картинкив в BIN-виде или как можно перевести цифры папки в физический путь? Либо кто-то знает какими функциями можно сразу сохранить картинку на сервере смартформ из аттачмента?

Заранее всем спасибо за ответы.

_________________
Все, что ни делается, делается к лучшему, даже если счас все выглядит наоборот!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Печать в смартформе рисунка, сохраненного в аттачменте
СообщениеДобавлено: Чт, ноя 12 2009, 16:05 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Очень у меня "свежий" ответ получится :)
Пример получения бинарников приложений из сообщений по качеству.
Code:
DATA: l_objectid TYPE bapiborid,
      lt_relat TYPE TABLE OF bapirellk WITH HEADER LINE,
      l_objdisp TYPE sood2,
      lt_objcont TYPE TABLE OF soli,
      lt_context LIKE sdokpropty OCCURS 0 WITH HEADER LINE,
      loio_object LIKE sdokobject,
      phio_object LIKE sdokobject,
      lt_binary_content TYPE TABLE OF sdokcntbin,
      xfile TYPE xstring,
      xfilename TYPE string.
DATA: xlen TYPE i.

PARAMETERS: p_qmnum LIKE qmel-qmnum.

START-OF-SELECTION.
  l_objectid-objkey = p_qmnum.
  l_objectid-objtype = 'BUS2080'.

  CALL FUNCTION 'BAPI_REL_GETRELATIONS'
    EXPORTING
      objectid        = l_objectid
    TABLES
      listofrelations = lt_relat[].

  LOOP AT lt_relat.
    REFRESH lt_objcont.
    CALL FUNCTION 'SO_OBJECT_READ'
      EXPORTING
        folder_id         = lt_relat-objkey_b(17)
        object_id         = lt_relat-objkey_b+17(17)
      IMPORTING
        object_hd_display = l_objdisp
      TABLES
        objcont           = lt_objcont
      EXCEPTIONS
        OTHERS            = 15.

    TRANSLATE l_objdisp-file_ext TO UPPER CASE.
    CALL FUNCTION 'SO_KPRO_DATA_FROM_OBJCONT_GET'
      IMPORTING
        loio_object       = loio_object
      TABLES
        objcont           = lt_objcont
        context           = lt_context
      EXCEPTIONS
        missing_kpro_data = 1
        OTHERS            = 2.

    CALL FUNCTION 'SO_LOIO_PHIO_GET'
      EXPORTING
        loio_object        = loio_object
      IMPORTING
        phio_object        = phio_object
      EXCEPTIONS
        kpro_inconsistency = 1
        x_error            = 2
        OTHERS             = 3.

    CALL FUNCTION 'SDOK_PHIO_LOAD_CONTENT'
      EXPORTING
        object_id           = phio_object
      TABLES
        file_content_binary = lt_binary_content
      EXCEPTIONS
        not_existing        = 1
        not_authorized      = 2
        no_content          = 3
        bad_storage_type    = 4
        OTHERS              = 5.

    xlen = l_objdisp-objlen.
    CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
      EXPORTING
        input_length = xlen
      IMPORTING
        buffer       = xfile
      TABLES
        binary_tab   = lt_binary_content
      EXCEPTIONS
        failed       = 1
        OTHERS       = 2.

  ENDLOOP.

Дальше хорошо только на Adobe Forms ложится - бинарник в интерфейс закидывается, а там биндинг на изображение.
Со смартформами простого пути не нашел. Можно попробовать конечно сперва выгружать на клиент, а потом пакетником на SE78 загружать...


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

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


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

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


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

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