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

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


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

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


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

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