Menu

How to Attach Executable SAP Transaction Links to E-Mails

DevWorkbench    Tuesday August 12th, 2014   

Example program to send executable SAPOffice documents

REPORT ztestemail2.
 
* These are needed for the e-mail itself
DATA ls_object_content TYPE solisti1.
DATA lt_object_content TYPE STANDARD TABLE OF solisti1.
DATA ls_receivers TYPE somlreci1.
DATA lt_receivers TYPE STANDARD TABLE OF somlreci1.
DATA ls_document_data LIKE sodocchgi1.
 
* These are needed for the transaction attachment
DATA ls_object_para TYPE soparai1.
DATA lt_object_para TYPE STANDARD TABLE OF soparai1.
 
* Fill the document data
ls_document_data-obj_name 'Test'.
ls_document_data-obj_descr 'SAPOffice with executable TA'.
 
* Fill the mail content
ls_object_content-line 'Test SAPOffice with transaction'.
APPEND ls_object_content TO lt_object_content.
 
* Fill the receiver list
ls_receivers-receiver sy-uname.
ls_receivers-rec_type 'B'.
APPEND ls_receivers TO lt_receivers.
 
* Attach a transaction
ls_document_data-proc_type 'T'.
* Name the transaction
ls_document_data-proc_name 'MM03'.
* Skip first screen
ls_document_data-skip_scren 'X'.
 
* Set the parameter for the TA
ls_object_para-name 'MAT'.
ls_object_para-low 'MAT001'.
APPEND ls_object_para TO lt_object_para.
 
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
  EXPORTING
    document_data              ls_document_data
    document_type              'RAW'
    put_in_outbox              'X'
    commit_work                'X'
  TABLES
    object_content             lt_object_content
    object_para                lt_object_para
    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.
  WRITE 'Email could not be sent.'.
  WRITE sy-subrc.
ELSE.
  WRITE 'Email was sent!'.
ENDIF.