Отправляется письмо в 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.
Пономарев Артем: пользуйтесь тэгами для оформления кода, пожалуйста.