Текущее время: Пт, июл 25 2025, 05:37

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Преобразовать файл из BINARY в SOLI (CHAR 255)
СообщениеДобавлено: Вт, ноя 15 2011, 22:32 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Пытаюсь заставить работать свою старую программу по аттачиванию файла через GOS. GOS часть работает, но файл не открывается. Проблема похоже при преобразовании файла (PDF или XML) в таблицу типа SOLI (CHAR 255), которая используется в SO_OBJECT_INSERT. B новой системе единственное отличие, что тут Unix, ну и SP/EHP уже уровнем повыше (обе системы - ECC).

В оригинале OPEN DATASET читал файл напрямую в табличку типа SOLI (иногда нужно было SO_CONVERT_CONTENTS_BIN воспользоваться), все работало. А тут почему-то на выходе примерно половина файла теряется (при просмотре XML хорошо видно, как текст "обрублен"). По совету с SDN попробовала READ DATASET в XSTRING - читается все правильно, в дебаггере XML source отлично видно, но как только начинаешь преобразовывать в CHAR формат - та же ерунда.

Программа должна читать PDF и XML файлы, пока с обоими та же проблема. Перепробовала с десяток разных ФМ и методов (пробовала и переводить сначала в RAW/SOLIX) - результат тот же или хуже. :( Как приаттачить этот monkey trucker файл?

Kод (с сокращениями):
Code:
DATA: lv_xstring TYPE xstring,
        it_content LIKE STANDARD TABLE OF soli.

OPEN DATASET lv_pathname FOR INPUT IN BINARY MODE.
READ DATASET lv_pathname INTO lv_xstring.
CLOSE DATASET lv_pathname.

* Тут lv_xstring надо как-то перевести в  it_content[].

    CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'
      EXPORTING
        region    = 'B'
      IMPORTING
        folder_id = ls_fol_id
      EXCEPTIONS
        OTHERS    = 1.

    CALL FUNCTION 'SO_OBJECT_INSERT'
      EXPORTING
        folder_id             = ls_fol_id
        object_type           = 'EXT'
        object_hd_change      = ls_obj_data
      IMPORTING
        object_id             = ls_obj_id
      TABLES
        objhead               = it_objhead
        objcont               = it_content.

<...>

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразовать файл из BINARY в SOLI (CHAR 255)  Тема решена
СообщениеДобавлено: Ср, ноя 16 2011, 08:58 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, фев 17 2006, 07:38
Сообщения: 99
Попробуйте использовать вызов ФМ SO_DOC_INSERT_WITH_ORIG_API1, там есть таблица CONTENTS_HEX с типом SOLIX, у меня работает.
Возможно ваши файлы портятся из-за преобразования кодировок при загрузке, у меня была подобная проблема, решил её загрузкой данных в таблицу с типом SOLIX.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразовать файл из BINARY в SOLI (CHAR 255)
СообщениеДобавлено: Ср, ноя 16 2011, 22:25 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Ура, заработало! После чтения файла вставила CALL METHOD cl_document_bcs=>xstring_to_solix, а потом SO_DOCUMENT_INSERT_API1 вместо SO_OBJECT_INSERT.

Спасибо большое!

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


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

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


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

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


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

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