Текущее время: Чт, июл 24 2025, 07:04

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


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

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


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

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