Текущее время: Чт, фев 22 2018, 17:01

Часовой пояс: 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. Сначала выберите имя файла из спула:
Code:
     
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 или нет - вызываете функцию:

Code:
       
    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 должен быть полное имя файла включая путь!
Code:
      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
Олег, спасибо за помощь!
От себя только добавил после конвертации из Х-стринга в бинари обратную конвертацию

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


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


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

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


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

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


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

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