Sending mails form apex

Can anyone help me how to send mails from apex to multiple users..
Thanks,
Srini

Hi Srini,
Have a look here: http://download.oracle.com/docs/cd/B31036_01/doc/appdev.22/b28550/api.htm#CHDDHBGI
You can use a comma between the mail addresses in the to and that should send the mails to multiple people.
Regards,
Dimitri
-- http://dgielis.blogspot.com/
-- http://www.apex-evangelists.com/
-- http://www.apexblogs.info/

Similar Messages

  • How to send mail in APEX 4.1 using PLSQL

    Hi All,
    How to send mail in APEX 4.1 using PLSQL?
    Thanks In advance.
    Regards
    Shail

    http://lmgtfy.com/?q=oracle+apex+4.1+send+mail

  • Sending mail from apex appliocation

    Dear friends
    Can anyone please tell me how to send mail from apex application to outside mail like gmail or yahoo
    i have one report created which i want to send it to my mail from apex
    Please hepl me....

    If it is an interactive report that you are try it on, you could probably use subscriptions to get the report to your email.
    Thanks

  • Sending Mails Using APEX 4.2

    Hi All
    I am in need to send emails using APEX 4.2. I have seen under page processing there is option called Send Email. But really not sure how to make use of it. My requirement is to trigger a mail on employee's birthday. Following is the screenshot.
    Can anyone help me on this. Any reply would highly be appreciable.
    Process Type
    Process Attributes
    Process
    Messages
    Process Conditions
    Create Page Process - Process Type
    Cancel 
    Next
    Page:
    3 - Edit AR Employees
    Select the category of the process you wish to create:
    Select the category of the process you wish to create:
    PL/SQL
    Reset Pagination
    Plug-ins
    Session State
    Data Manipulation
    Web Services
    Form Pagination
    Send E-Mail
    Close popup window
    Run On Demand Process

    Hello,
    First you need to write a procedure to send e-mails. Please find sample code below to send e-mail to manager, if employee birthday is today
    CREATE OR REPLACE PROCEDURE pr_send_birthday_alerts
    IS
    BEGIN
      /* if V_APP_USER is null, procedure is being executed as job
      set security context */
      IF v('APP_USER') IS NULL THEN
      wwv_flow_api.set_security_group_id;
      END IF;
      -- Trigger mails if employee birthday is today
      -- Send mail to Manager email address
      /* Please change with actual table and column values */
      FOR i IN (SELECT emp.name emp_name, manager.email manager_email, manager.name manager_name FROM t_employee emp, t_employee manager WHERE emp.manager_id = manager.emp_id AND TRUNC(emp.birth_date) = TRUNC(SYSDATE))
      LOOP
      /* Send mail */
      /* Please change Subject and Body according to your need */
      APEX_MAIL.SEND(
      p_to        => i.manager_email,
      p_cc => NULL,
      p_from      => '[email protected]',
      p_subj      => 'Today is '||i.emp_name||' birthday',
      p_body      => NULL
      END LOOP;
      -- push all emails from queue
      APEX_MAIL.PUSH_QUEUE;
    END pr_send_birthday_alerts;
    Next you need to schedule a job which will run above procedure everyday to Send Birthday alerts. Please find sample code below to schedule a procedure to run as Job.
    BEGIN
      /* Change Start date according to your requirement */
      DBMS_SCHEDULER.CREATE_SCHEDULE (
      schedule_name          => 'sch_every_day',
      start_date             => TO_TIMESTAMP_TZ(TO_CHAR(SYSDATE,'YYYY-MM-DD')||' 06:00:00 +02:00','YYYY-MM-DD HH:MI:SS TZH:TZM'),
      repeat_interval        => 'FREQ=DAILY;'
      DBMS_SCHEDULER.CREATE_JOB (
      job_name                => 'job_every_day',
      schedule_name           => 'sch_every_day',
      job_type                => 'STORED_PROCEDURE',
      job_action              => 'pr_send_birthday_alerts',
      enabled                 => TRUE
      COMMIT;
    END;
    So everyday in morning 6:00 A.M. GMT+ 2, system will check if any employee birthday is today and will send alert to his/her manager.
    Please note that these code is not tested.
    Regards,
    Hari

  • Need to send mail using apex

    Hi,
    I am using apex 4.2 and oracle 11g XE. I need to send mail so I used the following code:
    HTMLDB_MAIL.SEND(
          P_TO       =>  '[email protected]',
          P_FROM     =>   [email protected]
          P_SUBJ     =>  'Data in TECHNICAL_DETAIL edited' ,
          P_BODY     =>  'Please click link below for affirmation/rejection of changes' ,
          P_BODY_HTML=>   '<p><a href="http://localhost:8080/apex/f?p=109:25:12079147455079">link</a></p>'
    It is going t apex_mail_queue successfully. Then I used the following code:
    which one i should use:
    1.
         wwv_flow_mail.push_queue(
            P_SMTP_HOSTNAME => xxx
            P_SMTP_PORTNO => 'yyy
    or
    2.
         APEX_MAIL.PUSH_QUEUE(
            P_SMTP_HOSTNAME => xxx
            P_SMTP_PORTNO => yyy
    Also what else I need to send mail and what should i  ask DBA to provide me so that mail can be sent successfully.
    Please give some idea.
    Thanks,
    Chandra Bhanu

    Hi,
    You should use APEX_MAIL.PUSH_QUEUE witch is documented
    APEX_MAIL
    Parameters
    Description
    p_smtp_hostname
    SMTP gateway host name
    p_smtp_portno
    SMTP gateway port number
    Note that these parameter values are provided for backward compatibility, but their respective values are ignored. The SMTP gateway hostname and SMTP gateway port number are exclusively derived from values entered on the Manage Environment Settings when sending email.
    Regards,
    Jari

  • HTML Tag problem when sending mails through APEX

    Hi,
    My code for sending mail is below:
    DECLARE
    l_body CLOB;
    l_body_html CLOB;
    cursor c2 is
    SELECT pn,pdt_name FROM lib_details WHERE a_date BETWEEN to_date(:P13_SDATE,'DD-MON_YYYY') AND to_date(:P13_EDATE,'DD-MON-YYYY');
    BEGIN
    for c_lib in c2
    loop
    l_body_html:=l_body_html ||
    '<html><body>
    ul>
    li>'||c_lib.pn||' , '||c_lib.pdt_name||' /li>
    /ul>'; p;
    l_body_html:=l_body_html ||'</body></html>';
    apex_mail.send(
    p_to => 'xxxx',
    p_from => 'xxxx',
    p_body => l_body_html,
    p_subj => 'Test Mail');
    END;
    Gives me the output in the format below:
    all the <html><body> tags also comes along with the email, though I get the correct output, what is the problem here?
    I am not able to figure this out. Can someone help?
    OUTPUT
    <html><body>
    ul> li>a,b
    /ul><html><body>
    ul> li>c,d
    /ul><html><body>
    PLEASE NOTE: I have intentionally removed the starting tags (<) of ul and li so that the post will not be formatted.
    Edited by: Suzi on Feb 9, 2012 1:18 PM

    >
    Gives me the output in the format below:
    all the <html><body> tags also comes along with the email, though I get the correct output, what is the problem here?
    I am not able to figure this out. Can someone help?For HTML output you need to send it using the <tt>p_body_html</tt> parameter, not <tt>p_body</tt>.
    PLEASE NOTE: I have intentionally removed the starting tags (&lt;) of ul and li so that the post will not be formatted.Posting code wrapped in <tt>\...\</tt> tags eliminates the need to resort to these bizarre circumlocutions.

  • How to send  Mail from APEX 4.1?

    Dear all,
    In APEX 4.1,
    I have a form based on the Leave_table,
    it has 5 fields,
    If the user filled all the fields and if the user clicks the APPLY/SUBMIT button the Data will be stored into the LEAVE_table ,
    Is this Possible to send the mail with the data entered as a report to a particular (manager)mail_id?
    and also the mail to contain two link/button to REJECT or APPROVE the leave applied ?
    Can anyone give me the solution?
    Thank you.
    Regards,
    Gurujothi.

    [APEX_MAIL|http://docs.oracle.com/cd/E23903_01/doc/doc.41/e21676/apex_mail.htm]

  • Problem sending mail from APEX...

    Hi everybody,
    I've looking for how to send email from my APEX application; I've been reading the forum and I've done a testing using the APEX_MAIL.send procedure. I don't know exactly how the APEX_MAIL works but it seems that my code should work. Unfortunately, it doesn't work... I should receive emails but I don't receive any of them.
    DECLARE
    l_body CLOB;
    BEGIN
    l_body := 'Thank you for your interest in the HTMLDB_MAIL package.'||utl_tcp.crlf||utl_tcp.crlf;
    l_body := l_body ||' Sincerely,'||utl_tcp.crlf;
    l_body := l_body ||' The HTMLDB Dev Team'||utl_tcp.crlf;
    APEX_MAIL.send(
    p_to => '[email protected]', -- change to your email address
    p_from => '[email protected]', -- change to a real senders email address
    p_body => l_body,
    p_subj => 'HTMLDB_MAIL Package - Plain Text message');
    wwv_flow_mail.push_queue(
    P_SMTP_HOSTNAME => 'localhost',
    P_SMTP_PORTNO => '25'
    EXCEPTION WHEN OTHERS THEN htp.p('Error');
    END;
    I execute it and there is no exception; it appears the "Procedure executed" message, but I don't receive the emails.
    Maybe I am doing wrong the push_queue process? Maybe the Hostname is wrong? Should I do something else in APEX to send the mails?
    Thank you very very much
    Message was edited by:
    sergicloser

    Hello,
    >> I'm not running on a local instance, but connected to a server.
    By local instance I meant not on apex.oracle.com. In that case, configuration issues should be considered.
    >> I've just run the SQL: Select * from apex_mail_queue
    and it has returned no data... This means that there is no emails in the queue, is it?
    The system will try to successfully send your e-mail for 10 times. If all these attempts failed, the e-mail will be removed from queue. You should send your e-mail prior to running the SQL query.
    >> The code doesn't return any error message.
    Error message will only be recorded in the queue log, which can be viewed using the apex_mail_queue view.
    >> It seems that I have a configuration problem maybe?
    That may be the case. The APEX_MAIL package is built on top of the Oracle supplied UTL_SMTP package, which must be installed and configured on your database. Is this the case with your system? (the error message in the apex_mail_queue will give you a clear indication of that).
    Regards,
    Arie.

  • Sending mail from apex application

    Hi Everyone
    I configured the APEX mail settings,
    when I am sending the mail from DATABASE by UTL_MAIL by(SQLPLUS) logging in as sysdba the mail is sending,but if I use in apex SEND E-mail process its not sending the mail,
    In ADMIN side,Manage Instance-->Mail queue I checked and clicked the SEND ALL MAIL,
    simply it showing as "mail sent" but am not receiving any mail,and also there is no ERROR(Error field is blank)
    What willl be the problem and where can I check it,or what is the alternative way?kindly help me.
    Thank you.
    Regards,
    Sabyasachi

    Hi,
    Have you configured email to your instance?
    http://docs.oracle.com/cd/E23903_01/doc/doc.41/e21678/adm_mg_service_set.htm#sthref258
    Depend your database version, do you have give needed ACL?
    http://docs.oracle.com/cd/E23903_01/doc/doc.41/e21673/otn_install.htm#BABBHCID
    http://docs.oracle.com/cd/E23903_01/doc/doc.41/e21673/otn_install.htm#CBHBJDDE
    Have you check mail log and queue if there is some useful info about problem?
    http://docs.oracle.com/cd/E23903_01/doc/doc.41/e21678/adm_mg_service_set.htm#sthref307
    Regards,
    Jari
    My Blog: http://dbswh.webhop.net/dbswh/f?p=BLOG:HOME:0
    Twitter: http://www.twitter.com/jariolai

  • Issue in sending mails from Apex -Please help

    Getting following error while processing the statment.
    ORA-01403: no data found
    Statement processed.
    create or replace procedure proc_bgv_email_accept as
    id_email number;
    l_startdate date;
    l_vacancy varchar2 (300);
    l_declinedate date;
    l_emailsenddate date;
    today_date date;
    accepted_date date;
    l_id NUMBER;
    candstat varchar2(3);
    l_subject VARCHAR2(255);
    l_body CLOB := '';
    -- ' HTML enabled mail client.' || utl_tcp.crlf;
    l_body_html CLOB;
    l_mgr_emailid varchar2(255);
    l_candid_emailid varchar2(255);
    l_from_emailid varchar2(255) :='[email protected]';
    begin
    select sysdate into today_date from dual;
    for cur1 in (select ID,candidate,hiring_manager,vacancy,hiring_manager_email,candidate_email from bgv where upper(trim(change_reason))=upper(trim('Offer Accepted by Applicant')) and to_char(dataload,'mm/dd/yyyy')=to_char(sysdate,'mm/dd/yyyy'))
    loop
    select nvl(id,0),nvl(EMAILSENTDATE,'8/28/1983'),nvl(rejcand,'N') into id_email,l_emailsenddate,candstat from email_sent_log where id=cur1.id;
    select nvl(proposed_start_date,'8/28/1983'),nvl(REJECTION_DATE,'8/28/1983') into l_startdate,l_declinedate from bgv where id=cur1.id;
    l_subject:='Please confirm';
    l_candid_emailid :=cur1.candidate_email;
    l_mgr_emailid :=cur1.hiring_manager_email;
    l_body_html:='<html>
    <link rel=stylesheet href=http://aru.us.oracle.com:8000/olaf/css/aru_blaf.css type="text/css">
    <body>
    <span>
    <table border=0 cellpadding=0 cellspacing=0 width=800>
    <tr>
    <td class=OraBGAccentDark height=1><img src=http://aru.us.oracle.com:8000/images/clear_dot.gif></td>
    </tr>
    <tr>
    <td class=OraInstructionText><font face="Georgia">
    Dear'|| cur1.candidate ||' </b>,<p/></p>
    Please confirm your LOV
    <p/><p/>
    Best Regards,<p/>
    Raj</p></font></td></tr>
    </table>
    <tr>
    <td class=OraBGAccentDark height=1><img src=http://aru.us.oracle.com:8000/images/clear_dot.gif></td>
    </tr>
    </span>
    </body>
    </html>';
    l_id := APEX_MAIL.SEND (
    P_TO => l_candid_emailid,
    P_CC => l_mgr_emailid,
    --P_BCC       => '[email protected]',
    P_FROM => l_from_emailid,
    P_BODY => l_body_html,
    P_BODY_HTML => l_body_html,
    P_SUBJ => l_subject);
    APEX_MAIL.PUSH_QUEUE;
    end loop;
    EXCEPTION
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE(SQLERRM);
    end;
    Edited by: user771319 on Feb 29, 2012 9:05 AM

    the error could be here:
    select nvl(id,0),nvl(EMAILSENTDATE,'8/28/1983'),nvl(rejcand,'N') into id_email,l_emailsenddate,candstat from email_sent_log where id=cur1.id;replace that line with:
    begin
        select nvl(id,0),nvl(EMAILSENTDATE,'8/28/1983'),nvl(rejcand,'N')
        into id_email,l_emailsenddate,candstat
        from email_sent_log
        where id=cur1.id;
    EXCEPTION
        when NO_DATA_FOUND then
            id_email := 0;
            l_emailsenddate := to_date('08/28/1983','MM/DD/YYYY');
            candstar := 'N';
    end;

  • Sending Mail from APEX

    hi ,
    we use : Application Express 4.1.1.00.23 with database 11.2 express edition
    i am facing a problem when sending email from my application
    when i go to mail queue from " administraion service" i recive error :
    ORA-29278: SMTP transient error: 421 Service not available.
    i have Enabling Network Services in Oracle Database 11g alredy by running some scripts for Granting Connect Privileges from site : http://docs.oracle.com/cd/E10513_01/doc/install.310/e10496/otn_install.htm#BEHGBHDF
    also i have test the mail server by using telnet XXXXX.XXX.com 25 and it have been connected with not problems.
    Please help !
    Thanks
    Hammam

    Hi,
    Have you configured email correctly?
    http://docs.oracle.com/cd/E23903_01/doc/doc.41/e21678/adm_mg_service_set.htm#sthref258
    Regards,
    Jari
    http://dbswh.webhop.net/dbswh/f?p=BLOG:HOME:0

  • Can't Send Mail form business catalyst webmail

    My business catalyst client has several email accounts and one of them cannot send email. This is a new problem that just occured. It has been working correctly for months. 
    I logged into webmail and I get this error when trying to send an email.
    We were unable to send your message. Please try again later.
    This same provlem was reported by eric_413 without a resolution.
    http://forums.adobe.com/message/6008518#6008518
    Paul

    Hi Paul
    Please reach out to support using this url, click on I still need help and then start chat :
    http://helpx.adobe.com/contact.html?product=business-catalyst&topic=signing-in-to-my-accou nt-or-registering-my-product
    Thanks,
    Sanjit

  • N9 Yahoo mail can't send mail

    Hello,
    is anybody experience problems sending mails form his yahoo mail account.
    If I try to send mail it say error occurred and the mail stays in Outbox.
    Receiving mail works fine on the yahoo mail account
    Thanks,

    I'm having the same issue with my N9,wouldn't work at all the other day , tried deleting and reinstalling account, manual settings for imap and pop to no avail and after about 8 hrs it started working on receive only, won't send mail. Also keeps asking me to sign into my Nokia account!! Would really like a definitive answer or solution as it is both very annoying and limiting , I know other N9 users have the same issue !!
    If I have helped at all, a click on the White Star is always appreciated :
    you can also help others by marking 'accept as solution' 

  • Looking for function that send mail

    I AM LOOKING FOR A FUNCTION THAT SEND MAIL
    <b><b>WITH ATTACMENT ONLY</b> ANYONE KNOW????
    THANKS.

    REPORT ZMAILOUTPUT
        MESSAGE-ID ZZ.
    *  CONSTANTS                                                           *
    CONSTANTS : C_X(1)      TYPE C VALUE 'X',      " For constant value
                C_OTF(3)    TYPE C VALUE 'OTF',    " For format
                C_U(1)      TYPE C VALUE 'U'.      " Mail Option
    *  VARIABLES                                                           *
    DATA : V_RQIDENT  TYPE TSP01-RQIDENT,  " For Spool Number
           V_RQCLIENT TYPE TSP01-RQCLIENT, " For Client
           V_RQO1NAME TYPE TSP01-RQO1NAME, " For Object name
           V_SPOOL    TYPE TSP01-RQIDENT,  " For Spool Number
           V_SPOOL1   TYPE TSP01-RQIDENT.  " For Spool Number
    *  FLAGS                                                               *
    DATA : F_SPOOL TYPE C.
    *   INTERNAL TABLES                                                    *
    * Internal table for sending mails
    DATA: IT_PDF          LIKE TLINE      OCCURS 10 WITH HEADER LINE,
          IT_XI_PDF       LIKE TLINE      OCCURS 0  WITH HEADER LINE,
          IT_HTML         LIKE SOLISTI1   OCCURS 0  WITH HEADER LINE,
          IT_XI_TEMP      LIKE BAPIQCMIME OCCURS 0  WITH HEADER LINE,
          IT_XI_MIME(255) TYPE C          OCCURS 0  WITH HEADER LINE.
    * For sending mail
    DATA: IT_OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
    * Internal table for Single List with Column Length 255
    DATA : IT_OBJBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    * Internal table for Single List with Column Length 255
    DATA : IT_OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    * Internal table for Structure of the API Recipient List
    DATA : IT_RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.
    * Structure of the API Recipient List
    DATA: X_DOC_CHNG LIKE SODOCCHGI1.
    * Internal table for storing the variants
    DATA : BEGIN OF IT_VARIANT1 OCCURS 0,
            VARIANT LIKE VARID-VARIANT,
           END   OF IT_VARIANT1.
    * Internal table to store variants for the programs
    DATA: IT_VARIANT2 LIKE IT_VARIANT1 OCCURS 0 WITH HEADER LINE.
    * Internal table for storing the selected values
    DATA IT_RETURN TYPE DDSHRETVAL OCCURS 0 WITH HEADER LINE.
    * Internal table for storing the mail-ids
    DATA : BEGIN OF IT_MAILID OCCURS 0,
            KOKRS LIKE CSKS-KOKRS,
            KOSTL LIKE CSKS-KOSTL,
            DATBI LIKE CSKS-DATBI,
            TELX1 LIKE CSKS-TELX1,
           END   OF IT_MAILID.
    * Internal table for storing the mail-ids
    DATA : IT_MAILID1 LIKE IT_MAILID OCCURS 0 WITH HEADER LINE.
    *   SELECTION SCREEN                                                   *
    DATA : V_CHAR TYPE CHAR50.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: S_EMAIL FOR V_CHAR  NO INTERVALS
                    LOWER CASE
                    NO-DISPLAY.
    SELECT-OPTIONS: S_EMAIL1 FOR V_CHAR  NO INTERVALS
                    LOWER CASE
                    NO-DISPLAY.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-028.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS : P_C1 AS CHECKBOX.
    SELECTION-SCREEN COMMENT 3(66) TEXT-026 FOR FIELD P_C1.
    SELECTION-SCREEN END OF LINE.
    PARAMETERS : P_SET LIKE TSP1D-PAPART MATCHCODE OBJECT ZH_TSP1D.
    SELECTION-SCREEN SKIP 1.
    PARAMETERS : P_VARA1 TYPE RS38M-SELSET.
    SELECTION-SCREEN END OF BLOCK A1.
    SELECTION-SCREEN BEGIN OF BLOCK A2 WITH FRAME TITLE TEXT-029.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS : P_C2 AS CHECKBOX.
    SELECTION-SCREEN COMMENT 3(56) TEXT-027 FOR FIELD P_C1.
    SELECTION-SCREEN END OF LINE.
    PARAMETERS : P_SET1 LIKE TSP1D-PAPART MATCHCODE OBJECT ZH_TSP1D.
    SELECTION-SCREEN SKIP 1.
    PARAMETERS : P_VARA2 TYPE RS38M-SELSET.
    SELECTION-SCREEN END OF BLOCK A2.
    * AT SELECTION SCREEN ON VALUE REQUEST
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARA1.
    * For fetching the variants available for the program
      PERFORM FETCH_VARIANTS.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARA2.
    * For fetching the variants available for the program
      PERFORM FETCH_VARIANTS1.
    * AT SELECTION SCREEN
    AT SELECTION-SCREEN.
    * For Validation
      PERFORM VALIDATION.
    *  START OF SELECTION                                                  *
    START-OF-SELECTION.
    * To get the output data and mail
      PERFORM FETCH_DATA.
    *  END OF SELECTION                                                    *
    END-OF-SELECTION.
      IF F_SPOOL = C_X.
        MESSAGE E000 WITH 'Spool Not Generated'(060).
      ENDIF.
    *&      Form  fetch_data
    *       To get the output data and mail
    FORM FETCH_DATA .
    * To send the output to spool
      PERFORM GENERATE_SPOOL.
    ENDFORM.                    " fetch_data
    *&      Form  generate_spool
    *       To send the output to spool
    FORM GENERATE_SPOOL .
      DATA: L_PARAMS LIKE PRI_PARAMS,
            L_DAYS(1)  TYPE N VALUE 2,
            L_COUNT(3) TYPE N VALUE 1,
            L_VALID    TYPE C,
            L_VALID1   TYPE C,
            L_PARAMS1  LIKE PRI_PARAMS.
      DATA: L_DEVICE TYPE USR01-SPLD.
    *Get the printer name for the user
      SELECT SINGLE SPLD INTO L_DEVICE FROM USR01 WHERE BNAME = SY-UNAME.
      IF L_DEVICE IS INITIAL.
        L_DEVICE = 'LOCL'.
      ENDIF.
    * For report-1
      IF P_C1 = 'X'.
    * Setting the print parameters
        CALL FUNCTION 'GET_PRINT_PARAMETERS'
          EXPORTING
            DESTINATION    = L_DEVICE
            COPIES         = L_COUNT
            LIST_NAME      = SY-UNAME
            LIST_TEXT      = 'SUBMIT ... TO SAP-SPOOL'(008)
            RELEASE        = C_X
            NEW_LIST_ID    = C_X
            EXPIRATION     = L_DAYS
    *        LINE_SIZE      = 255
    *        LINE_COUNT     = 65
            LAYOUT         = p_set
            SAP_COVER_PAGE = SPACE
            COVER_PAGE     = SPACE
            RECEIVER       = 'SAP*'(010)
            DEPARTMENT     = 'System'(011)
            NO_DIALOG      = C_X
          IMPORTING
            OUT_PARAMETERS = L_PARAMS
            VALID          = L_VALID.
        IF L_VALID <> SPACE.
          CLEAR V_SPOOL.
    * Fetch the spool number b4 submit
          PERFORM FETCH_RECENT_SPOOL USING V_SPOOL.
    * Submitting the program to spool
          SUBMIT RKAEP000 TO SAP-SPOOL
            USING SELECTION-SET P_VARA1
            SPOOL PARAMETERS L_PARAMS
            WITHOUT SPOOL DYNPRO
            AND RETURN.
          CLEAR V_SPOOL1.
    * Fetch the spool number after submit
          PERFORM FETCH_RECENT_SPOOL USING V_SPOOL1.
          IF V_SPOOL = V_SPOOL1.
            F_SPOOL = C_X.
            IF P_C2 IS INITIAL.
              STOP.
            ENDIF.
          ELSE.
    * Checking the format ( ABAP/OTF)
            PERFORM FORMAT_CHECK TABLES S_EMAIL.
          ENDIF.
        ELSE.
          MESSAGE E000 WITH 'Problem in print settings'(003).
          STOP.
        ENDIF.
      ENDIF.
    * For Report-2
      IF P_C2 = 'X'.
    * Setting the print parameters
        CALL FUNCTION 'GET_PRINT_PARAMETERS'
          EXPORTING
            DESTINATION    = L_DEVICE
            COPIES         = L_COUNT
            LIST_NAME      = SY-UNAME
            LIST_TEXT      = 'SUBMIT ... TO SAP-SPOOL'(008)
            RELEASE        = C_X
            NEW_LIST_ID    = C_X
            EXPIRATION     = L_DAYS
    *        LINE_SIZE      = 200
    *        LINE_COUNT     = 65
            LAYOUT         = p_set1
            SAP_COVER_PAGE = SPACE
            COVER_PAGE     = SPACE
            RECEIVER       = 'SAP*'(010)
            DEPARTMENT     = 'System'(011)
            NO_DIALOG      = C_X
          IMPORTING
            OUT_PARAMETERS = L_PARAMS1
            VALID          = L_VALID1.
        IF L_VALID1 <> SPACE.
          CLEAR V_SPOOL.
    * Fetch the spool number b4 submit
          PERFORM FETCH_RECENT_SPOOL USING V_SPOOL.
    * Submitting the program to spool
          SUBMIT GP3DIEHXY88SNFJ0391V7KF9EK7050 TO SAP-SPOOL
            USING SELECTION-SET P_VARA2
            SPOOL PARAMETERS L_PARAMS1
            WITHOUT SPOOL DYNPRO
            AND RETURN.
          CLEAR V_SPOOL1.
    * Fetch the spool number after submit
          PERFORM FETCH_RECENT_SPOOL USING V_SPOOL1.
          IF V_SPOOL = V_SPOOL1.
            MESSAGE E000 WITH 'Spool Not Generated'(060).
            STOP.
          ENDIF.
    * Checking the format ( ABAP/OTF)
          PERFORM FORMAT_CHECK TABLES S_EMAIL1.
        ELSE.
          MESSAGE E000 WITH 'Problem in print settings'(003).
          STOP.
        ENDIF.
      ENDIF.
    ENDFORM.                    " generate_spool
    *&      Form  fetch_recent_spool
    *       Fetch the recent spool number generated
    FORM FETCH_RECENT_SPOOL USING P_V_SPOOL TYPE TSP01-RQIDENT .
      DATA:  L_USER LIKE TSP01-RQ2NAME.
      CLEAR : V_RQIDENT,
              V_RQCLIENT,
              V_RQO1NAME.
      L_USER = SY-UNAME.
    * Get latest Spool No
      SELECT SINGLE RQIDENT
                    RQCLIENT
                    RQO1NAME
             INTO (V_RQIDENT , V_RQCLIENT , V_RQO1NAME)
        FROM TSP01
       WHERE RQCRETIME =   ( SELECT MAX( RQCRETIME )
                                    FROM TSP01
                                   WHERE RQ2NAME EQ L_USER
                                     AND RQFINAL EQ '.' ).
      IF SY-SUBRC = 0 .
        P_V_SPOOL = V_RQIDENT.
      ENDIF.
    ENDFORM.                    " fetch_recent_spool
    *&      Form  format_check
    *       Checking the format ( ABAP/OTF)
    FORM FORMAT_CHECK TABLES P_S_EMAIL STRUCTURE S_EMAIL.
      DATA : L_OBJTYPE    LIKE RSTSTYPE-TYPE.
      CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
        EXPORTING
          AUTHORITY     = 'SP01'(019)
          CLIENT        = V_RQCLIENT
          NAME          = V_RQO1NAME
          PART          = 1
        IMPORTING
          OBJTYPE       = L_OBJTYPE
        EXCEPTIONS
          FB_ERROR      = 1
          FB_RSTS_OTHER = 2
          NO_OBJECT     = 3
          NO_PERMISSION = 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.
      IF L_OBJTYPE(3) = C_OTF.
    * Convert OTF Spool to PDF
        PERFORM CONVERT_OTF2PDF TABLES P_S_EMAIL.
      ELSE.
    * Convert ABAP Spool to PDF
        PERFORM CONVERT_ABAP2PDF TABLES P_S_EMAIL.
      ENDIF.
    ENDFORM.                    " format_check
    *&      Form  convert_otf2pdf
    *       Convert OTF Spool to PDF
    FORM CONVERT_OTF2PDF TABLES P_P_S_EMAIL STRUCTURE S_EMAIL .
      CLEAR   IT_PDF.
      REFRESH IT_PDF.
      DATA : L_BYTECOUNT  TYPE I.
    * Fn. to get the PDF format
      CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
        EXPORTING
          SRC_SPOOLID              = V_RQIDENT
          NO_DIALOG                = 'X'
        IMPORTING
          PDF_BYTECOUNT            = L_BYTECOUNT
        TABLES
          PDF                      = IT_PDF
        EXCEPTIONS
          ERR_NO_OTF_SPOOLJOB      = 1
          ERR_NO_SPOOLJOB          = 2
          ERR_NO_PERMISSION        = 3
          ERR_CONV_NOT_POSSIBLE    = 4
          ERR_BAD_DSTDEVICE        = 5
          USER_CANCELLED           = 6
          ERR_SPOOLERROR           = 7
          ERR_TEMSEERROR           = 8
          ERR_BTCJOB_OPEN_FAILED   = 9
          ERR_BTCJOB_SUBMIT_FAILED = 10
          ERR_BTCJOB_CLOSE_FAILED  = 11.
      IF SY-SUBRC = 0.
    * For page format
        PERFORM PAGE_FORMAT TABLES P_P_S_EMAIL.
      ELSE.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " convert_otf2pdf
    *&      Form  convert_abap2pdf
    *        Convert ABAP Spool to PDF
    FORM CONVERT_ABAP2PDF TABLES P_P_S_EMAIL STRUCTURE S_EMAIL.
      CLEAR   IT_PDF.
      REFRESH IT_PDF.
      DATA : L_BYTECOUNT  TYPE I.
    * Fn. to convert to PDF format
      CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
        EXPORTING
          SRC_SPOOLID              = V_RQIDENT
          NO_DIALOG                = 'X'
        IMPORTING
          PDF_BYTECOUNT            = L_BYTECOUNT
        TABLES
          PDF                      = IT_PDF
        EXCEPTIONS
          ERR_NO_ABAP_SPOOLJOB     = 1
          ERR_NO_SPOOLJOB          = 2
          ERR_NO_PERMISSION        = 3
          ERR_CONV_NOT_POSSIBLE    = 4
          ERR_BAD_DESTDEVICE       = 5
          USER_CANCELLED           = 6
          ERR_SPOOLERROR           = 7
          ERR_TEMSEERROR           = 8
          ERR_BTCJOB_OPEN_FAILED   = 9
          ERR_BTCJOB_SUBMIT_FAILED = 10
          ERR_BTCJOB_CLOSE_FAILED  = 11.
      IF SY-SUBRC = 0.
    * For page formatting
        PERFORM PAGE_FORMAT TABLES P_P_S_EMAIL.
      ELSE.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " convert_abap2pdf
    *&      Form  send_mail
    *       For sending mail
    FORM SEND_MAIL TABLES MAIL STRUCTURE S_EMAIL .
    * Structures and internal tables for the send data
      DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS 2  WITH HEADER LINE,
            OBJHEAD LIKE SOLISTI1   OCCURS 1  WITH HEADER LINE,
            OBJBIN  LIKE SOLISTI1   OCCURS 0  WITH HEADER LINE,
            OBJTXT  LIKE SOLISTI1   OCCURS 10 WITH HEADER LINE,
            RECLIST LIKE SOMLRECI1  OCCURS 5  WITH HEADER LINE.
      DATA: DOC_CHNG LIKE SODOCCHGI1,
            TAB_LINES LIKE SY-TABIX.
    * Data for the status output after sending
      DATA: SENT_TO_ALL LIKE SONV-FLAG.
      CLEAR: IT_RECLIST, IT_RECLIST[],
             IT_OBJTXT , IT_OBJTXT[],
             IT_OBJPACK, IT_OBJPACK[],
             IT_OBJBIN , IT_OBJBIN[],X_DOC_CHNG.
      LOOP AT IT_HTML.
        OBJBIN-LINE = IT_HTML-LINE.
        APPEND OBJBIN.
        CLEAR OBJBIN.
      ENDLOOP.
    * Create the document which is to be sent
      DOC_CHNG-OBJ_NAME  = 'List'(012).
      DOC_CHNG-OBJ_DESCR = 'Mail'(013).
    * Heading
      OBJTXT-LINE = 'Mail with pdf attachment'(014).
      APPEND OBJTXT.
      CLEAR OBJTXT.
    * Size
      DESCRIBE TABLE OBJTXT LINES TAB_LINES.
      READ TABLE OBJTXT INDEX TAB_LINES.
      DOC_CHNG-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJTXT ).
    * Fill the fields of the packing_list for the main document:
      CLEAR OBJPACK-TRANSF_BIN.
    * The document needs no header (head_num = 0)
      OBJPACK-HEAD_START = 1.
      OBJPACK-HEAD_NUM = 0.
    * Body
      OBJPACK-BODY_START = 1.
      OBJPACK-BODY_NUM = TAB_LINES.
      OBJPACK-DOC_TYPE = 'RAW'(015).
      APPEND OBJPACK.
    * Create the attachment (the list itself)
      DESCRIBE TABLE OBJBIN LINES TAB_LINES.
    * Fill the fields of the packing_list for the attachment:
      OBJPACK-TRANSF_BIN = 'X'.
    * Header
      OBJPACK-HEAD_START = 1.
      OBJPACK-HEAD_NUM = 0.
    * Body
      OBJPACK-BODY_START = 1.
      OBJPACK-BODY_NUM = TAB_LINES.
      OBJPACK-DOC_TYPE = 'PDF'(016).
      OBJPACK-OBJ_NAME = 'Attachment'(017).
      OBJPACK-OBJ_DESCR = 'Mail with pdf Attachment'(018).
      OBJPACK-DOC_SIZE = TAB_LINES * 255.
      APPEND OBJPACK.
    *-Fill the mail recipient list
      LOOP AT MAIL.
        RECLIST-RECEIVER = MAIL-LOW.
        RECLIST-REC_TYPE = C_U.
        APPEND RECLIST.
        CLEAR: RECLIST,
               MAIL.
      ENDLOOP.
    *-Send the document by calling the SAPoffice API1 module for sending
    *-documents with attachments
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
        EXPORTING
          DOCUMENT_DATA              = DOC_CHNG
          PUT_IN_OUTBOX              = C_X
          COMMIT_WORK                = C_X
        IMPORTING
          SENT_TO_ALL                = SENT_TO_ALL
        TABLES
          PACKING_LIST               = OBJPACK
          OBJECT_HEADER              = OBJHEAD
          CONTENTS_BIN               = OBJBIN
          CONTENTS_TXT               = OBJTXT
          RECEIVERS                  = RECLIST
        EXCEPTIONS
          TOO_MANY_RECEIVERS         = 1
          DOCUMENT_NOT_SENT          = 2
          OPERATION_NO_AUTHORIZATION = 4
          OTHERS                     = 99.
      CASE SY-SUBRC .
        WHEN 0.
          MESSAGE I000 WITH 'Mail has been sent successfully'(006).
        WHEN OTHERS.
          MESSAGE E000 WITH 'Problem in sending the mail'(023).
      ENDCASE.
    ENDFORM.                    " send_mail
    *&      Form  page_format
    *        For page foramtting
    FORM PAGE_FORMAT TABLES EMAIL STRUCTURE S_EMAIL .
      DATA : L_LINES       TYPE I,
             L_TEMP(500)   TYPE C,
             L_OFFSET      TYPE P,
             L_LINESLEN(2) TYPE P,
             L_MIMELEN(2)  TYPE P,
             L_TABIX       LIKE SY-TABIX.
      CLEAR : IT_XI_PDF,
              IT_XI_TEMP.
      REFRESH : IT_XI_PDF,
                IT_XI_TEMP.
      IT_XI_PDF[] = IT_PDF[].
    * Reformat the line to 255 characters wide (--code from SAP--)
      CLEAR: L_TEMP, L_OFFSET, IT_XI_TEMP.
      DESCRIBE TABLE IT_XI_PDF   LINES  L_LINES.
      DESCRIBE FIELD IT_XI_PDF   LENGTH L_LINESLEN IN CHARACTER MODE.
      DESCRIBE FIELD IT_XI_TEMP  LENGTH L_MIMELEN IN CHARACTER MODE.
      LOOP AT IT_XI_PDF.
        L_TABIX = SY-TABIX.
        MOVE IT_XI_PDF TO L_TEMP+L_OFFSET.
        IF L_TABIX = L_LINES.
          L_LINESLEN = STRLEN( IT_XI_PDF ).
        ENDIF.
        L_OFFSET = L_OFFSET + L_LINESLEN.
        IF L_OFFSET GE L_MIMELEN.
          CLEAR IT_XI_TEMP.
          IT_XI_TEMP = L_TEMP(L_MIMELEN).
          APPEND IT_XI_TEMP.
          SHIFT L_TEMP BY L_MIMELEN PLACES.
          L_OFFSET = L_OFFSET - L_MIMELEN.
        ENDIF.
        IF L_TABIX = L_LINES.
          IF L_OFFSET GT 0.
            CLEAR IT_XI_TEMP.
            IT_XI_TEMP = L_TEMP(L_OFFSET).
            APPEND IT_XI_TEMP.
          ENDIF.
        ENDIF.
      ENDLOOP.
      CLEAR : IT_XI_MIME,
              IT_XI_MIME[].
      LOOP AT IT_XI_TEMP.
        IT_XI_MIME(255) = IT_XI_TEMP-LINE.
        APPEND IT_XI_MIME.
        CLEAR  IT_XI_MIME.
      ENDLOOP.
    * Final Data
      CLEAR : IT_HTML,
              IT_HTML[].
      IT_HTML[] = IT_XI_MIME[].
    * For sending mail
      PERFORM SEND_MAIL TABLES EMAIL.
    ENDFORM.                    " page_format
    *&      Form  fetch_variants
    *       For fetching the variants available for the program
    FORM FETCH_VARIANTS .
      DATA : L_PROGRAM LIKE RS38M-PROGRAMM VALUE 'RKAEP000',
             L_VARA1 TYPE DFIES-FIELDNAME VALUE 'P_VARA1'.
      CLEAR : IT_VARIANT1,
              IT_VARIANT1[].
    * Get variants
      PERFORM GET_VARIANTS TABLES IT_VARIANT1
                           USING L_PROGRAM.
    * F4 Help
      IF NOT IT_VARIANT1[] IS INITIAL.
        PERFORM GET_F4_HELP TABLES IT_VARIANT1
                             USING L_VARA1
                            CHANGING P_VARA1.
      ELSE.
        MESSAGE E000 WITH 'No variants available for report1'(054).
      ENDIF.
    ENDFORM.                    " fetch_variants
    *&      Form  validation
    *       For Validation
    FORM VALIDATION .
      DATA : L_PRO1 LIKE RS38M-PROGRAMM VALUE 'RKAEP000',
             L_PRO2 LIKE RS38M-PROGRAMM VALUE 'GP3DIEHXY88SNFJ0391V7KF9EK7050',
             L_C1,
             L_C2.
    * If both check-box are unchecked
      IF P_C1 IS INITIAL
    AND P_C2 IS INITIAL.
        MESSAGE E000 WITH 'Check any one check-box'(049).
      ENDIF.
    * If checked without varaint
      IF NOT P_C1 IS INITIAL AND P_VARA1 IS INITIAL.
        MESSAGE E000 WITH 'Please give any one of the variant for report1'(055).
      ENDIF.
    * If checked without varaint
      IF NOT P_C2 IS INITIAL AND P_VARA2 IS INITIAL.
        MESSAGE E000 WITH 'Please give any one of the variant for report2'(061).
      ENDIF.
    * Reading the variant and fetching the mail-ids
      IF P_C1 = C_X.
        L_C1 = '1'.
        CLEAR : S_EMAIL,
                S_EMAIL[].
        PERFORM READ_VARIANTS TABLES IT_MAILID
                                     S_EMAIL
                               USING P_VARA1
                                     L_PRO1
                                     L_C1.
        IF S_EMAIL[] IS INITIAL.
          MESSAGE E000 WITH 'No Id available for given Cost report1'(066).
        ELSE.
          SORT S_EMAIL BY LOW.
          DELETE ADJACENT DUPLICATES FROM S_EMAIL COMPARING LOW.
        ENDIF.
      ENDIF.
    * Reading the variant and fetching the mail-ids
      IF P_C2 = C_X.
        CLEAR : S_EMAIL1,
                S_EMAIL1[].
        L_C2 = '2'.
        PERFORM READ_VARIANTS TABLES IT_MAILID1
                                     S_EMAIL1
                               USING P_VARA2
                                     L_PRO2
                                     L_C2.
        IF S_EMAIL1[] IS INITIAL.
          MESSAGE E000 WITH 'No Id available for given Cost report2'(067).
        ELSE.
          SORT S_EMAIL1 BY LOW.
          DELETE ADJACENT DUPLICATES FROM S_EMAIL1 COMPARING LOW.
        ENDIF.
      ENDIF.
    ENDFORM.                    " validation
    *&      Form  GET_VARIANTS
    *       Fetching Variants
    FORM GET_VARIANTS  TABLES   P_IT_VARIANT STRUCTURE IT_VARIANT1
                       USING    P_V_PROGRAM  TYPE RS38M-PROGRAMM.
      SELECT VARIANT
             FROM VARID
             INTO TABLE P_IT_VARIANT
             WHERE REPORT = P_V_PROGRAM.
    ENDFORM.                    " GET_VARIANTS
    *&      Form  GET_F4_HELP
    *       text
    FORM GET_F4_HELP  TABLES   P_IT_VARIANT1 STRUCTURE IT_VARIANT1
                       USING   P_L_VARA1 LIKE DFIES-FIELDNAME
                      CHANGING P_P_VARA LIKE P_VARA1.
    * Fn. for Pop-Up
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          RETFIELD        = P_L_VARA1
          VALUE_ORG       = 'S'
          DISPLAY         = ' '
        TABLES
          VALUE_TAB       = P_IT_VARIANT1
          RETURN_TAB      = IT_RETURN
        EXCEPTIONS
          PARAMETER_ERROR = 1
          NO_VALUES_FOUND = 2
          OTHERS          = 3.
      IF SY-SUBRC = 0.
        P_P_VARA = IT_RETURN-FIELDVAL.
      ELSE.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " GET_F4_HELP
    *&      Form  FETCH_VARIANTS1
    *       text
    FORM FETCH_VARIANTS1 .
      DATA : V_PROGRAM1 LIKE RS38M-PROGRAMM VALUE 'GP3DIEHXY88SNFJ0391V7KF9EK7050',
             L_VARA2  TYPE DFIES-FIELDNAME VALUE 'P_VARA2'.
      CLEAR : IT_VARIANT2,
              IT_VARIANT2[].
    * Get Variants
      PERFORM GET_VARIANTS TABLES IT_VARIANT2
                           USING V_PROGRAM1.
    * F4 Help
      IF NOT IT_VARIANT2[] IS INITIAL.
        PERFORM GET_F4_HELP TABLES IT_VARIANT2
                            USING  L_VARA2
                          CHANGING P_VARA2.
      ELSE.
        MESSAGE E000 WITH 'No variants available for report2'(050).
      ENDIF.
    ENDFORM.                    " FETCH_VARIANTS1
    *&      Form  read_variants
    *        Reading the variant and fetching the mail-ids
    FORM READ_VARIANTS TABLES P_IT_MAILID STRUCTURE IT_MAILID
                              P_S_EMAIL   STRUCTURE S_EMAIL
                       USING  P_P_VARA1   LIKE P_VARA1
                              P_L_PRO1    LIKE RS38M-PROGRAMM
                              P_L_C1      TYPE C.
      DATA : L_TEMP(44),
             IT_VALUTAB LIKE RSPARAMS OCCURS 0 WITH HEADER LINE.
      RANGES : R_COCEN FOR CSKS-KOSTL.
    * Function Module to get the variant contents
      CALL FUNCTION 'RS_VARIANT_CONTENTS'
        EXPORTING
          REPORT               = P_L_PRO1
          VARIANT              = P_P_VARA1
        TABLES
          VALUTAB              = IT_VALUTAB
        EXCEPTIONS
          VARIANT_NON_EXISTENT = 1
          VARIANT_OBSOLETE     = 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.
      CLEAR : R_COCEN,
              R_COCEN[].
      LOOP AT IT_VALUTAB WHERE SELNAME = 'KOSTL'
                            OR SELNAME = '_C-CCTR'.
    * Getting the range of cost centers
        IF IT_VALUTAB-OPTION = 'BT'.
          R_COCEN-LOW    = IT_VALUTAB-LOW.
    * For Conversion Routine
          PERFORM CONVERSION USING R_COCEN-LOW.
          R_COCEN-HIGH   = IT_VALUTAB-HIGH.
    * For Conversion Routine
          PERFORM CONVERSION USING R_COCEN-HIGH.
          R_COCEN-OPTION = 'BT'.
          R_COCEN-SIGN   = 'I'.
          APPEND R_COCEN.
          CLEAR  R_COCEN.
        ENDIF.
    * Getting the single cost centers
        IF IT_VALUTAB-OPTION = 'EQ'.
          R_COCEN-LOW    = IT_VALUTAB-LOW.
    * For Conversion Routine
          PERFORM CONVERSION USING R_COCEN-LOW.
          R_COCEN-OPTION = 'EQ'.
          R_COCEN-SIGN   = 'I'.
          APPEND R_COCEN.
          CLEAR  R_COCEN.
        ENDIF.
      ENDLOOP.
    * If no cost centers
      IF NOT R_COCEN[] IS INITIAL.
        SELECT KOKRS
               KOSTL
               DATBI
               TELX1
          FROM CSKS
               INTO TABLE P_IT_MAILID
         WHERE KOSTL IN R_COCEN.
        IF P_IT_MAILID[] IS INITIAL.
          IF P_L_C1 = '1'.
            MESSAGE E000 WITH 'No IDs available for report1'(059).
          ELSEIF P_L_C1 = '2'.
            MESSAGE E000 WITH 'No IDs available for report2'(062).
          ENDIF.
        ENDIF.
    * Deleting the blank entries
        DELETE P_IT_MAILID WHERE TELX1 = SPACE.
        CLEAR L_TEMP.
        READ TABLE P_IT_MAILID INDEX 1.
        L_TEMP = P_IT_MAILID-TELX1.
        DATA : L_CHECK.
        LOOP AT P_IT_MAILID WHERE TELX1 <> L_TEMP.
          L_CHECK = C_X.
        ENDLOOP.
    * For checking the unique ids
        IF L_CHECK = C_X.
          IF P_L_C1 = '1'.
            MESSAGE E000 WITH 'No unique mail-ids for  report1'(058).
          ELSEIF P_L_C1 = '2'.
            MESSAGE E000 WITH 'No unique mail-ids for  report2'(065).
          ENDIF.
        ENDIF.
    * Populating the IDs for the cost centers
        LOOP AT P_IT_MAILID.
          SET LOCALE LANGUAGE SY-LANGU.
          TRANSLATE P_IT_MAILID-TELX1 TO LOWER CASE.
          SET LOCALE LANGUAGE SPACE .
          CONCATENATE P_IT_MAILID-TELX1 '@allergan.com' INTO L_TEMP.
          P_S_EMAIL-LOW = L_TEMP.
          P_S_EMAIL-SIGN = 'I'.
          P_S_EMAIL-OPTION = 'EQ'.
          APPEND P_S_EMAIL.
          CLEAR  P_S_EMAIL.
        ENDLOOP.
      ELSE.
        IF P_L_C1 = '1'.
          MESSAGE E000 WITH 'No Cost Center Available for report1'(057).
        ELSEIF P_L_C1 = '2'.
          MESSAGE E000 WITH 'No Cost Center Available for report2'(063).
        ENDIF.
      ENDIF.
    ENDFORM.                    " read_variants
    *&      Form  CONVERSION
    *       For Conversion Routine
    FORM CONVERSION  USING    P_IT_VALUTAB_LOW TYPE C.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT  = P_IT_VALUTAB_LOW
        IMPORTING
          OUTPUT = P_IT_VALUTAB_LOW.
    ENDFORM.                    " CONVERSION
    check this Program......

  • How to create job to run daily based on form values entered and send mail.

    Hi,
    In DB we have 3 columns: creation_date, name, approved_or_not. Default for approved_or_not is 'No'.
    In the application form page suppose I fill in sysdate for creation_date and leave default for approved_or_not and click [create] button.
    Now a job should run everyday and check for where (approved_or_not='No' & creation_date = 'sysdate - 1') and send mail to the person in 'name' field mentioning: 'Approval pending. click on link <some_link> for details on approval'.
    Could anyone give me pointers to example on such job? (Working on APEX 3.0)
    Thanks,
    Priyanka

    create a DBMS JOB
    check out this forum link.
    dbms_job

Maybe you are looking for