cancel
Showing results for 
Search instead for 
Did you mean: 

Q about:Sending Smartform's O/P as an attchment of an e-mail

Former Member
0 Kudos

Hi friends...

I have dveloped a new Smartform for PO reminder letter..

and I am trying to send it as an attachment thru mail...

the code I wrote for that is given...

but I am getting a runtime error like

In program "CL_TRACE_BCS==================CP ", the following syntax error

occurred

in the Include "CL_TRACE_BCS==================CU " in line 85:

"Implementation missing for method "END_FUNC". "END_FUNC"."

Plz help me....

*******CODE********

REPORT zmm_vendor_reminder_mail.

TABLES : ekko,ekpo,eket,makt,adrc,adr6,lfa1.

DATA: fm_name TYPE rs38l_fnam.

DATA: BEGIN OF itab1 OCCURS 0.

INCLUDE STRUCTURE lfa1.

DATA: END OF itab1.

DATA : BEGIN OF itab OCCURS 0.

INCLUDE STRUCTURE zmm_podetails.

DATA: END OF itab.

DATA : BEGIN OF it_pos OCCURS 0 ,

bukrs LIKE ekpo-bukrs,

werks LIKE ekpo-werks,

ebeln LIKE eket-ebeln,

ebelp LIKE eket-ebelp,

etenr LIKE eket-etenr,

bedat LIKE eket-bedat,

matnr LIKE ekpo-matnr,

meins LIKE ekpo-meins,

menge LIKE eket-menge,

wemng LIKE eket-wemng,

eindt LIKE eket-eindt,

lifnr LIKE ekko-lifnr,

END OF it_pos.

DATA : BEGIN OF it_vendor OCCURS 0 ,

lifnr LIKE lfa1-lifnr,

name1 LIKE adrc-name1,

street LIKE adrc-street,

str_suppl1 LIKE adrc-str_suppl1,

str_suppl2 LIKE adrc-str_suppl2,

city1 LIKE adrc-city1,

post_code1 LIKE adrc-post_code1,

smtp_addr LIKE adr6-smtp_addr,

adrnr LIKE lfa1-adrnr,

telf1 LIKE lfa1-telf1,

telf2 LIKE lfa1-telf2,

END OF it_vendor.

*RAMESH **********

tables: soud.

data: control_parameters TYPE ssfctrlop,

output_options TYPE ssfcompop,

EMail_Subject(50) TYPE c value 'abc'.

DATA: email_recipient TYPE SWOTOBJID,

email_sender TYPE SWOTOBJID,

g_mail_app_obj type SWOTOBJID.

*concatenate text-004 '400000124' into EMail_Subject.

control_parameters-device = 'MAIL'.

control_parameters-no_dialog = 'X'.

control_parameters-preview = space.

output_options-tdnewid = 'X'.

output_options-tdtitle = EMail_Subject.

SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS : s_bukrs FOR ekpo-bukrs,

s_werks FOR ekpo-werks,

s_ekgrp FOR ekko-ekgrp,

s_lifnr FOR ekko-lifnr,

s_ebeln FOR ekko-ebeln,

s_eindt FOR eket-eindt,

s_mtart FOR ekpo-mtart,

s_matkl FOR ekpo-matkl,

s_matnr FOR ekpo-matnr.

SELECTION-SCREEN : END OF BLOCK b1.

PERFORM mail_recipient_object.

PERFORM mail_sender_object.

PERFORM mail_appl_object changing g_mail_app_obj.

*RAMESH **********

*******************************SELECTION-SCREEN************

AT SELECTION-SCREEN.

  • Validate test for Plant in selections

LOOP AT s_werks.

IF NOT s_werks-high IS INITIAL.

SELECT SINGLE * FROM ekpo

WHERE werks = s_werks-high.

IF sy-subrc NE 0.

MESSAGE e600(fr) WITH 'This Plant'

s_werks-high ' does not exist.'

.

ENDIF.

ENDIF.

IF NOT s_werks-low IS INITIAL.

SELECT SINGLE * FROM ekpo

WHERE werks = s_werks-low.

IF sy-subrc NE 0.

MESSAGE e600(fr) WITH 'This Plant'

s_werks-low ' does not exist.'

.

ENDIF.

ENDIF.

ENDLOOP.

START-OF-SELECTION.

PERFORM get_data.

*----


CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname = 'ZMM_VENDOR_REMINDER_MAIL'

  • VARIANT = ' '

  • DIRECT_CALL = ' '

IMPORTING

fm_name = fm_name

EXCEPTIONS

no_form = 1

no_function_module = 2

OTHERS = 3.

IF sy-subrc <> 0.

WRITE: / 'ERROR 1'.

ENDIF.

CALL FUNCTION fm_name

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

CONTROL_PARAMETERS = control_parameters

MAIL_APPL_OBJ = g_mail_app_obj

MAIL_RECIPIENT = email_recipient

MAIL_SENDER = email_sender

OUTPUT_OPTIONS = output_options

USER_SETTINGS = 'X'

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

TABLES

itab1 = itab1

itab = itab

  • 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.

&----


*& Form get_data

&----


  • text

----


FORM get_data.

SELECT a~bukrs a~werks a~ebeln a~ebelp

b~bedat a~matnr a~meins b~menge

b~wemng b~eindt c~lifnr b~etenr

FROM ekpo AS a

INNER JOIN eket AS b

ON a~ebeln = b~ebeln AND

a~ebelp = b~ebelp

INNER JOIN ekko AS c

ON a~ebeln = c~ebeln AND

a~bukrs = c~bukrs

INTO CORRESPONDING FIELDS OF TABLE it_pos

WHERE a~bukrs IN s_bukrs

AND a~werks IN s_werks

AND b~eindt IN s_eindt

AND c~lifnr IN s_lifnr

AND c~ekgrp IN s_ekgrp

AND c~ebeln IN s_ebeln

AND a~mtart IN s_mtart

AND a~matkl IN s_matkl

AND a~matnr IN s_matnr

AND c~bstyp EQ 'F'

AND c~loekz EQ space

AND a~loekz EQ space

AND b~menge > b~wemng.

SELECT DISTINCT a~lifnr b~name1 b~street b~str_suppl1 b~str_suppl2

b~city1 b~post_code1 a~adrnr a~telf1 a~telf2

FROM lfa1 AS a

INNER JOIN adrc AS b

ON a~adrnr = b~addrnumber

INTO CORRESPONDING FIELDS OF TABLE it_vendor

FOR ALL ENTRIES IN it_pos

WHERE a~lifnr = it_pos-lifnr.

LOOP AT it_vendor.

SELECT SINGLE * FROM adr6

WHERE addrnumber = it_vendor-adrnr

AND persnumber EQ space.

IF sy-subrc = 0.

it_vendor-smtp_addr = adr6-smtp_addr.

ENDIF.

MODIFY it_vendor.

SELECT SINGLE * FROM lfa1

WHERE lifnr = it_vendor-lifnr.

IF sy-subrc EQ 0.

MOVE-CORRESPONDING lfa1 TO itab1.

APPEND itab1.

ENDIF.

ENDLOOP.

LOOP AT it_pos.

itab-bukrs = it_pos-bukrs.

itab-ebeln = it_pos-ebeln.

itab-ebelp = it_pos-ebelp.

itab-matnr = it_pos-matnr.

itab-bedat = it_pos-bedat.

itab-meins = it_pos-meins.

itab-eindt = it_pos-eindt.

itab-lifnr = it_pos-lifnr.

itab-etenr = it_pos-etenr.

APPEND itab.

CLEAR itab.

ENDLOOP.

ENDFORM. "get_data

&----


*& Form mail_recipient_object

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form mail_recipient_object .

data: email_address TYPE SO_NAME.

email_address = 'ramu.bg@gmail.com'.

CALL FUNCTION 'CREATE_RECIPIENT_OBJ_PPF'

EXPORTING

  • IP_COUNTRY =

  • IP_FAXNO =

IP_MAILADDR = email_address

IP_TYPE_ID = 'U'

IMPORTING

EP_RECIPIENT_ID = email_recipient

  • EP_ADDRESS =

  • ET_RECIPIENT =

EXCEPTIONS

INVALID_RECIPIENT = 1

OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

endform. " mail_recipient_object

&----


*& Form mail_sender_object

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form mail_sender_object .

CALL FUNCTION 'CREATE_SENDER_OBJECT_PPF'

EXPORTING

IP_SENDER = sy-uname

IMPORTING

EP_SENDER_ID = email_sender

EXCEPTIONS

INVALID_SENDER = 1

OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

endform. " mail_sender_object

&----


*& Form mail_appl_object

&----


  • text

----


  • <--P_G_MAIL_APP_OBJ text

----


form mail_appl_object changing p_g_mail_app_obj.

include <cntn01>.

DATA: FOLDER TYPE swc_object,

BEGIN OF SOFMFOL_KEY,

FOLDERTYPE LIKE SOFM-FOLTP,

FOLDERYEAR LIKE SOFM-FOLYR,

FOLDERNUMBER LIKE SOFM-FOLNO,

TYPE LIKE SOFM-DOCTP,

YEAR LIKE SOFM-DOCYR,

NUMBER LIKE SOFM-DOCNO,

FORWARDER LIKE SOUB-USRNAM,

END OF SOFMFOL_KEY,

BOR_KEY LIKE SWOTOBJID-OBJKEY.

SELECT single * FROM soud WHERE sapnam LIKE sy-uname AND deleted = ' '.

IF sy-subrc NE 0.

CALL FUNCTION 'SO_USER_AUTOMATIC_INSERT'

EXPORTING

SAPNAME = SY-UNAME

  • SO_KEY = ' '

  • SEND_MAIL_IF_NO_ADDRESS = 'X'

  • IMPORTING

  • USRADR =

EXCEPTIONS

NO_INSERT = 1

SAP_NAME_EXIST = 2

X_ERROR = 3

SAP_NAME_NOT_EXIST = 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.

clear sofmfol_key.

sofmfol_key-type = 'FOL'.

sofmfol_key-year = soud-inbyr.

sofmfol_key-number = soud-inbno.

bor_key = sofmfol_key.

IF not bor_key is initial.

swc_create_object folder 'SOFMFOL' bor_key.

IF sy-subrc = 0.

swc_object_to_persistent folder g_mail_app_obj.

IF sy-subrc ne 0.

clear g_mail_app_obj.

ENDIF.

ENDIF.

ELSE.

clear g_mail_app_obj.

ENDIF.

endform. " mail_appl_object

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

is ur email configured in sap i mean is gmail configured in ur sap system.

i think that could me one problem

Former Member
0 Kudos

Thanks for reply...

But the problem now is...

Im am not recieving mail...

and If I goto SOST.. it is in waiting status...

Former Member
0 Kudos

try to release the mail manually from the sost.

to see whether the mail is workin fine or not go sbwp(*sap business work place) transeaction and see it.

once see the scot also.

in general the administrator should allow the mail to trnsmit .only this case it fails.

i am sure this works.

Former Member
0 Kudos

Thanks,

yes its working. thanks alot...

but I dont want to send it manually from sost(requirement is like that)..

can you plz help me to send it automatically..

Regards

Ramesh

Former Member
0 Kudos

Hi ramesh,

then check SCOT transaction.

if the mail is triggered automatically then it will be immediately delivered or will be queued in the trnsit for the delivery.

Former Member
0 Kudos

Hi Durgaprasad,

Thanks for your answer...

Its working perfectly....

thanks once again..

Ramesh B.

Answers (0)