Текущее время: Вс, июл 27 2025, 22:03

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: SO_NEW_DOCUMENT_ATT_SEND_API1 & Charset
СообщениеДобавлено: Пн, июл 21 2008, 16:17 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
Добрый День!

подскажите плиз, где можно выставить свой Charset в сообщении отправляемым через SO_NEW_DOCUMENT_ATT_SEND_API1.
сейчас по умолчанию во всех письмах проставляется по умолчанию
Content-Type: TEXT/HTML; Charset="ISO-8859-1"

хочется иметь windows-1251 для русских символов.

Подозреваю что возможно в параметре object_header
но мануала что то не нашел. , явные строчки в эту таблицу тоже результата не дали.

Спасибо!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 21 2008, 20:00 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Документация к ФМ есть на английском. Посмотрите здесь еще:
http://sapboard.ru/forum/viewtopic.php ... 7cd4dcbc08

Явного параметра для charset у этого ФМ нет. Вполне возможно, что это настраивается вообще где-то на уровне взаимодействия SAP с mail server. Впрочем могу и ошибаться...

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 22 2008, 07:57 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
мануал к ФМ у я читал. ни чего конкретного там вроде бы нету.
либо я смотрел сквозь строки :) примеры во всех местах в основном описывают как присоединить определенный аттачмент или html.

что касается настройки, то думал об этом. но смущает тот факт. что если это настройка то для всех писем кодировка будет одинаковой. а как же интернациональные системы с кучей стран и соответственно с кучей языков. хотя не удивлюсь что это так и есть. в любом случае если кто знает где это настраивается скиньте плиз. хотя вероятно это уже впорос к базису.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 22 2008, 10:32 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, дек 06 2005, 11:22
Сообщения: 72
Откуда: Krivoy Rog
Прошу прошенье за неотформатированный код..., времени мало, это подпрограмма отправки почты с необходимым вам перекодированьем :
Code:
FORM SEND_MAIL .

  IF SY-BATCH = 'X'.
*     NEW-PAGE PRINT ON KEEP IN SPOOL 'X'.
  ENDIF.
  DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
  DATA: OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.
  DATA: OBJBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
  DATA: OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
  DATA: RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.
*  DATA: CONTENTS_HEX LIKE SOLIX OCCURS 5 WITH HEADER LINE.
  DATA: DOC_CHNG LIKE SODOCCHGI1.
  DATA: TAB_LINES LIKE SY-TABIX.

  DATA converter TYPE REF TO cl_abap_conv_obj.

  CREATE OBJECT converter
    EXPORTING outcode  = '1504'.



  OBJTXT = 'Результат виконання звіту Наявність працівників, дивитись доданий файл  '.
  APPEND OBJTXT.
  DESCRIBE TABLE OBJTXT LINES TAB_LINES.
  READ TABLE OBJTXT INDEX TAB_LINES.
  DOC_CHNG-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJTXT ).
  DOC_CHNG-OBJ_NAME = 'Звіт'.
  DOC_CHNG-OBJ_DESCR = 'Звіт Середньооблікова кількість, виконаний'.

* * ERSTELLEN DES EINTRAGS ZUM KOMPRIMIERTEN DOKUMENT
  CLEAR OBJPACK-TRANSF_BIN.
  OBJPACK-HEAD_START = 1.
  OBJPACK-HEAD_NUM = 0.
  OBJPACK-BODY_START = 1.
  OBJPACK-BODY_NUM = TAB_LINES.
  OBJPACK-OBJ_LANGU = SY-LANGU .
  OBJPACK-DOC_TYPE = 'HTM'.
  APPEND OBJPACK.
* * ERSTELLEN DER ANLAGE F#R DAS DOKUMENT

  OBJBIN = '<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET=WINDOWS-1251">' .
  APPEND OBJBIN .
***Формирование таблицы для вложения
  LOOP AT i_doctable .

    DO  .
      IF STRLEN( i_doctable-cur_line ) > 0  .
        " метод дающий жизнь   конвертить строку в правильную кодировку 1504
        CALL METHOD converter->convert
          EXPORTING
            inbuff    = i_doctable-cur_line(255)
            outbuffLG = ''
          IMPORTING
            outbuff   = OBJBIN-line.

*        CONTENTS_BIN-line = i_doctable-cur_line(255) .
        APPEND OBJBIN .
        SHIFT i_doctable-cur_line BY 255 PLACES .
      ELSE.
        EXIT .
      ENDIF.
    ENDDO.
  ENDLOOP.


  DESCRIBE TABLE OBJBIN LINES TAB_LINES.
  OBJHEAD = 'HR_DOC.html'. APPEND OBJHEAD.

  OBJPACK-TRANSF_BIN = 'X'.
  OBJPACK-HEAD_START = 1.
  OBJPACK-HEAD_NUM = 1.
  OBJPACK-BODY_START = 1.
  OBJPACK-BODY_NUM = TAB_LINES.
  OBJPACK-DOC_TYPE = 'HTML'.
  OBJPACK-OBJ_NAME = 'ANLAGE'.
  OBJPACK-OBJ_DESCR = 'Звіт Середньооблікова кількість штатних та позаштатних посад працівників.'.
  OBJPACK-DOC_SIZE = TAB_LINES * 255 .
  APPEND OBJPACK.
* * F?llen der Empf#ngerliste
  RECLIST-RECEIVER = SY-UNAME.
  RECLIST-REC_TYPE = 'B'.
  RECLIST-EXPRESS = 'X' .
  APPEND RECLIST.
* * Versenden des Dokuments
  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
      DOCUMENT_DATA              = DOC_CHNG
*      PUT_IN_OUTBOX              = 'X'
    TABLES
      PACKING_LIST               = OBJPACK
      OBJECT_HEADER              = OBJHEAD
      CONTENTS_BIN               = OBJBIN
      CONTENTS_TXT               = OBJTXT
      RECEIVERS                  = RECLIST
    EXCEPTIONS
      TOO_MANY_RECEIVERS         = 1
      DOCUMENT_NOT_SENT          = 2
      OPERATION_NO_AUTHORIZATION = 4
      OTHERS                     = 99.

ENDFORM. "SEND_MAIL


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 22 2008, 10:44 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
Спасибо, но из того что я вижу здесь
1) сообщение с уже сформированным HTML в нужной кодировке
2) сам текст перекодирован в windows-1251

и это даже прочитается нормально в почтовом клиенте (не уверен что во всех).

НО!!
в системном заголовке почтового сообщения все равно будет писаться

Content-Type: TEXT/PLAIN; Charset="ISO-8859-1"
+
Content-Type: "TEXT/HTML; Charset="windows-1251""

и не факт что почтовый клиент клиент по умолчанию будет читать в кодировке указанный для HTML.
+ тема сообщения явно будет пытаться прочитать в ISO-8859-1

хотя если явно в почтовом клиенте установить кодировку для прочтения win-1251 то да все будет красиво.


p.s. все это дело усогубляется версией не unicode 4.6С ;((


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 22 2008, 10:48 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, дек 06 2005, 11:22
Сообщения: 72
Откуда: Krivoy Rog
Дело в том что в моем случае при отправки текста, кодировка 1251, а сама ситема имеет кодировку 1504, для перекодирования использовался метод :
" метод дающий жизнь конвертить строку в правильную кодировку 1504
CALL METHOD converter->convert
EXPORTING
inbuff = i_doctable-cur_line(255)
outbuffLG = ''
IMPORTING
outbuff = OBJBIN-line.

Может вам это чем-то поможет, или я немного не пойму сути.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 22 2008, 10:53 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
SergiK написал(а):
Дело в том что в моем случае при отправки текста, кодировка 1251, а сама ситема имеет кодировку 1504, для перекодирования использовался метод :
" метод дающий жизнь конвертить строку в правильную кодировку 1504
CALL METHOD converter->convert
EXPORTING
inbuff = i_doctable-cur_line(255)
outbuffLG = ''
IMPORTING
outbuff = OBJBIN-line.

Может вам это чем-то поможет, или я немного не пойму сути.



переконвертировать сам текст не проблема.
проблема указать в системном заголовке отправляемого письма что письмо в указанной кодировке.
т.е. не важно в какой реально кодировки текст письма, система всегда по умолчанию ставит в системном поле получаемого письма:

Content-Type: Charset="ISO-8859-1"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 22 2008, 19:11 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Pokusannoe_Zubilo написал:
p.s. все это дело усогубляется версией не unicode 4.6С ;((


Думаю как раз в этом и есть причина ваших затруднений. :?

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


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

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


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

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


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

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