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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: форматирование в 'SO_DOCUMENT_SEND_API1'
СообщениеДобавлено: Пн, окт 19 2009, 17:48 
Начинающий
Начинающий

Зарегистрирован:
Пт, май 16 2008, 14:48
Сообщения: 24
Откуда: Питер
Пол: Женский
Отправляется письмо в pdf-формате с помощью 'SO_DOCUMENT_SEND_API1'. Нужно изменить шрифт и размер. Прочитала документацию, но так и не поняла, где это делается. Подскажите, пожалуйста.

Параметр contents_txt - это просто текст, там формат не передается..



Code:
FUNCTION z***.
************************************************************************
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(IV_NAME) TYPE  TDOBNAME
*"     VALUE(IV_MAILADDRESS) TYPE  SO_RECNAME
*"     VALUE(IV_TITLE) TYPE  SO_OBJ_DES OPTIONAL
*"     VALUE(IV_VAR1) TYPE  STRING OPTIONAL
*"     VALUE(IV_VAR2) TYPE  STRING OPTIONAL
*"     VALUE(IV_VAR3) TYPE  STRING OPTIONAL
*"     VALUE(IV_VAR4) TYPE  STRING OPTIONAL
*"     VALUE(IV_VAR5) TYPE  STRING OPTIONAL
*"     VALUE(IV_VAR6) TYPE  STRING OPTIONAL
*"     VALUE(IV_VAR7) TYPE  STRING OPTIONAL
*"     VALUE(IV_VAR8) TYPE  STRING OPTIONAL
*"     VALUE(IV_VAR9) TYPE  STRING OPTIONAL
*"     VALUE(IT_VARTAB) TYPE  SRMTTSTRING OPTIONAL
*"  EXPORTING
*"     VALUE(EV_SENT_ALL) TYPE  XFELD

DATA:
         lt_packing_list TYPE TABLE OF sopcklsti1,
         ls_packing_list LIKE LINE OF lt_packing_list,
         lt_receivers    TYPE TABLE OF somlreci1,
         ls_receivers    LIKE LINE OF lt_receivers,
         ls_doc_data     TYPE sodocchgi1,
         lv_mtitle       TYPE so_obj_des,
         lt_message      LIKE solisti1   OCCURS 10 WITH HEADER LINE,
         lv_tab_lines    TYPE i,
         ls_message      LIKE LINE OF lt_message,
         lt_lines        TYPE TABLE OF tline,
         ls_lines        LIKE LINE OF lt_lines,
         lv_string       TYPE string,
         lv_switch       TYPE char1.
***
  lv_mtitle = iv_title.

* Bodytext ist als Standardtext SO10 abgelegt
  CALL FUNCTION 'READ_TEXT'
    EXPORTING
      id                      = 'ST'
      language                = sy-langu
      name                    = iv_name
      object                  = 'TEXT'
    TABLES
      lines                   = lt_lines
    EXCEPTIONS
      id                      = 1
      language                = 2
      name                    = 3
      not_found               = 4
      object                  = 5
      reference_check         = 6
      wrong_access_to_archive = 7
      OTHERS                  = 8.

  CASE sy-subrc.
    WHEN 0.
      CLEAR: lv_switch.
      LOOP AT lt_lines INTO ls_lines.
        IF ls_lines-tdline = '&Table'.
          LOOP AT it_vartab INTO lv_string.
            CLEAR: ls_lines-tdline.
            ls_lines-tdline = lv_string.
            lt_message = ls_lines.
            APPEND lt_message.
          ENDLOOP.
        ELSE.
          lv_string = ls_lines-tdline.
          REPLACE '&VAR1' WITH iv_var1 INTO lv_string.
          REPLACE '&VAR2' WITH iv_var2 INTO lv_string.
          REPLACE '&VAR3' WITH iv_var3 INTO lv_string.
          REPLACE '&VAR4' WITH iv_var4 INTO lv_string.
          REPLACE '&VAR5' WITH iv_var5 INTO lv_string.
          REPLACE '&VAR6' WITH iv_var6 INTO lv_string.
          REPLACE '&VAR7' WITH iv_var7 INTO lv_string.
          REPLACE '&VAR8' WITH iv_var8 INTO lv_string.
          REPLACE '&VAR9' WITH iv_var9 INTO lv_string.
          ls_lines-tdline = lv_string.
          lt_message      = ls_lines.
          APPEND lt_message.
        ENDIF.
      ENDLOOP.
    WHEN OTHERS.
      CONCATENATE text-001 iv_name text-002 INTO ls_message.
      APPEND ls_message TO lt_message.
  ENDCASE.
* Aufbereitung für Packinglist
  DESCRIBE TABLE lt_message LINES lv_tab_lines.
  READ     TABLE lt_message INDEX lv_tab_lines.

* Fill the document data.
  ls_doc_data-doc_size = ( lv_tab_lines - 1 ) * 255 + STRLEN( lt_message ).
* Populate the subject/generic message attributes
  ls_doc_data-obj_langu  = sy-langu.
  ls_doc_data-obj_name   = iv_name.
  ls_doc_data-obj_descr  = lv_mtitle.
  ls_doc_data-sensitivty = 'F'.

* Write Packing List (Main)
  CLEAR: ls_packing_list, lt_packing_list[].

  ls_packing_list-transf_bin = space.
  ls_packing_list-head_start = 1.
  ls_packing_list-head_num   = 0.
  ls_packing_list-body_start = 1.
  ls_packing_list-body_num   = lv_tab_lines. "Bodytext
  ls_packing_list-doc_type   = 'SCR'.
  APPEND  ls_packing_list TO lt_packing_list.

* Empfänger
  CLEAR: ls_receivers, lt_receivers[].
  ls_receivers-receiver   = iv_mailaddress.
  ls_receivers-rec_type   = 'U'.
  ls_receivers-com_type   = 'INT'.
*  ls_receivers-notif_del  = 'X'.
*  ls_receivers-notif_ndel = 'X'.
  APPEND ls_receivers TO lt_receivers.

* EMail versenden
  CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
    EXPORTING
      document_data              = ls_doc_data
      commit_work                = 'X'
    IMPORTING
      sent_to_all                = ev_sent_all
    TABLES
      packing_list               = lt_packing_list
      contents_txt               = lt_message
      receivers                  = lt_receivers
    EXCEPTIONS
      too_many_receivers         = 1
      document_not_sent          = 2
      document_type_not_exist    = 3
      operation_no_authorization = 4
      parameter_error            = 5
      x_error                    = 6
      enqueue_error              = 7
      OTHERS                     = 8.

  IF sy-subrc > 0.
    CLEAR: ev_sent_all.
  ENDIF.
*
ENDFUNCTION.



Пономарев Артем: пользуйтесь тэгами для оформления кода, пожалуйста.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: форматирование в 'SO_DOCUMENT_SEND_API1'
СообщениеДобавлено: Пн, окт 19 2009, 19:45 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Используйте тэги для кода, пожалуйста. При беглом просмотре не совсем понятно, как в приведенном примере PDF получается на выходе, но, поскольку используется READ_TEXT, полагаю, что надо форматировать соответствующий текст в транзакции SO10.

А в целом вопрос отсылки всего чего по email уже обсуждался и здесь, и на SDN несчетное количество раз - поищите.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: форматирование в 'SO_DOCUMENT_SEND_API1'
СообщениеДобавлено: Вт, окт 20 2009, 15:34 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, окт 31 2008, 15:58
Сообщения: 70
Добрый день.

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

Т.е. если вы сформируете html, и там тегами пропишите все, что Вам нужно и потом все в тело письма, например. Но Вам нужно PDF.

Поэтому как вариант, сделать pdf форму, туда передать нужный Вам текст, вывести его в спул и прикрепить.

_________________
С Уважением, Абрамов Виктор.
The devil is in the detail.


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

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


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

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


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

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