Skip to Content
0
Former Member
Apr 09, 2007 at 04:59 AM

Sending Mail

32 Views

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.