+ Sapforum.Biz » Инструменты » ABAP - Инструментальные средства » SE38 - ABAP Редактор (Модератор: Dmitriy)Тема:
|- Прмер отправки SmarForms как аттачмента в виде PDF файла




Автор Тема: Прмер отправки SmarForms как аттачмента в виде PDF файла  (Прочитано 1841 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 674
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Код: You are not allowed to view links. Register or Login
DATA: lv_fm_name        TYPE rs38l_fnam, "SmartForm name
      ls_control_param  TYPE ssfctrlop,  "Control paramters
      ls_output_options TYPE ssfcompop.  "Output options

*     Data for email smart form:
DATA: lv_ip_mailaddr  TYPE so_name,      "Address of a Mail Recipient
      lv_ip_type_id   TYPE so_escape,    "Recipient type
      ls_recipient_id TYPE swotobjid,    "Structure for recvr obj ID
      ls_sender_id    TYPE swotobjid.    "Structure for sender obj id


CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
  EXPORTING
    formname           = 'SamrtFormName'
  IMPORTING
    fm_name            = lv_fm_name
  EXCEPTIONS
    no_form            = 1
    no_function_module = 2
    OTHERS             = 3.

lv_ip_mailaddr = 'xxx@sapforum.biz'.  "E-mail
lv_ip_type_id  = 'U'.                 "External address

* Create recipient object
CALL FUNCTION 'CREATE_RECIPIENT_OBJ_PPF'
  EXPORTING
    ip_mailaddr       = lv_ip_mailaddr
    ip_type_id        = lv_ip_type_id
  IMPORTING
    ep_recipient_id   = ls_recipient_id
  EXCEPTIONS
    invalid_recipient = 1
    OTHERS            = 2.
IF sy-subrc <> 0. <error>. ENDIF.

*  Get sender object id.
CALL FUNCTION 'CREATE_SENDER_OBJECT_PPF'
  EXPORTING
    ip_sender      = sy-uname
  IMPORTING
    ep_sender_id   = ls_sender_id
  EXCEPTIONS
    invalid_sender = 1
    OTHERS         = 2.
IF sy-subrc <> 0. <error>. ENDIF.

* Create Mail title
ls_output_options-tdtitle = 'Информационное сообщение'.
ls_output_options-tdnewid    = 'X'.
ls_output_options-bcs_commit = 'X'.

ls_control_param-device      = 'MAIL'.
ls_control_param-langu       = sy-langu.

CALL FUNCTION lv_fm_name
  EXPORTING
    control_parameters = ls_control_param
    mail_recipient     = ls_recipient_id
    mail_sender        = ls_sender_id
    output_options     = ls_output_options
    user_settings      = ' '
  EXCEPTIONS
    formatting_error   = 1
    internal_error     = 2
    send_error         = 3
    user_canceled      = 4
    OTHERS             = 5.
IF sy-subrc <> 0. <error>. ENDIF.

Примечание: Если есть проблемы с преобразованием русских символов в конечном PDF-файле, возможно нужно сделать мэппинг шрифтов, для этого можно использовать программу RSTXPDF2UC. Преобразование я лично делал например для HELVCYR в SAPWIN5 (ISO-5). Помогало.