Sending Adobe Form as PDF Attachement through mail

 

 T-code:SFP

1.Create an interface like below


 2.Create form using interface and design layout and bind elements


 

*&---------------------------------------------------------------------*
*& Report ZVB_ADOBE_SO1
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zvb_adobe_so1.
DATA:lr_outputparam TYPE sfpoutputparams,
     lv_funcname    TYPE funcname,
     lv_result      TYPE sfpjoboutput,
     lr_pdf         TYPE fpformoutput,
     lt_bcs_pdf     TYPE TABLE OF solix.

DATA:lv_uname     TYPE soextreci1-receiver,             "Sender
     lr_subject   TYPE sodocchgi1,
     lt_mailbody  TYPE TABLE OF solisti1,               "Mail Body
     lr_mailbody  TYPE solisti1,
     lt_mailrec   TYPE TABLE OF somlrec90,              "Mail recievers
     lr_mailrec   TYPE somlrec90,
     lr_pack_list TYPE sopcklsti1,
     lt_pack_list TYPE TABLE OF sopcklsti1.

DATA:lr_vbak TYPE zssd_vbak_01,
     lt_vbap TYPE TABLE OF zssd_vbap_01.
PARAMETERS:p_vbeln TYPE vbak-vbeln.
SELECT SINGLE vbeln,
              erdat,
              erzet,
              ernam,
              vbtyp
  FROM vbak
  INTO @lr_vbak
  WHERE vbeln = @p_vbeln.
IF sy-subrc = 0.
  SELECT vbeln,
         posnr,
         netwr,
         waerk
    FROM vbap
    INTO TABLE @lt_vbap
    WHERE vbeln = @lr_vbak-vbeln.
ENDIF.

lr_outputparam-dest = 'LP01'.
lr_outputparam-nodialog = 'X'.
lr_outputparam-preview = 'X'.
lr_outputparam-getpdf = 'X'.
CALL FUNCTION 'FP_JOB_OPEN'
  CHANGING
    ie_outputparams = lr_outputparam
  EXCEPTIONS
    cancel          = 1
    usage_error     = 2
    system_error    = 3
    internal_error  = 4
    OTHERS          = 5.

CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
  EXPORTING
    i_name     = 'ZVB_SO_FORM1'
  IMPORTING
    e_funcname = lv_funcname.

CALL FUNCTION lv_funcname
  EXPORTING
*   /1BCDWB/DOCPARAMS  =
    lt_vbap            = lt_vbap
    lr_vbak            = lr_vbak
    p_vbeln            = p_vbeln
  IMPORTING
    /1bcdwb/formoutput = lr_pdf
  EXCEPTIONS
    usage_error        = 1
    system_error       = 2
    internal_error     = 3
    OTHERS             = 4.

CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
  EXPORTING
    buffer     = lr_pdf-pdf
  TABLES
    binary_tab = lt_bcs_pdf.

lr_subject-obj_descr = 'Sales Order Details'.
lr_subject-sensitivty = 'F'.
lr_subject-doc_size = 1.

lr_mailbody-line = 'Hi'.
APPEND lr_mailbody TO lt_mailbody.
CLEAR:lr_mailbody.
lr_mailbody-line = ' '.
APPEND lr_mailbody TO lt_mailbody.
CLEAR:lr_mailbody.
lr_mailbody-line = 'Please find the attached document as Sales Order Details'.
APPEND lr_mailbody TO lt_mailbody.
CLEAR:lr_mailbody.
lr_mailbody-line = ' '.
APPEND lr_mailbody TO lt_mailbody.
CLEAR:lr_mailbody.
lr_mailbody-line = '**This is system generated mail. Do not reply.'.
APPEND lr_mailbody TO lt_mailbody.
CLEAR:lr_mailbody.

lv_uname = sy-uname.
lr_mailrec-receiver = 'abc@gmail.com'.
lr_mailrec-com_type = 'INT'.
lr_mailrec-rec_type = 'U'.
APPEND lr_mailrec TO lt_mailrec.

**** MAIL BODY-LENGTH
DESCRIBE TABLE lt_mailbody LINES lr_pack_list-body_num.
CLEAR lr_pack_list-transf_bin.
lr_pack_list-head_start = 1.
lr_pack_list-head_num = 0.
lr_pack_list-body_start = 1.
lr_pack_list-doc_type = 'RAW'.
APPEND lr_pack_list TO lt_pack_list.
CLEAR: lr_pack_list.

** Create attachment notification
lr_pack_list-transf_bin = 'X'.
lr_pack_list-head_start = 1.
lr_pack_list-head_num = 1.
lr_pack_list-body_start = 1.

DESCRIBE TABLE lt_bcs_pdf LINES lr_pack_list-body_num.
lr_pack_list-doc_type = 'PDF'.
CONCATENATE 'Sales Order-' p_vbeln INTO lr_pack_list-obj_descr.
lr_pack_list-obj_name = 'SO Detaisl'.
lr_pack_list-doc_size = lr_pack_list-body_num * 255.
APPEND lr_pack_list TO lt_pack_list.
CLEAR:lr_pack_list.

CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
  EXPORTING
    document_data              = lr_subject
    sender_address             = lv_uname
    sender_address_type        = 'B'
    commit_work                = 'X'
  TABLES
    packing_list               = lt_pack_list
    contents_txt               = lt_mailbody
    contents_hex               = lt_bcs_pdf
    receivers                  = lt_mailrec
  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.

CALL FUNCTION 'FP_JOB_CLOSE'
  IMPORTING
    e_result       = lv_result
  EXCEPTIONS
    usage_error    = 1
    system_error   = 2
    internal_error = 3
    OTHERS         = 4.

Output:

Go T-code SOST and check the mail

 

 Click On PDF

Comments

Popular posts from this blog

CDS Views: Table Functions with Example

Passing Dynamic Variables to SO10 TEXT

Adobe Form/PDF Form Introduction