Текущее время: Ср, дек 13 2017, 22:52

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Ошибка при конвертации PDF со спула.
СообщениеДобавлено: Чт, сен 14 2017, 16:41 
Начинающий
Начинающий

Зарегистрирован:
Ср, июл 16 2014, 08:34
Сообщения: 3
Доброго времени суток!
Столкнулся с такой проблемой:
Кадровикам необходимо чтобы приказы автоматически сохранялись c названием определенного формата(ФИО_таб. ном. и т.д.). Приказы формируются в формате PDF.
Был опыт перевода расчетный листов в PDF и передачи для хранения в архив(Все работает). Думал что здесь можно будет сделать по аналогии.
В принципе все работает до этапа открывания файла: PDF формируется в спуле, при помощи ФМ'CONVERT_ABAPSPOOLJOB_2_PDF' и ФМ 'WS_DOWNLOAD' сохраняю файл с тем наименованием, как мне нужно. Но при попытке отрыть файл - ошибка: не удается открыть файл из-за отсутствия в нем страниц.

Может кто сталкивался с такой проблемой или встречал на форуме(сам я не нашёл).

Спасибо!

P.S. Ответ "пусть ручками меняют" не прокатит. Сами предлагали.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при конвертации PDF со спула.
СообщениеДобавлено: Пт, сен 15 2017, 14:32 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, май 19 2010, 16:54
Сообщения: 77
Добрый день, Ильнар!

1. Сначала выберите имя файла из спула:
Код:
     
CALL FUNCTION 'ADS_SR_READ_CONTENT_DIR'
        EXPORTING
          rqident        = lv_spool
        TABLES
          file_list      = file_list
        EXCEPTIONS
          wrong_doctype  = 1
          internal_error = 2
          no_directory   = 3
          OTHERS         = 4.


2. В принципе, большинство ПДФ-ов идут как сингл-парт документы, поэтому достаточно считать из этой таблицы первую запись. В зависимости от того, заканчивается имя file_list-name на .pdf/.pda или нет - вызываете функцию:

Код:
       
    IF pdf_detected = 'X'.
*       Get content of PDF file directly
          CALL FUNCTION 'ADS_SR_READ_CONTENT_TAB'
            EXPORTING
              rqident                     = lv_spool
              partfilename             = file_list-name
            IMPORTING
              filelength                  = infilelength
            TABLES
              content_tab              = content_tab
            EXCEPTIONS
              OTHERS                      = 5.

          CONCATENATE LINES OF content_tab INTO pdf IN BYTE MODE.

        ELSE.

          CALL FUNCTION 'FPCOMP_CREATE_PDF_FROM_SPOOL'
            EXPORTING
              i_spoolid      = lv_spool
              i_partnum      = 1
            IMPORTING
              e_pdf          = pdf
              e_pdf_file     = confile
            EXCEPTIONS
              OTHERS         = 5.

        ENDIF.


3. Конвертируем из Х-стринга в бинари и сохраняем. В lv_file_name должен быть полное имя файла включая путь!
Код:
      CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
        EXPORTING
          buffer = pdf
        IMPORTING
          output_length = lv_length
        TABLES
          binary_tab = lt_data_tab.

      CALL METHOD cl_gui_frontend_services=>gui_download
        EXPORTING
          bin_filesize = lv_length
          filename = lv_file_name
          filetype = 'BIN'
        CHANGING
          data_tab = lt_data_tab[]
        EXCEPTIONS

_________________
F5-F6-F7-F8


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при конвертации PDF со спула.
СообщениеДобавлено: Вт, сен 19 2017, 09:49 
Начинающий
Начинающий

Зарегистрирован:
Ср, июл 16 2014, 08:34
Сообщения: 3
Олег, спасибо за помощь!
От себя только добавил после конвертации из Х-стринга в бинари обратную конвертацию
[code][/
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
EXPORTING
input_length = lv_length
IMPORTING
buffer = pdf
TABLES
binary_tab = l_tab.]

Все заработало.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при конвертации PDF со спула.
СообщениеДобавлено: Вт, сен 19 2017, 09:50 
Начинающий
Начинающий

Зарегистрирован:
Ср, июл 16 2014, 08:34
Сообщения: 3
Олег, спасибо за помощь!
От себя только добавил после конвертации из Х-стринга в бинари обратную конвертацию

Код:
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
      EXPORTING
        input_length = lv_length
      IMPORTING
        buffer       = pdf
      TABLES
        binary_tab   = l_tab.


Все заработало.


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

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


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

Сейчас этот форум просматривают: Google [Bot], Yahoo [Bot] и гости: 10


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

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