Текущее время: Ср, июл 30 2025, 09:43

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Ahrefs [Bot]


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

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