Hi,
I have introuced 4 mail options in 4 populate menus in the same program with different names.I want to know how to add the mail sending process using a function module.Is it possible to apply a common name for all populate menus and add the action in one perform method by calling that using a condition HOW.The mail should send as a excel format.Below i have given the 4 mail options in 4 selection screens code, and where the perform action for sending mail should be added in the code with above condition.In my Program there are different fields, i have sent here with another program code.Pls clear my doubt.
regards,
Pradeep
selection-screen begin of line. selection-screen comment 1(25) for field mail_id. parameters: mail_id(150) type c. selection-screen end of line. *selection-screen begin of block b3 with frame title text-036. selection-screen begin of line. selection-screen comment 1(25) for field tmail. parameters: tmail(150) type c. selection-screen end of line. *selection-screen end of block b3. .................... ..................... .................... Sample Mail Code FORM datecal. CONCATENATE mon_yr '01' INTO dtyr. CALL FUNCTION 'FTI_FISCAL_YEAR_MONTH_GET' EXPORTING i_bukrs = '1000' i_budat = dtyr "FTIS_DATUM-INITIAL IMPORTING e_gjahr = gjahr e_monat = monat. ENDFORM. "datecal *DATA: fname TYPE string, * subjtxt TYPE string, * bodytxt TYPE string, * t_dispo TYPE mdkp-dispo, * t_werks TYPE mdkp-plwrk. ** t_mail TYPE t024d-usrkey. *&---------------------------------------------------------------------* *& Form sendmail_excel *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM sendmail_excel . CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING percentage = 100 text = text-025. DATA: v_subject TYPE string, v_mailid TYPE string, var2 TYPE string, var1 TYPE string, cmdstr TYPE string, v_dt TYPE string. vardate = sy-datum. vartime = sy-uzeit. CONCATENATE vardate vartime INTO v_dt. CONCATENATE 'Inv_Val_Rep' v_dt '.html' INTO fheader. unixcmd = ' '. CLEAR itab_cmd. unixcmd = 'mkdir /usr/sap/tmp/inv_val'. CALL 'SYSTEM' ID 'COMMAND' FIELD unixcmd ID 'TAB' FIELD itab_cmd-*sys*. CLEAR itab_cmd. perform set_text_date. CONCATENATE '"' text-024 ' ' return_date '"' INTO v_subject SEPARATED BY space. CONCATENATE e_file1 fheader INTO h_file. OPEN DATASET h_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT. var = return_date. IF total = 'X'. CLEAR post. CONCATENATE '<html><head><title>' v_subject '</title></head><table border=1 bordercolor=black>' INTO post. TRANSFER post TO h_file. CLEAR post. CONCATENATE '<b>' text-030 '</b>' text-026 text-024 ' ' return_date'</td></b></td></tr>' INTO post SEPARATED BY space. TRANSFER post TO h_file. CLEAR post. CONCATENATE '<tr><th>slno</th><th>' text-006 '</th><th>' text-007 '</th><th>' text-008 '</th>' INTO post. TRANSFER post TO h_file. CLEAR post. CONCATENATE '<th>' text-009 '</th><th>' text-010 '</th><th>' text-029 '</th><th>' text-011 '</th>' INTO post. TRANSFER post TO h_file. CLEAR post. CONCATENATE '<th>' text-012 '</th><th>' text-013 '</th><th>' text-014 '</th>' INTO post. TRANSFER post TO h_file. CLEAR post. CONCATENATE '<th>' text-015 '</th><th>' text-016 '</th><th>' text-017 '</th>' INTO post. TRANSFER post TO h_file. CLEAR post. CONCATENATE '<th>' text-018 '</th><th>' text-019 '</th><th>' text-020 '</th>' INTO post. TRANSFER post TO h_file. CLEAR post. CONCATENATE '<th>' text-021 '</th><th>' text-022 '</th><th>' text-023 '</th></tr>' INTO post. TRANSFER post TO h_file. CLEAR post. ELSEIF exfou = 'X'. TRANSFER '<html><head><title>' TO h_file. TRANSFER v_subject TO h_file. TRANSFER '</title></head><table border=1 bordercolor=black>' TO h_file. CLEAR post. CONCATENATE '<b>' text-030 '</b>' text-027 text-024 ' ' return_date'</b></td></tr>' INTO post SEPARATED BY space. TRANSFER post TO h_file. CLEAR post. CONCATENATE '<tr><th>slno</th><th>' text-006 '</th><th>' text-007 '</th><th>' text-008 '</th>' INTO post. TRANSFER post TO h_file. CLEAR post. CONCATENATE '<th>' text-009 '</th><th>' text-010 '</th><th>' text-029 '</th><th>' text-011 '</th>' INTO post. TRANSFER post TO h_file. CLEAR post. CONCATENATE '<th>' text-012 '</th><th>' text-013 '</th><th>' text-014 '</th>' INTO post. TRANSFER post TO h_file. CLEAR post. CONCATENATE '<th>' text-015 '</th><th>' text-016 '</th><th>' text-017 '</th>' INTO post. TRANSFER post TO h_file. CLEAR post. CONCATENATE '<th>' text-018 '</th><th>' text-019 '</th>' INTO post. TRANSFER post TO h_file. CLEAR post. CONCATENATE '<th>' text-021 '</th><th>' text-022 '</th><th>' text-023 '</th></tr>' INTO post. TRANSFER post TO h_file. CLEAR post. ELSE. TRANSFER '<html><head><title>' TO h_file. TRANSFER v_subject TO h_file. TRANSFER '</title></head><table border=1 bordercolor=black>' TO h_file. CLEAR post. CONCATENATE '<b>' text-030 '</b>' text-028 text-024 ' ' return_date'</b></td></tr>' INTO post SEPARATED BY space. TRANSFER post TO h_file. CLEAR post. CONCATENATE '<tr><th>slno</th><th>' text-006 '</th><th>' text-007 '</th><th>' text-008 '</th>' INTO post. TRANSFER post TO h_file. CLEAR post. CONCATENATE '<th>' text-020 '</th><th>' text-023 '</th></tr>' INTO post. TRANSFER post TO h_file. CLEAR post. ENDIF. CLOSE DATASET h_file. CONCATENATE e_file1 fheader INTO h_file. OPEN DATASET h_file FOR APPENDING IN TEXT MODE ENCODING DEFAULT. LOOP AT it4 INTO wa_it2. post = '<tr><td>'. TRANSFER post TO h_file. post = wa_it2-slno. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-category. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bkbez. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-mtart. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. IF total = 'X'. post = wa_it2-bd01_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-du00_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-du04_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd03_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd09_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd02_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd04_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-pl01_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd05_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd06_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd07_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd00_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-fd00_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-iwh00_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-rwh00_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-tot_val. TRANSFER post TO h_file. ELSEIF exfou = 'X'. post = wa_it2-bd01_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-du00_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-du04_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd03_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd09_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd02_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd04_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-pl01_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd05_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd06_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd07_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-bd00_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-iwh00_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-rwh00_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-tot_val. TRANSFER post TO h_file. ELSE. post = wa_it2-fd00_val. TRANSFER post TO h_file. post = '</td><td>'. TRANSFER post TO h_file. post = wa_it2-tot_val. TRANSFER post TO h_file. post = '</td></tr>'. TRANSFER post TO h_file. ENDIF. ENDLOOP. CLOSE DATASET h_file. OPEN DATASET h_file FOR APPENDING IN TEXT MODE ENCODING DEFAULT. TRANSFER '</table></html>' TO h_file. CLOSE DATASET h_file. ****Mail Sending from Shell unixcmd = ' '. CLEAR itab_cmd. CONCATENATE 'Inv_Val_Rep' v_dt '.html' INTO var1. CONCATENATE var1 'Inv_Val_Rep' INTO var1 SEPARATED BY space. CONCATENATE var1 v_dt '.xls' INTO var1. CONCATENATE 'uuencode /usr/sap/tmp/inv_val/' var1 INTO var2 ."SEPARATED BY space. CONCATENATE var2 '|mail -s' INTO var2 SEPARATED BY space. * For Subject of the mail * For mail id CONCATENATE t_mail ' ' INTO v_mailid. * For entire syntax * CONCATENATE 'uuencode /usr/sap/tmp/mrp_run/mrp_run.html mrp_run.xls |mail -s' v_subject v_mailid INTO cmdstr SEPARATED BY space. CONCATENATE var2 v_subject v_mailid INTO cmdstr SEPARATED BY space. unixcmd = cmdstr. *For executing the command CALL 'SYSTEM' ID 'COMMAND' FIELD unixcmd ID 'TAB' FIELD itab_cmd-*sys*. CLEAR itab_cmd. unixcmd = ' '. CLEAR itab_cmd. FREE: var1, var2,cmdstr. CONCATENATE 'rm' '/usr/sap/tmp/inv_rep/Inv_Val_Rep' INTO var1 SEPARATED BY space. CONCATENATE var1 v_dt '.html' INTO var1. unixcmd = var1. CALL 'SYSTEM' ID 'COMMAND' FIELD unixcmd ID 'TAB' FIELD itab_cmd-*sys*. CLEAR itab_cmd. FREE: var1, var2,cmdstr. CONCATENATE 'rm' 'Inv_Val_Rep' INTO var1 SEPARATED BY space. CONCATENATE var1 v_dt '.xls' INTO var1. unixcmd = var1. CALL 'SYSTEM' ID 'COMMAND' FIELD unixcmd ID 'TAB' FIELD itab_cmd-*sys*. CLEAR itab_cmd. FREE: var1, var2,cmdstr. ENDFORM. " co_blowup_excel *&---------------------------------------------------------------------* *& Form add_sortseq *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_SPOS text * -->P_FIELDNAME text * -->P_TABNAME text * -->P_SORT text * -->P_SUBTOTAL text *----------------------------------------------------------------------* FORM add_sortseq USING p_spos TYPE alvdynp-sortpos p_fieldname TYPE slis_fieldname p_tabname TYPE slis_tabname p_sort TYPE alvdynp-sortup p_subtotal TYPE alvdynp-subtotals. w_sort-spos = p_spos. " Sort order w_sort-fieldname = p_fieldname. w_sort-tabname = p_tabname. w_sort-up = p_sort. w_sort-subtot = p_subtotal. " Sub total allowed w_sort-comp = 'X'. w_sort-expa = ''. APPEND w_sort TO it_sort. CLEAR w_sort. ENDFORM. "add_sortseq FORM set_text_date. DATA: month(9), year(4). CASE mon_yr+4(2). WHEN '01'. month = 'January'. WHEN '02'. month = 'February'. WHEN '03'. month = 'March'. WHEN '04'. month = 'April'. WHEN '05'. month = 'May'. WHEN '06'. month = 'June'. WHEN '07'. month = 'July'. WHEN '08'. month = 'August'. WHEN '09'. month = 'September'. WHEN '10'. month = 'October'. WHEN '11'. month = 'November'. WHEN '12'. month = 'December'. WHEN OTHERS. ENDCASE. WRITE mon_yr+0(4) TO year. CONCATENATE ' ' month ',' year INTO return_date SEPARATED BY space. CONDENSE return_date. ENDFORM.