Текущее время: Вт, июл 29 2025, 15:41

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: лишнии знаки при отправке attachment через SO_DOCUMENT_SEND_API1
СообщениеДобавлено: Чт, мар 04 2010, 14:18 
Специалист
Специалист

Зарегистрирован:
Вт, июл 07 2009, 13:24
Сообщения: 235
Jelena написала:
PDF, DOC, XLS - со всеми работает.


Неподскажите,
1)У Вас нет пробелов в конце текста атачмента при отправке DOC, XLS ?

2)Вы имплементировали какие-нибудь для SO_DOCUMENT_SEND_API1, напрмер

1151258
1430123
936447

если у Вас нет проблемы с пробелами, буду очень признателен, если Вы скинете кусок кода заполнения таблиц атачмента и вызова фунции.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: лишнии знаки при отправке attachment через SO_DOCUMENT_SEND_API1
СообщениеДобавлено: Чт, мар 04 2010, 19:43 
Специалист
Специалист

Зарегистрирован:
Вт, июл 07 2009, 13:24
Сообщения: 235
если применить к lt_attach(тип SO_TEXT255 , char 255 напомню содержит текст файла в бинарном виде ) функцию SO_CONVERT_CONTENTS_BIN (по описание переводит в уникодовый формат)

то для успешного решения проблеммы осталось убрать пробелы из последней строки таблицы lt_attach и посчитать количество символов без пробелов.

но содержание lt_attach состоит из символов типа 䭼"㘴簱十㝼ㄸ㈲籼㈲㈱㤳簷籼籼籼籼 " а пробелы интерпритируются как квадраты ,

1)подскажите пожалуйста как красиво можно убрать пробелы㌵(квадраты) из lt_attach или единственный способ бежать с конца строки и удалять до первого не равного пробелу?

2)и как в данном случаи получить знак пробела (квадрат)〰, есть какой нибудь класс?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: лишнии знаки при отправке attachment через SO_DOCUMENT_SEND_API1
СообщениеДобавлено: Пт, мар 05 2010, 01:43 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Честно говоря, я точно не знаю, принципиальны или нет пробелы в конце файлов DOC/XLS, но полагаю, что если бы двоичные данные как-то манипулировались, то файл бы потом не читался. Кстати, нашла свой собственный код, в котором вообще все вычисления длины файла закомментированы и заменены на [кол-во строк * 255]. И ничего, работает. Вот фрагмент кода - читается DOC файл с сервера и посылается аттачментом к email.

Code:
* Read the file from server
    TRY.
        OPEN DATASET p_file FOR INPUT IN BINARY MODE.
        WHILE sy-subrc = 0.
          READ DATASET p_file INTO itab_objbin.
          APPEND itab_objbin.
        ENDWHILE.
        CLOSE DATASET p_file.
      CATCH cx_sy_file_access_error.
        MESSAGE ...
    ENDTRY.
<...>

* Creating the document to be sent
  DESCRIBE TABLE itab_lines LINES lv_tab_lines.
*  READ TABLE itab_lines INDEX lv_tab_lines.
*  wa_doc_chng-doc_size = ( lv_tab_lines - 1 ) * 255 +
*     STRLEN( itab_lines ).
  wa_doc_chng-doc_size = lv_tab_lines * 255.

* Creating the entry for the compressed document
  CLEAR itab_objpack-transf_bin.
  itab_objpack-head_start = 1.
  itab_objpack-head_num   = 0.
  itab_objpack-body_start = 1.
  itab_objpack-body_num   = lv_tab_lines.
  itab_objpack-doc_type   = 'RAW'.
  APPEND itab_objpack.

* Creating the entry for the compressed attachment
  IF itab_objbin[] IS NOT INITIAL.
    DESCRIBE TABLE itab_objbin LINES lv_tab_lines.
    itab_objhead = 'WorkflowReference.doc'.
    APPEND itab_objhead.
    itab_objpack-transf_bin = 'X'.
    itab_objpack-head_start = 1.
    itab_objpack-head_num   = 1.
    itab_objpack-body_start = 1.
    itab_objpack-body_num   = lv_tab_lines.
    itab_objpack-doc_type   = 'EXT'.
    itab_objpack-obj_name   = 'ATTACHMENT'.
    itab_objpack-obj_descr = 'Workflow Reference'.
    itab_objpack-doc_size   = lv_tab_lines * 255.
    APPEND itab_objpack.
  ENDIF.

* Send the document
  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
      document_data              = wa_doc_chng
      commit_work                = c_yes
    TABLES
      packing_list               = itab_objpack
      object_header              = itab_objhead
      contents_bin               = itab_objbin
      contents_txt               = itab_lines
      receivers                  = itab_reclist
    EXCEPTIONS
      too_many_receivers         = 1
      document_not_sent          = 2
      operation_no_authorization = 4
      OTHERS                     = 99.


У нас SP 18, так что ноты, которые до него, все должны быть. Более поздних скорее всего нет.

Mожет у вас какие-нибудь проблемы из-за Unicode на самом деле? Может и не надо в BINARY MODE читать-то? :?

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


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

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


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

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


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

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