Skip to Content
avatar image
Former Member

To convert Form to PDF format, print last Page & to transfer using Mail

1. How to print, only a last Page of a SAP Script ?

2. How to Send the SAP script using E-Mail ?

3. How to convert SAP script PDF format ?

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • Dec 04, 2006 at 05:08 AM

    Hi,

    This is the code sample to convert script output to PDF.After that ,you need to use so_new_document*api1 function module to send email.

    REPORT zzz_jaytest .

    • Types Declaration

    TYPES : BEGIN OF ty_pa0001,

    pernr TYPE pa0001-pernr,

    bukrs TYPE pa0001-bukrs,

    werks TYPE pa0001-werks,

    END OF ty_pa0001.

    • Internal Table Declaration

    DATA : i_pa0001 TYPE STANDARD TABLE OF ty_pa0001, "For pa0001 Details

    i_otf TYPE STANDARD TABLE OF itcoo, "For OTF data

    i_content_txt TYPE soli_tab, "Content

    i_content_bin TYPE solix_tab, "Content

    i_objhead TYPE soli_tab,

    • Work Area Declaration

    w_pa0001 TYPE ty_pa0001, "For pa0001 Details

    w_res TYPE itcpp, "SAPscript output

    "parameters

    w_otf TYPE itcoo, "For OTF

    w_pdf TYPE solisti1, "For PDF

    w_transfer_bin TYPE sx_boolean, "Content

    w_options TYPE itcpo, "SAPscript output

    "interface

    • Variable Declaration

    v_len_in TYPE so_obj_len,

    v_size TYPE i.

    • Constants Declaration

    CONSTANTS : c_x TYPE c VALUE 'X', "X

    c_locl(4) TYPE c VALUE 'LOCL', "Local Printer

    c_otf TYPE sx_format VALUE 'OTF', "OTF

    c_pdf TYPE sx_format VALUE 'PDF', "PDF

    c_printer TYPE sx_devtype VALUE 'PRINTER', "PRINTER

    c_bin TYPE char10 VALUE 'BIN', "BIN

    c_name TYPE string VALUE 'C:\ZZZ_JAYTEST.PDF',"Downloading

    "File Name

    c_form(11) TYPE c VALUE 'ZZZ_JAYTEST'. "Form Name

    START-OF-SELECTION.

    • Selecting the records from pa0001

    SELECT pernr bukrs werks FROM pa0001

    INTO TABLE i_pa0001 UP TO 10 ROWS.

    • Setting the options

    w_options-tdcopies = 1 ."Number of copies

    w_options-tdnoprev = c_x."No print preview

    w_options-tdgetotf = c_x."Return of OTF table

    w_options-tddest = c_locl."Spool: Output device

    • Opening the form

    CALL FUNCTION 'OPEN_FORM'

    EXPORTING

    form = c_form

    device = c_printer

    language = sy-langu

    OPTIONS = w_options

    IMPORTING

    RESULT = w_res.

    LOOP AT i_pa0001 INTO w_pa0001.

    • Writting into the form

    CALL FUNCTION 'WRITE_FORM'

    EXPORTING

    element = 'MAIN'

    window = 'MAIN'.

    ENDLOOP.

    • Closing the form

    CALL FUNCTION 'CLOSE_FORM'

    IMPORTING

    RESULT = w_res

    TABLES

    otfdata = i_otf

    EXCEPTIONS

    unopened = 1

    bad_pageformat_for_print = 2

    send_error = 3

    spool_error = 4

    codepage = 5

    OTHERS = 6.

    IF sy-subrc <> 0.

    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

    ENDIF.

    • Converting OTF data to single line

    LOOP AT i_otf INTO w_otf.

    CONCATENATE w_otf-tdprintcom w_otf-tdprintpar

    INTO w_pdf.

    APPEND w_pdf TO i_content_txt.

    ENDLOOP.

    • Converting to PDF Format

    CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'

    EXPORTING

    format_src = c_otf

    format_dst = c_pdf

    devtype = c_printer

    CHANGING

    transfer_bin = w_transfer_bin

    content_txt = i_content_txt

    content_bin = i_content_bin

    objhead = i_objhead

    len = v_len_in

    EXCEPTIONS

    err_conv_failed = 1

    OTHERS = 2.

    v_size = v_len_in.

    • Downloading the PDF File

    CALL FUNCTION 'GUI_DOWNLOAD'

    EXPORTING

    bin_filesize = v_size

    filename = c_name

    filetype = c_bin

    TABLES

    data_tab = i_content_bin.

    Kindly reward points by clicking the star on the left of reply,if it helps.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Dec 04, 2006 at 06:26 AM

    hi,

    Jayanthi jayaraman has given the code and finally include the following code to send it as an email...

    I suggest you start with transaction SPRO. It is complex, but will give you the information you need.

    In this case, do the following:

    1) Run transaction SPRO

    2) Press button "SAP Reference IMG"

    3) navigate list as follows

    SAP Customizing Implementation Guide

    -> Quality Management

    --> Quality Notifications

    ---> Notification Processing

    -


    > Print Control

    -


    > Define Shop Papers, Forms, Print Programs

    4) This screen will show you if SAPscript or Smart Forms are used and which programs are used to drive them.

    The details will vary by R/3 implementation, but this is where to look.

    In general, exploring SPRO will get you to the code and forms underlying any printed document.

    but to get an email it is to be configured in the sap system.

    Regards,

    Durgaqprasad.

    Add comment
    10|10000 characters needed characters exceeded