E-Mail a Report

I am trying to generate a 6i report in Adobe PDF format by making a call in a form to a Reports Server on the web, and then automatically have an e-mail generated with the report as an attachment. When generating the report directly from Report 6i Builder, it works fine to specify the DESTYPE, DESFORMAT, and DESNAME parameters. However, once I try and implement this in my web application it fails and nothing is generated. Any ideas how I can create this e-mail with attachment on the web? Thanks,
Adam

On the web, the report is generated and emailed on the web server. You have to have a mail program on the web server to send reports.
To see the error message, access the report status page:
http://webserver/dev60cgi/rwcgi60.exe/showjobs?server=Repserver

Similar Messages

  • E-mail Campaign Reports

    Hi,
    Is it possible to send e-mail campaigns through Webmail, but still obtain e-mail campaign reports through Business Catalyst?
    I have some e-mail lists that I can only access through webmail, but require the reporting features that Business Catalyst provides.
    Thank you,
    Denise

    Hi Manatee2013,
    It's not possible to use your webmail account for mass mail-outs. This is against our email provider's policy and you may risk having your email account temporarily disabled. Please only use the email marketing campaign within the admin console of your site for this specific feature.
    Note that within webmail you can export your address book. However you'd need to then modify the format of the exported file if you then wish to re-import this list onto your site as a mailing list.
    Cheers.

  • Mail server reports invalid login. Retype login and server accepts it. Password Manager selected.

    TBird v 24.5 running on W7 and Avast Free AV (up to date) running.
    For years TB has been successfully accessing the pop mail account on this PC with Avast, etc...
    Recently the provider (Centurylink/Embarqmail) made some changes. I double-checked the settings against their online list of settings. Also went over them with the Tech Support folks on the phone.
    Upon opening TB, it goes to check mail and reports back:
    Sending of username did not succeed. Mail server pop.centurylink.net responded Auth-status invalid login or password.
    Press OK, then select Re-type PW. Enter the same password as I always have, and select Password Manager to remember.
    TB will successfully check mail.
    Close TB, start it up again, and get the same response. Go though the same motions, and am able to get mail.
    Centurylink/Embarq has said repeatedly that I need to contact the manufacturer of TB... They say they have given me all the support and settings they can.
    I've tried changing all sorts of settings to no avail.
    Hoping that someone out there recognizes this problem and can offer a solution, or give me some items to check to get to the bottom of it.
    Thank you in advance for your time.
    System details as shown are for the PC I'm using to submit the request, not the PC I'm trying to solve the problem upon.

    You can try this:
    Open TB, go to Tools/Options/Security/Passwords, and click saved passwords. Select (click) the email with the password issue, and then click remove. Restart TB.
    The password prompt comes up. Enter password, check the remember option, and see if that fixes the issue by restarting and seeing if it logs in without issue.

  • Exporting a mailing label report to PDF shifts the address off ...

    Hi.
    The report is created using the wizard "File->New->Mailing Label Report". Everything looks good at the preview. Following are the dimensions:
    - 4 X 1 inches
    - 2 labels across, 10 down
    - Paper would be 8-1/2 X 11 inches (Letter sized) (labeled) paper
    - 0.5 inches page margin on top and bottom
    - 0.156 inches left & right margins
    - Horizontally .188 inches between labels
    - Vertically NO space between labels
    For this, in the Crystal Reports Designer, I used Mailing Label Type = "Address (Avery 5261)".
    Issue
    However, when trying to export the report to PDF and when we print the report, addresses go off the labels (shifts up slightly starting from the begining). It looks like the font sizes, etc are not maintained. Therefore, visually, addresses shifts up gradually and does not fall into labels.
    Other specific details
    The first address was too low, I mean after .5 inches top margin, this first address started to appear .4 inches down the margin. If we measure from top of one address to the top of next one, it is about .9 inch and not 1 inch.
    Later I tried this [template|http://www.worldlabel.com/Pages/crystal-reports.htm] as well. I faced the same issue.
    Had anyone worked with mailing labels report faced similar issue?
    I appreciate your help

    Go through the following SAP Note
    [https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_bip/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes%7B6163636573733d36393736354636443646363436353344333933393338323636393736354637333631373036453646373436353733354636453735364436323635373233443330333033303331333233303336333933353336%7D.do]
    Regards,
    Raghavendra.G

  • How to mail a report

    hi
    i have a form with option to create a report with mode cache, file, printer, mail etc. now i want to mail the report directly from that form. how can i achieve this?
    thanks

    HI
    also add a "from" parameter (in user parameters) and set the initial value as your source e-mail ID
    This works nicely.
    VPaaru

  • Problem in sending mail from REPORT BUILDER...HELP ...PLS ....URGENT

    Hi All,
    I added the mailserver part in the rwbuilder.conf file.This is how it looks
    <pluginParam name="mailServer">smtp.xxx.com</pluginParam>
    The smtp server of our company is working fine.
    Now when i am sending mail frm report builder i am getting the error.
    Pls tell me .....
    Do i have to configure any other file?
    Should the smtp server be running in my local machine?WHAT IS THE SOLUTION ...FOR THIS PROBLEM?
    Please someone give me some guidance..
    regards,
    ashok

    Hi,
    Pls give some idea ......
    your reply will be greatly appreciated.
    regards,
    ashok

  • Mailing the Report Output-Does not generating file name

    Dear Gurus,
           The below program fulfils the "mailing the report" requirement .it sends the out put as an attachment in XLS format.But one problem exists i.e.,it does not generate  filename.It gives the filename as ".XLS"(DOT XLS).
    What should be done that system generates a filename?
    *& Report  ZTESTMAIL                                                   *
    REPORT  ZTESTMAIL                               .
    tables: ekko.
    parameters: p_email type somlreci1-receiver.
    types: begin of t_ekpo,
    ebeln type ekpo-ebeln,
    ebelp type ekpo-ebelp,
    aedat type ekpo-aedat,
    matnr type ekpo-matnr,
    end of t_ekpo.
    data: it_ekpo type standard table of t_ekpo initial size 0,
    wa_ekpo type t_ekpo.
    types: begin of t_charekpo,
    ebeln(10) type c,
    ebelp(5) type c,
    aedat(8) type c,
    matnr(18) type c,
    end of t_charekpo.
    data: wa_charekpo type t_charekpo.
    data: it_message type standard table of solisti1 initial size 0
    with header line.
    data: it_attach type standard table of solisti1 initial size 0
    with header line.
    data: t_packing_list like sopcklsti1 occurs 0 with header line,
    t_contents like solisti1 occurs 0 with header line,
    t_receivers like somlreci1 occurs 0 with header line,
    t_attachment like solisti1 occurs 0 with header line,
    t_object_header like solisti1 occurs 0 with header line,
    w_cnt type i,
    w_sent_all(1) type c,
    w_doc_data like sodocchgi1,
    gd_error type sy-subrc,
    gd_reciever type sy-subrc.
    t_object_header = 'Text.xls'. append t_object_header.
    *START_OF_SELECTION
    start-of-selection.
    Retrieve sample data from table ekpo
    perform data_retrieval.
    Populate table with detaisl to be entered into .xls file
    perform build_xls_data_table.
    *END-OF-SELECTION
    end-of-selection.
    Populate message body text
    perform populate_email_message_body.
    Send file by email as .xls speadsheet
    perform send_file_as_email_attachment
    tables it_message
    it_attach
    using p_email
    'Example .xls documnet attachment'
    'XLS'
    'PO'
    changing gd_error
    gd_reciever.
    Instructs mail send program for SAPCONNECT to send email(rsconn01)
    perform initiate_mail_execute_program.
    *& Form DATA_RETRIEVAL
    Retrieve data form EKPO table and populate itab it_ekko
    form data_retrieval.
    select ebeln ebelp aedat matnr
    up to 10 rows
    from ekpo
    into table it_ekpo.
    endform. " DATA_RETRIEVAL
    *& Form BUILD_XLS_DATA_TABLE
    Build data table for .xls document
    form build_xls_data_table.
    *CONSTANTS: con_cret TYPE x VALUE '0D', "OK for non Unicode
    *con_tab TYPE x VALUE '09'. "OK for non Unicode
    *If you have Unicode check active in program attributes thnen you will
    *need to declare constants as follows
    *class cl_abap_char_utilities definition load.
    constants:
    con_tab type c value cl_abap_char_utilities=>horizontal_tab,
    con_cret type c value cl_abap_char_utilities=>cr_lf.
    concatenate 'EBELN' 'EBELP' 'AEDAT' 'MATNR'
    into it_attach separated by con_tab.
    concatenate con_cret it_attach into it_attach.
    append it_attach.
    loop at it_ekpo into wa_charekpo.
    concatenate wa_charekpo-ebeln wa_charekpo-ebelp
    wa_charekpo-aedat wa_charekpo-matnr
    into it_attach separated by con_tab.
    concatenate con_cret it_attach into it_attach.
    append it_attach.
    endloop.
    endform. " BUILD_XLS_DATA_TABLE
    *& Form SEND_FILE_AS_EMAIL_ATTACHMENT
    Send email
    form send_file_as_email_attachment tables pit_message
    pit_attach
    using p_email
    p_mtitle
    p_format
    p_filename
    p_attdescription
    p_sender_address
    p_sender_addres_type
    changing p_error
    p_reciever.
    data: ld_error type sy-subrc,
    ld_reciever type sy-subrc,
    ld_mtitle like sodocchgi1-obj_descr,
    ld_email like somlreci1-receiver,
    ld_format type so_obj_tp ,
    ld_attdescription type so_obj_nam ,
    ld_attfilename type so_obj_des ,
    ld_sender_address like soextreci1-receiver,
    ld_sender_address_type like soextreci1-adr_typ,
    ld_receiver like sy-subrc.
    ld_email = p_email.
    ld_mtitle = p_mtitle.
    ld_format = p_format.
    ld_attdescription = p_attdescription.
    ld_attfilename = p_filename.
    ld_sender_address = p_sender_address.
    ld_sender_address_type = p_sender_addres_type.
    Fill the document data.
    w_doc_data-doc_size = 1.
    Populate the subject/generic message attributes
    w_doc_data-obj_langu = sy-langu.
    w_doc_data-obj_name = 'SAPRPT'.
    w_doc_data-obj_descr = ld_mtitle .
    w_doc_data-sensitivty = 'F'.
    Fill the document data and get size of attachment
    clear w_doc_data.
    read table it_attach index w_cnt.
    w_doc_data-doc_size =
    ( w_cnt - 1 ) * 255 + strlen( it_attach ).
    w_doc_data-obj_langu = sy-langu.
    w_doc_data-obj_name = 'SAPRPT'.
    w_doc_data-obj_descr = ld_mtitle.
    w_doc_data-sensitivty = 'F'.
    clear t_attachment.
    refresh t_attachment.
    t_attachment[] = pit_attach[].
    Describe the body of the message
    clear t_packing_list.
    refresh t_packing_list.
    t_packing_list-transf_bin = space.
    t_packing_list-head_start = 1.
    t_packing_list-head_num = 0.
    t_packing_list-body_start = 1.
    describe table it_message lines t_packing_list-body_num.
    t_packing_list-doc_type = 'RAW'.
    append t_packing_list.
    Create attachment notification
    t_packing_list-transf_bin = 'X'.
    t_packing_list-head_start = 1.
    t_packing_list-head_num = 1.
    t_packing_list-body_start = 1.
    describe table t_attachment lines t_packing_list-body_num.
    t_packing_list-doc_type = ld_format.
    t_packing_list-obj_descr = ld_attdescription.
    t_packing_list-obj_name = ld_attfilename.
    t_packing_list-doc_size = t_packing_list-body_num * 255.
    append t_packing_list.
    Add the recipients email address
    clear t_receivers.
    refresh t_receivers.
    t_receivers-receiver = ld_email.
    t_receivers-rec_type = 'U'.
    t_receivers-com_type = 'INT'.
    t_receivers-notif_del = 'X'.
    t_receivers-notif_ndel = 'X'.
    append t_receivers.
    call function 'SO_DOCUMENT_SEND_API1'
    exporting
    document_data = w_doc_data
    put_in_outbox = 'X'
    sender_address = ld_sender_address
    sender_address_type = ld_sender_address_type
    commit_work = 'X'
    importing
    sent_to_all = w_sent_all
    tables
    object_header = t_object_header
    packing_list = t_packing_list
    contents_bin = t_attachment
    contents_txt = it_message
    receivers = t_receivers
    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.
    Populate zerror return code
    ld_error = sy-subrc.
    Populate zreceiver return code
    loop at t_receivers.
    ld_receiver = t_receivers-retrn_code.
    endloop.
    endform.
    *& Form INITIATE_MAIL_EXECUTE_PROGRAM
    Instructs mail send program for SAPCONNECT to send email.
    form initiate_mail_execute_program.
    wait up to 2 seconds.
    submit rsconn01 with mode = 'INT'
    with output = 'X'
    and return.
    endform. " INITIATE_MAIL_EXECUTE_PROGRAM
    *& Form POPULATE_EMAIL_MESSAGE_BODY
    Populate message body text
    form populate_email_message_body.
    refresh it_message.
    it_message = 'Please find attached a list test ekpo records'.
    append it_message.
    endform. " POPULATE_EMAIL_MESSAGE_BODY
    Your suggestions will be appreciated and rewarded.
    Thanks in advance
    Murali

    Hi
    Your pgm is not passing anything in obj_descr in packing list for excel file. If you pass a name your excel file will have that.
    Regards
    Sathar
    perform send_file_as_email_attachment
    tables it_message
    it_attach
    using p_email
    'Example .xls documnet attachment'
    'XLS'
    'PO'
    ' '  *------> no value*
    changing gd_error
    gd_reciever.
    form send_file_as_email_attachment tables pit_message
    pit_attach
    using p_email
    p_mtitle
    p_format
    p_filename
    p_attdescription *----> no value*
    p_sender_address
    p_sender_addres_type
    changing p_error
    p_reciever.
    t_packing_list-obj_descr = ld_attdescription.

  • How to e-mail a report

    I have created a Library database. In this database i have created a over due report for the books which are over dued. I want to e-mail that report automatically to the user and manager of Library when the bokk is over dued. How can i e-mail my report from oracle portal.

    These are a few links that I remember: http://technet.oracle.com:89/ubb/Forum81/HTML/000450.html http://technet.oracle.com:89/ubb/Forum70/HTML/000268.html http://technet.oracle.com:89/ubb/Forum70/HTML/000725.html
    To find more links on this topic just search for "mail" in this forum and also on portal forum.
    Thanx,
    Chetan.

  • Send a mail from report 6i with his function "mail...."

    I have tried to send a mail from report using "File" ---> "Mail.." Function that is avaible on report, but it send a file "*.eps" that is not readble with the normal reader.....
    It is possible to send a PDF file ???
    Thank 's .....
    il vampiro

    Hello Mike,
    In Reports Builder 6i, Just change the Initial Value of the DESFORMAT System Parameter in the Object Navigator (under Data Model) to PDF, or any other format you want to mail the report in.
    Thanks,
    The Oracle Reports Team.

  • How to get a summarized mail traffic report in exchange 2013

    Hi all
    How to calculate the exchange 2013 SMTP mail traffic in terms of hour,day,month,top senders,largest message and top recipients list . Same time we would like to have those summarized mail traffic report for all the mailbox servers in the form of graphical
    view as well as in a csv file  ?
    Please all of us share your thoughts and possibilities .
    Regards
    S.Nithyanandham
    Thanks S.Nithyanandham

    You may calculate hourly email traffic using "Message Tracking Logs and Log Parser".
    I would like to refer you on this well explained article that will assist you step-wise to implement in your working environment : http://exchangeserverpro.com/calculate-hourly-email-traffic-using-message-tracking-log-parser/
    Moreover, if you wish to achieve this goal automatically, you may also consider on this automated application (http://www.exchangereports.net/) that provides a deep-view of email traffic report in real time at
    granular level.

  • Mailing ALV report OUTPUT

    Hi Experts,
    Can you give an example program on mailing ALV report output to any ID.
    Thanks in advance.
    Regards,
    Ram

    Hi ram
    Here i'm posting u sample code try to execute it. It will convert all the data in the related tables to excel format and transfer it to respective mail id
    *& Report  ZTESTMAIL                                                   *
    REPORT  ZTESTMAIL                               .
    tables: ekko.
    parameters: p_email type somlreci1-receiver default
    '[email protected]'.
    types: begin of t_ekpo,
    ebeln type ekpo-ebeln,
    ebelp type ekpo-ebelp,
    aedat type ekpo-aedat,
    matnr type ekpo-matnr,
    end of t_ekpo.
    data: it_ekpo type standard table of t_ekpo initial size 0,
    wa_ekpo type t_ekpo.
    types: begin of t_charekpo,
    ebeln(10) type c,
    ebelp(5) type c,
    aedat(8) type c,
    matnr(18) type c,
    end of t_charekpo.
    data: wa_charekpo type t_charekpo.
    data: it_message type standard table of solisti1 initial size 0
    with header line.
    data: it_attach type standard table of solisti1 initial size 0
    with header line.
    data: t_packing_list like sopcklsti1 occurs 0 with header line,
    t_contents like solisti1 occurs 0 with header line,
    t_receivers like somlreci1 occurs 0 with header line,
    t_attachment like solisti1 occurs 0 with header line,
    t_object_header like solisti1 occurs 0 with header line,
    w_cnt type i,
    w_sent_all(1) type c,
    w_doc_data like sodocchgi1,
    gd_error type sy-subrc,
    gd_reciever type sy-subrc.
    t_object_header = 'Text.xls'. append t_object_header.
    *START_OF_SELECTION
    start-of-selection.
    * Retrieve sample data from table ekpo
    perform data_retrieval.
    * Populate table with detaisl to be entered into .xls file
    perform build_xls_data_table.
    *END-OF-SELECTION
    end-of-selection.
    * Populate message body text
    perform populate_email_message_body.
    * Send file by email as .xls speadsheet
    perform send_file_as_email_attachment
    tables it_message
    it_attach
    using p_email
    'Example .xls documnet attachment'
    'XLS'
    'filename'
    changing gd_error
    gd_reciever.
    * Instructs mail send program for SAPCONNECT to send email(rsconn01)
    perform initiate_mail_execute_program.
    *& Form DATA_RETRIEVAL
    * Retrieve data form EKPO table and populate itab it_ekko
    form data_retrieval.
    select ebeln ebelp aedat matnr
    up to 10 rows
    from ekpo
    into table it_ekpo.
    endform. " DATA_RETRIEVAL
    *& Form BUILD_XLS_DATA_TABLE
    * Build data table for .xls document
    form build_xls_data_table.
    *CONSTANTS: con_cret TYPE x VALUE '0D', "OK for non Unicode
    *con_tab TYPE x VALUE '09'. "OK for non Unicode
    *If you have Unicode check active in program attributes thnen you will
    *need to declare constants as follows
    *class cl_abap_char_utilities definition load.
    constants:
    con_tab type c value cl_abap_char_utilities=>horizontal_tab,
    con_cret type c value cl_abap_char_utilities=>cr_lf.
    concatenate 'EBELN' 'EBELP' 'AEDAT' 'MATNR'
    into it_attach separated by con_tab.
    concatenate con_cret it_attach into it_attach.
    append it_attach.
    loop at it_ekpo into wa_charekpo.
    concatenate wa_charekpo-ebeln wa_charekpo-ebelp
    wa_charekpo-aedat wa_charekpo-matnr
    into it_attach separated by con_tab.
    concatenate con_cret it_attach into it_attach.
    append it_attach.
    endloop.
    endform. " BUILD_XLS_DATA_TABLE
    *& Form SEND_FILE_AS_EMAIL_ATTACHMENT
    * Send email
    form send_file_as_email_attachment tables pit_message
    pit_attach
    using p_email
    p_mtitle
    p_format
    p_filename
    p_attdescription
    p_sender_address
    p_sender_addres_type
    changing p_error
    p_reciever.
    data: ld_error type sy-subrc,
    ld_reciever type sy-subrc,
    ld_mtitle like sodocchgi1-obj_descr,
    ld_email like somlreci1-receiver,
    ld_format type so_obj_tp ,
    ld_attdescription type so_obj_nam ,
    ld_attfilename type so_obj_des ,
    ld_sender_address like soextreci1-receiver,
    ld_sender_address_type like soextreci1-adr_typ,
    ld_receiver like sy-subrc.
    ld_email = p_email.
    ld_mtitle = p_mtitle.
    ld_format = p_format.
    ld_attdescription = p_attdescription.
    ld_attfilename = p_filename.
    ld_sender_address = p_sender_address.
    ld_sender_address_type = p_sender_addres_type.
    * Fill the document data.
    w_doc_data-doc_size = 1.
    * Populate the subject/generic message attributes
    w_doc_data-obj_langu = sy-langu.
    w_doc_data-obj_name = 'SAPRPT'.
    w_doc_data-obj_descr = ld_mtitle .
    w_doc_data-sensitivty = 'F'.
    * Fill the document data and get size of attachment
    clear w_doc_data.
    read table it_attach index w_cnt.
    w_doc_data-doc_size =
    ( w_cnt - 1 ) * 255 + strlen( it_attach ).
    w_doc_data-obj_langu = sy-langu.
    w_doc_data-obj_name = 'SAPRPT'.
    w_doc_data-obj_descr = ld_mtitle.
    w_doc_data-sensitivty = 'F'.
    clear t_attachment.
    refresh t_attachment.
    t_attachment[] = pit_attach[].
    * Describe the body of the message
    clear t_packing_list.
    refresh t_packing_list.
    t_packing_list-transf_bin = space.
    t_packing_list-head_start = 1.
    t_packing_list-head_num = 0.
    t_packing_list-body_start = 1.
    describe table it_message lines t_packing_list-body_num.
    t_packing_list-doc_type = 'RAW'.
    append t_packing_list.
    * Create attachment notification
    t_packing_list-transf_bin = 'X'.
    t_packing_list-head_start = 1.
    t_packing_list-head_num = 1.
    t_packing_list-body_start = 1.
    describe table t_attachment lines t_packing_list-body_num.
    t_packing_list-doc_type = ld_format.
    t_packing_list-obj_descr = ld_attdescription.
    t_packing_list-obj_name = ld_attfilename.
    t_packing_list-doc_size = t_packing_list-body_num * 255.
    append t_packing_list.
    * Add the recipients email address
    clear t_receivers.
    refresh t_receivers.
    t_receivers-receiver = ld_email.
    t_receivers-rec_type = 'U'.
    t_receivers-com_type = 'INT'.
    t_receivers-notif_del = 'X'.
    t_receivers-notif_ndel = 'X'.
    append t_receivers.
    call function 'SO_DOCUMENT_SEND_API1'
    exporting
    document_data = w_doc_data
    put_in_outbox = 'X'
    sender_address = ld_sender_address
    sender_address_type = ld_sender_address_type
    commit_work = 'X'
    importing
    sent_to_all = w_sent_all
    tables
    object_header = t_object_header
    packing_list = t_packing_list
    contents_bin = t_attachment
    contents_txt = it_message
    receivers = t_receivers
    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.
    * Populate zerror return code
    ld_error = sy-subrc.
    * Populate zreceiver return code
    loop at t_receivers.
    ld_receiver = t_receivers-retrn_code.
    endloop.
    endform.
    *& Form INITIATE_MAIL_EXECUTE_PROGRAM
    * Instructs mail send program for SAPCONNECT to send email.
    form initiate_mail_execute_program.
    wait up to 2 seconds.
    submit rsconn01 with mode = 'INT'
    with output = 'X'
    and return.
    endform. " INITIATE_MAIL_EXECUTE_PROGRAM
    *& Form POPULATE_EMAIL_MESSAGE_BODY
    * Populate message body text
    form populate_email_message_body.
    refresh it_message.
    it_message = 'Please find attached a list test ekpo records'.
    append it_message.
    endform. " POPULATE_EMAIL_MESSAGE_BODY
    *PARAMETERS: psubject(40) type c default 'Testing',
    *p_email(40) type c default '[email protected]'. "use ur email id
    *data: it_packing_list like sopcklsti1 occurs 0 with header line,
    *it_contents like solisti1 occurs 0 with header line,
    *it_receivers like somlreci1 occurs 0 with header line,
    *it_attachment like solisti1 occurs 0 with header line,
    *gd_cnt type i,
    *gd_sent_all(1) type c,
    *gd_doc_data like sodocchgi1,
    *gd_error type sy-subrc.
    *data: it_message type standard table of SOLISTI1 initial size 0
    *with header line.
    **START-OF-SELECTION.
    *START-OF-SELECTION.
    *Perform populate_message_table.
    **Send email message, although is not sent from SAP until mail send
    **program has been executed(rsconn01)
    *PERFORM send_email_message.
    **Instructs mail send program for SAPCONNECT to send email(rsconn01)
    *perform initiate_mail_execute_program.
    **& Form POPULATE_MESSAGE_TABLE
    ** Adds text to email text table
    *form populate_message_table.
    *Append 'Line1' to it_message.
    *Append 'Line2' to it_message.
    *Append 'Line3' to it_message.
    *Append 'Test- 1' to it_message.
    *endform. " POPULATE_MESSAGE_TABLE
    **& Form SEND_EMAIL_MESSAGE
    ** Send email message
    *form send_email_message.
    ** Fill the document data.
    *gd_doc_data-doc_size = 1.
    ** DATA: TAB_LINES LIKE sy-tabix.
    ** DESCRIBE TABLE it_message LINES TAB_LINES.
    ** READ TABLE it_message INDEX TAB_LINES.
    ** gd_doc_data-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( it_message )
    ** Populate the subject/generic message attributes
    *gd_doc_data-obj_langu = sy-langu.
    *gd_doc_data-obj_name = 'SAPRPT'.
    *gd_doc_data-obj_descr = psubject.
    *gd_doc_data-sensitivty = 'F'.
    ** Describe the body of the message
    ** Information about structure of data tables
    *clear it_packing_list.
    *refresh it_packing_list.
    *it_packing_list-transf_bin = space.
    *it_packing_list-head_start = 1.
    *it_packing_list-head_num = 0.
    *it_packing_list-body_start = 1.
    *describe table it_message lines it_packing_list-body_num.
    *it_packing_list-doc_type = 'RAW'.
    *append it_packing_list.
    ** Add the recipients email address
    *clear it_receivers.
    *refresh it_receivers.
    *it_receivers-receiver = p_email.
    *it_receivers-rec_type = 'U'.
    ** it_receivers-com_type = 'INT'.
    ** it_receivers-notif_del = 'X'.
    ** it_receivers-notif_ndel = 'X'.
    *append it_receivers.
    ** Call the FM to post the message to SAPMAIL
    *call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    *exporting
    *document_data = gd_doc_data
    *put_in_outbox = 'X'
    *importing
    *sent_to_all = gd_sent_all
    *tables
    *packing_list = it_packing_list
    *contents_txt = it_message
    *receivers = it_receivers
    *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.
    ** Store function module return code
    *gd_error = sy-subrc.
    ** Get it_receivers return code
    *loop at it_receivers.
    *endloop.
    *endform. " SEND_EMAIL_MESSAGE
    **& Form INITIATE_MAIL_EXECUTE_PROGRAM
    ** Instructs mail send program for SAPCONNECT to send email.
    *form initiate_mail_execute_program.
    *wait up to 2 seconds.
    *if gd_error eq 0.
    *submit rsconn01 with mode = 'INT'
    *with output = 'X'
    *and return.
    *endif.
    *endform. " INITIATE_MAIL_EXECUTE_PROGRAM
    Rewards if helpfull
    Regards
    Pavan

  • Having a print problem on a mailing label report using the merge modules.

    Crystal Reports 2008 v 12.1.6.1116
    when I print directly from Crystal Reports designer, the labels print correctly.  If I print the report from our application software using the Crystal merge module, the top of page margin is not the same.
    I am using Crystal Report 2008 Fix Pack 1.5 Merge Modules.
    Any idea what might be causing this ?  I do not see any settings in the CrystalReportViewer that would cause the top of page margin to change.
    Note: We were using a previous version of Crystal Reports, version 11 using the merge modules and it worked just fine. After changing to the 2008 merge modules we are running into this problem.

    Which Version of VS.NET you are using?
           VS 2008 v 9.0.30729.1 SP
    . Which application you are developing desktop or web?
           Desktop
    . Error messages you are facing?
            No error message, just the top of page margin is wrong
    . Are you facing this error in development machine?
           The mailing label report works just fine printing directly from the Crystal Reports 2008 Design application.  However is I try to print the exact same report using the CrystalReportViewer in the merge module, the top of page margin is different.  Basically printing from the designer, there is some spacing at the top of the page, printing in the vb.net app the spacing at the time of is missing.
    . Are you trying to deploy this application?
           Yes
    . Operating System?
            The OS I have tried this on is XP Pro SP3 and also Vista Business SP1
    . How are you deploying your application?
            We build a installshield setup to install the merge modules

  • Script spol to mail , and report which sends output to spools

    Hi All,
    Please give me
    script spol to mail , and report which sends output to spool.
    thaks,
    babu

    Hi,
    Check the below code:
    scripts through email:
    *& Report  ZRICHA_OTF_PDF
    report  zricha_otf_pdf
        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
    REPORT Z_RMTIWARI_SEND_SPOOL_MAIL_ATT .
    PARAMETERS : P_SPOOL TYPE TSP01-RQIDENT OBLIGATORY .
    PARAMETERS : P_MAIL TYPE char100 OBLIGATORY .
    TYPES : TY_LINE type string.
    DATA: IT_ATTACHMENT TYPE soli OCCURS 0 WITH HEADER LINE.
    DATA: IT_ATTACHMENT_LONG TYPE TY_LINE OCCURS 0 WITH HEADER LINE.
    DATA: LV_PDF_SIZE type i.
    DATA: LT_PDF type standard table of tline with header line.
    PERFORM SEND_EMAIL USING P_SPOOL P_MAIL.
    FORM send_email
    --> X_SPOOL_ID
    --> X_EMAIL
    FORM send_email USING X_SPOOL_ID X_EMAIL.
    DATA: LT_OBJPACK LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE,
    LT_OBJHEAD LIKE solisti1 OCCURS 1 WITH HEADER LINE,
    LT_OBJBIN LIKE solisti1 OCCURS 10 WITH HEADER LINE,
    LT_OBJTXT LIKE solisti1 OCCURS 10 WITH HEADER LINE,
    LT_RECLIST LIKE somlreci1 OCCURS 5 WITH HEADER LINE,
    LV_DOCUMENT_DATA TYPE sodocchgi1.
    DATA: L_ATT_LINES TYPE i.
    DATA : LV_SPOOL_DESC(68) type c.
    CHECK NOT ( X_EMAIL IS INITIAL ).
    CLEAR: LT_RECLIST, LT_RECLIST[],
    LT_OBJHEAD, LT_OBJHEAD[],
    LT_OBJTXT, LT_OBJTXT[],
    LT_OBJBIN, LT_OBJBIN[],
    LT_OBJPACK, LT_OBJPACK[].
    CLEAR LV_DOCUMENT_DATA.
    Read spool and get the pdf internal table and name of spool
    PERFORM READ_SPOOL USING X_SPOOL_ID LV_SPOOL_DESC.
    CHECK NOT ( LT_PDF[] IS INITIAL ).
    Convert pdf itab to 255 line itab.
    data :LV_COUNTER type i.
    data :LV_FROM type i.
    loop at LT_PDF.
    translate LT_PDF using ' ~' .
    concatenate IT_ATTACHMENT_LONG LT_PDF into it_attachment_long.
    endloop.
    translate IT_ATTACHMENT_LONG using '~ ' .
    append IT_ATTACHMENT_LONG.
    clear : LV_COUNTER.
    DO.
    LV_COUNTER = strlen( IT_ATTACHMENT_LONG ).
    if LV_COUNTER ge 255.
    IT_ATTACHMENT = IT_ATTACHMENT_LONG(255).
    append IT_ATTACHMENT.
    SHIFT IT_ATTACHMENT_LONG by 255 places.
    else.
    IT_ATTACHMENT = IT_ATTACHMENT_LONG(lv_counter).
    append IT_ATTACHMENT.
    exit.
    endif.
    ENDDO.
    Body of email
    MOVE 'Email sent to you from SAP' TO LT_OBJTXT.
    APPEND LT_OBJTXT.
    LV_DOCUMENT_DATA-obj_name = 'SpoolMail'.
    Title of the email as spool name
    LV_DOCUMENT_DATA-obj_descr = LV_SPOOL_DESC.
    LV_DOCUMENT_DATA-sensitivty = 'O'.
    LV_DOCUMENT_DATA-expiry_dat = SY-datum + 15.
    LV_DOCUMENT_DATA-doc_size = STRLEN( LT_OBJTXT ).
    e-mail body
    CLEAR LT_OBJPACK.
    LT_OBJPACK-head_start = 1.
    LT_OBJPACK-head_num = 0.
    LT_OBJPACK-body_start = 1.
    LT_OBJPACK-body_num = 1.
    LT_OBJPACK-doc_type = 'RAW'.
    LT_OBJPACK-doc_size = STRLEN( LT_OBJTXT ).
    APPEND LT_OBJPACK.
    For e-mail attachment
    DESCRIBE TABLE IT_ATTACHMENT LINES L_ATT_LINES.
    READ TABLE IT_ATTACHMENT INDEX L_ATT_LINES.
    CLEAR LT_OBJPACK.
    LT_OBJPACK-transf_bin = 'X'.
    LT_OBJPACK-head_start = 1.
    LT_OBJPACK-head_num = 1.
    LT_OBJPACK-body_start = 1.
    LT_OBJPACK-body_num = L_ATT_LINES.
    LT_OBJPACK-doc_type = 'PDF'.
    LT_OBJPACK-obj_name = 'email'.
    LT_OBJPACK-obj_descr = LV_SPOOL_DESC.
    LT_OBJPACK-doc_size = ( 255 * ( L_ATT_LINES - 1 ) ) + STRLEN( IT_ATTACHMENT-line ).
    APPEND LT_OBJPACK.
    make recipient list
    LT_RECLIST-receiver = X_EMAIL.
    LT_RECLIST-rec_type = 'B'. "To external email id
    APPEND LT_RECLIST.
    send mail with attachment
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
    document_data = LV_DOCUMENT_DATA
    put_in_outbox = 'X'
    TABLES
    packing_list = LT_OBJPACK
    object_header = LT_OBJHEAD
    contents_bin = IT_ATTACHMENT
    contents_txt = LT_OBJTXT
    receivers = LT_RECLIST
    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.
    write:/ 'Message sent'.
    else.
    write:/ 'Error encountered'.
    endif.
    ENDFORM. " send_email
    *& Form read_spool
    FORM read_spool USING X_SPOOL_ID Y_SPOOL_DESC.
    DATA : LV_SPOOL_TYPE TYPE TSP01-RQDOCTYPE.
    SELECT SINGLE RQDOCTYPE RQTITLE
    INTO (lv_spool_type, y_spool_desc)
    FROM TSP01
    WHERE RQIDENT eq X_SPOOL_ID.
    IF Y_SPOOL_DESC IS INITIAL.
    concatenate 'Spool-' X_SPOOL_ID into Y_SPOOL_DESC.
    ENDIF.
    IF LV_SPOOL_TYPE eq 'LIST'. " If spool is a list
    CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
    EXPORTING
    SRC_SPOOLID

  • Repeating same address in a Mailing Label Report

    I have created a mailing label report that generates address labels from a database. I would like to pass a parameter to this report that would allow me to indicate how many occurances of each address is to be printed. For example my address file contains 10 unique addresses, I want to create 4 labels for each address. This would give me a total of 40 labels. (keeping the 4 like addresses together). not by printing the report 4 times.
    Thanks for the help.

    Hi Dale Nelson,
    I found some information about Label Looping in Crystal. I never tried it but I think it would help you.
    How to Create a Looping Label Report, Using CR9's Basic Syntax
    1) Create a New Report using the Label Expert, utilizing the desired label size
    2)
    a) insert several fields into the label details section that will create many many details lines for the report: there will have to be   one details line for each label potentially created: these fields will not be shown in the label
    b) the above fields can come from any table..in this sample report, the Customer ID field and the Order ID field are taken  from Crystal's Xtreme sample database
    3) The details section must have a numeric counter assigned to each record.  If there is no database field that is a numeric counter, one will have to be created in the database (in this example, the numeric counter is the Customer ID)
    4) create a parameter field in which the user is prompted to enter the # of labels they wish for each client/customer
    insert this parameter onto the report header
    5)
    a) create a linking formula to insert on the details section of the main report.  The formula will read something like:
            Shared x as number
            x = (x + 1/{?lblnum})
            formula = truncate(x)
    b) if the client enters 6 as the number of labels they wish for each client, the above formula will be incremented by 1, for each  6 times the formula is calculated on the details sections...this ensures that the subreport is ran 6 times for each client and thus six labels are produced
    6) Insert a Subreport that will contain the fields and structure of an address label
    7) create a link to the subreport: from the Linking Formula (above) to the client ID (customer ID number field) in the subreport
    8) blank main report details lines will now have to be suppressed.  In the subreport create a formula @Null Check similar to:
    whileprintingrecords;
    shared numbervar check;
    if isnull({Customer.Customer Name}) then check := 6
    Insert this formula on the subreport details section and suppress it
    9) in the main report, go to format the details section and select the Suppression formula button.  Insert a formula similar to:
    whileprintingrecords;
    shared numbervar check;
    check =6
    the above two steps will ensure that main report details sections will be suppressed after the labels are printed
    Notes:
    > There will be one blank label printed at the end of the report.
    > The order of the labels will be in the order specified by the database: if a different order is desired, this should be specified using a query or stored procedure at the database end
    > A successful link is created between a manual running total [@link formula] and the subreport's Customer ID field. This link is possible as the [@link formula] formula is written in Basic Syntax, and hence is processed before the subreport link. This is not possible using earlier versions of Crystal, as the formula editor did not have the option to use Basic Syntax.
    Regards,
    Raghavendra

  • Send mail from report with DESNAME and DESFORMAT

    j have tried to send a mail from a report to "outlook express" passing as parameters the email of the user to send the mail.
    i have passed as parameter list :
    DESCNAME = [email protected]
    DESFORMAT = mail
    but aoutlook express don't start.
    It start only if i press the icon "mail" on report, and don't put the email adress in the "send to" field....
    There is a reason or there is an error or it is impossible ????
    Than'k from "il vampiro italiano"

    Hello Mike,
    In order to mail a report from Reports Builder 6i using the system's default MAPI client, you would need to set DESTYPE=MAIL, DESNAME=<email address of recipient> and DESFORMAT=<format of report output>.
    Thanks,
    The Oracle Reports Team.

  • Send Mail Through Reports 6i Problem

    Can we add our(Coustomize) subject line instead of "Report sent from Report Builder"
    When we are sending mail through reports 6i.
    Edited by: user8639749 on Jul 19, 2009 9:36 PM

    Hello,
    This is not possible in Oracle Reports 6i.
    It has been implemented in Oracle Reports 9.0.2 (parameter SUBJECT)
    http://www.oracle.com/webapps/online-help/reports/10.1.2/topics/htmlhelp_rwbuild_hs/rwrefex/cmdline/common/cla_subject.htm
    Regards

Maybe you are looking for

  • Problem with Acrobat Reader Browser Control (LoadFile)

    Hi I am trying to use the Acrobat Reader Browser ActiveX Control to show a PDF file in a window from my application but I am finding a problem. It all works fine, unless I have the exact same PDF file open in Acrobat Reader at the same time. If I hav

  • IDOC Transfer from R/3 to CRM System

    Hi, I want to transfer HR Data from R/3 to CRM System. Scenario1 : I have to transfer National insurance number ( Infotype 002) to CRM system where we have rename this field as NI number. I am transferring data through PFAL Transaction but this field

  • WS12300111 - Creating different title for Cancel and Apply for leave

    Hi Experts, Is there a way to change the existing workflow to be able to differentiate between approval and cancelling of leave request? Best regards, Brian

  • Dynamic Hyperlink underline

    Hi all, I am writing an application, where the user can input text in a JText Area. I would like to add a feature where when as a hyperlink is being typed in, it would automatically be highlighted/underlined/made clickable. MS Word and hotmail editor

  • Multiple listings for one artist on iPod

    What, if there is one, the easiest way to consolidate all of one artist's music into one group for that artist.I noticed that whenever I scroll through my artist list on my iPod it will show up to six names for one artist when that is the only artist