75% found this document useful (4 votes)
4K views6 pages

Send Smartform Output Mail

This program converts a smartform output to PDF format and sends it to a receiver's email address. It declares internal tables, calls function modules to generate the output, converts it to PDF, modifies the line length, and sends it as an email attachment using transaction SO_NEW_DOCUMENT_SEND_API1. The program encounters an issue where it can only send to SAP user mailboxes, not external email addresses.

Uploaded by

api-3852068
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
75% found this document useful (4 votes)
4K views6 pages

Send Smartform Output Mail

This program converts a smartform output to PDF format and sends it to a receiver's email address. It declares internal tables, calls function modules to generate the output, converts it to PDF, modifies the line length, and sends it as an email attachment using transaction SO_NEW_DOCUMENT_SEND_API1. The program encounters an issue where it can only send to SAP user mailboxes, not external email addresses.

Uploaded by

api-3852068
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 6

*&---------------------------------------------------------------------*

*& Report ZSANDEEP_SMARTFORM_PDF_CONVT


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

****PURPOSE OF PROGRAM : convert smartform OUTPUT to PDF FORMAT AND SEND TO


RECEIVER MAIL ADDRESS
*******DEVELOPED BY : SANDEEP A JADHAV.
********DATE :- 18/11/2007

REPORT ZSANDEEP_SMARTFORM_PDF_CONVT.

*STEP 1 . DECLARATION PART


TABLES : PA0000 , PA0001 ,PA0002, PA0028 .
DATA : ITAB_PA0001 LIKE PA0001 OCCURS 0 WITH HEADER LINE .

*STEP 2 FTECH THE DATA INTO THE INTERNAL TABLE


SELECT * FROM PA0001 INTO CORRESPONDING FIELDS OF TABLE ITAB_PA0001 .

***********************************************************************************************

*ACTUCAL PROGRAM IS STARTED NOW......................

************************************STEP 3 : DECLARATION PART

data:
v_len_in LIKE sood-objlen,

structjob TYPE SSFCRESCL.

DATA : i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,


i_tline TYPE TABLE OF tline WITH HEADER LINE. " make each line 132 characters

*** make each line 255 characters


DATA : BEGIN OF i_tline2 OCCURS 0,
tline TYPE char255,
END OF i_tline2.

****when we send a mail we mention the subject line


****this ZDATA itb is used for just giving a subject line

data : zdata LIKE sodocchgi1 OCCURS 0 WITH HEADER LINE.

ZDATA-OBJ_NAME = 'TEST'.
ZDATA-OBJ_DESCR = 'SUBJECT LINE '.
ZDATA-OBJ_LANGU = 'EN'.
APPEND ZDATA.

********end of subject line

**********receiver mail address

DATA : zreceivers TYPE TABLE OF somlreci1 WITH HEADER LINE.

zreceivers-receiver = 'ABAP2' . " RECEIVER mail address


zreceivers-rec_type = 'B'. " B -> FOR SAP USER . PLEASE CHECK THE TABLE 'TBCS_RECIP'
zreceivers-REC_ID = 'ABAP2' . " receiver mail address
APPEND zreceivers.

******* COPIED THE FUNCTION MODULE NAME INTO THE VARIABLE FM_NAME
********************8
DATA : FM_NAME TYPE rs38l_fnam value '/1BCDWB/SF00000002'.

************************************END OF STEP 3
****************************************************************88]

************STEP 4 CALL THE FUNCTION MODULE SSF_FUNCTION_MODULE_NAME


*************************************************************

*****SSF_FUNCTION_MODULE_NAME :- THIS FUNCTION MODULE IS USED FOR CALLING


SMARTFORM NAME AND FUNCTION WHICH IS GENERATED BY SMARTFORMS

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'


EXPORTING
FORMNAME = 'ZSANDEEP_HR_TEST_PRG1' " SMARTFORM NAME
* VARIANT =''
* DIRECT_CALL =''
IMPORTING
FM_NAME = FM_NAME
* EXCEPTIONS
* NO_FORM =1
* NO_FUNCTION_MODULE =2
* OTHERS =3
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*END OF FUNCTION SSF_FUNCTION_MODULE_NAME

***********************************END OF STEP 4
*************************************************

************************************STEP 5 CALL THE FUNCTION MODULE


*************************************

DATA : ls_CONTROL_PARAMETERS type SSFCTRLOP.

ls_CONTROL_PARAMETERS-GETOTF = 'X'.
ls_CONTROL_PARAMETERS-NO_DIALOG = ''.
ls_CONTROL_PARAMETERS-PREVIEW = ''.
*

**********CALL THE FUNCTION MODULE /1BCDWB/SF00000002


DATA : w_compop TYPE ssfcompop,
w_return TYPE ssfcrescl.

CALL FUNCTION FM_NAME


EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = ls_CONTROL_PARAMETERS
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
OUTPUT_OPTIONS = w_compop
USER_SETTINGS = 'X'
IMPORTING
* DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = w_return
* JOB_OUTPUT_OPTIONS =
TABLES
ITAB_PA0001 = ITAB_PA0001 " passing the itab ( final output )
EXCEPTIONS
FORMATTING_ERROR =1
INTERNAL_ERROR =2
SEND_ERROR =3
USER_CANCELED =4
OTHERS =5
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
i_otf[] = w_return-otfdata[].

*************************STEP 6 CONVERT INTO OTF


CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
* ARCHIVE_INDEX =''
* COPYNUMBER =0
* ASCII_BIDI_VIS2LOG =''
* PDF_DELETE_OTFTAB =''
IMPORTING
BIN_FILESIZE = v_len_in
* BIN_FILE =
TABLES
OTF = i_otf
LINES = i_tline
EXCEPTIONS
ERR_MAX_LINEWIDTH =1
ERR_FORMAT =2
ERR_CONV_NOT_POSSIBLE =3
ERR_BAD_OTF =4
OTHERS =5
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

********************************STEP 7 **********

*SX_TABLE_LINE_WIDTH_CHANGE use :- make each line 255 characters

CALL FUNCTION 'SX_TABLE_LINE_WIDTH_CHANGE'


* EXPORTING
* LINE_WIDTH_SRC =
* LINE_WIDTH_DST =
* TRANSFER_BIN =''
TABLES
CONTENT_IN = i_tline
CONTENT_OUT = i_tline2

* EXCEPTIONS
* ERR_LINE_WIDTH_SRC_TOO_LONG =1
* ERR_LINE_WIDTH_DST_TOO_LONG =2
* ERR_CONV_FAILED =3
* OTHERS =4
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
***********END OF SX_TABLE_LINE_WIDTH_CHANGE

*********************STEP 9

****FOR TRANSFERRING SMARTFORM OUTPUT TO RECEIVER MAIL ADDRESS

CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'


EXPORTING
DOCUMENT_DATA = zdata

DOCUMENT_TYPE = 'PDF'
* PUT_IN_OUTBOX =''
COMMIT_WORK = 'x'
* IMPORTING
* SENT_TO_ALL =
* NEW_OBJECT_ID =
TABLES
* OBJECT_HEADER =
OBJECT_CONTENT = i_tline2
* CONTENTS_HEX =
* OBJECT_PARA =
* OBJECT_PARB =
RECEIVERS = ZRECEIVERS " RECEIVER ADDRESS

* 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.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Use this tcode to check the sended mail u got it or not :- SBWP

Problem : -

Now the Problem is that I want to send this output file into the external mail id (i.e
your personal mail id ) .

Solution from my side ( but not confirm ) .

Their must be setting in tcode :- SCOT

You might also like