Sap script output to pdf

Hi All,
I have one report prg wich gives op in sap script.
I want same output in pdf and have to save on hard disk.
please suggest me wat procedure i have to follow.
It's urgent

A very common requirement for programmers writing ABAP code for printing using SAPScript Forms is to redirect output to a PDF (Adobe Acrobat) file. I struggled for a few days trying to find a solution to this. Though I found quite a few examples on the web, it was difficult figuring out which technique was optimal. This tip is borne out of these struggles.
This is an example of how to use ABAP code to save output of a print routine using a SAPScript form into PDF format and also display it within the SAP frontend itself. This routine proves extremely useful to provide users the ability to save local copies of output and preview it within the user-friendly Acrobat Reader control, all without leaving the SAP frontend or your program. Since function modules are used, the code is portable and this technique can be used in any other ABAP program as well.
Two function modules, Z_DS_CREATE_LOCAL_PDF_FILE and Z_DS_CALL_PDF_VIEWER need to be created. I have used a function group called Z5_DS_PDF for this purpose. The function group contains the ABAP objects code for declaration and implementation of a class that encapsulates the Acrobat application functionality. The function group also contains a screen '0901', that epresents our PDF viewer and one PBO and one PAI block for the same screen.
Note: The following example has been stripped of essential error-handling for the sake of simplicity and the programmer is assumed to possess knowledge of creation of function groups, function modules, screens and SAPScript forms. ABAP objects or custom controls knowledge is not mandatory. Be patient when trying this out and follow all instructions thoroughly. The results will be worth the effort.
Steps to follow to get this example running:
1) Create a function group (Example : Z5_DS_PDF)
2) Define the top include and place the code listed below into it (LZ5_DS_PDFTOP)
3) Create screen '0901' in function group with three elements:
a) Pushbutton CLOSE at the top with function code 'CLO' (this is to exit preview screen)
b) Custom control container (Large- spanning entire screen) named MY_CONTAINER
c) The customary OK code field called OK_CODE
Note: The names of the elements should be exactly as described above
4) Create one output and one input module in the flow logic of screen '0901' for which the code is provided below
5) Define two function modules with the following signatures:
a) FUNCTION Z_DS_CREATE_LOCAL_PDF_FILE
EXPORTING
REFERENCE(AFILENAME) LIKE RLGRAP-FILENAME
TABLES
OTF_LINES STRUCTURE ITCOO
b) FUNCTION Z_DS_CALL_PDF_VIEWER
IMPORTING
VALUE(FILENAME) TYPE STRING
Code is provided below.
6) Compile and activate the function group
7) Create a simple SAPScript form with one page and one window
8) Define one element in the text for the main window called 'HELLO' and some static text in it
9) Check and activate the form
10) Create the example program (Example : Z5_DS_SCRIPT2PDF) with the below code
11) Run the example
NOTES: I tested this code in R/3 version 4.6C but it should work in all 4.6 setups. I'm pretty sure some of the ABAP objects code I have used may not work with R/3 4.0 versions and earlier. Also, it works perfectly only when Acrobat Reader is installed on the presentation server. I have checked it with Acrobat versions 4 and 5 but I haven't had the opportunity to check it with Acrobat Reader 6.
Code
Code inside top include LZ5_DS_PDFTOP of function group Z5_DS_PDF
FUNCTION-POOL Z5_DS_PDF.                    "MESSAGE-ID ..
      CLASS CL_GUI_PDF  DEFINITION                                  *
CLASS CL_GUI_PDF DEFINITION
  INHERITING FROM CL_GUI_CONTROL.
  PUBLIC SECTION.
    TYPES:
      COL_TYPE  TYPE INT4.
    METHODS:
      CONSTRUCTOR
        IMPORTING
          !PARENT            TYPE REF TO CL_GUI_CONTAINER
          VALUE(SHELLSTYLE)  TYPE I OPTIONAL
          VALUE(DISP_MODE)   TYPE I OPTIONAL
          VALUE(LIFE_TIME)   TYPE I OPTIONAL
          VALUE(NAME)        TYPE STRING OPTIONAL
        EXCEPTIONS
          CNTL_ERROR
          CNTL_INSTALL_ERROR.
    METHODS:
      LOADFILE
        IMPORTING
          VALUE(FILENAME) TYPE STRING
        EXCEPTIONS
          FILE_NOT_FOUND.
    METHODS:
      REFRESH.
    METHODS:
      DISPATCH REDEFINITION.
ENDCLASS.
DATA: MY_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA: MY_PDF TYPE REF TO CL_GUI_PDF.
data: ok_code like sy-ucomm.
data: file_name type string.
custom control class implementation
CLASS CL_GUI_PDF IMPLEMENTATION.
  METHOD CONSTRUCTOR.
    DATA:
      CTRL_NAME(80) TYPE C.
    IF NOT CL_GUI_OBJECT=>ACTIVEX IS INITIAL.
      CTRL_NAME = '{CA8A9780-280D-11CF-A24D-444553540000}'.
    ELSE.
      RAISE CNTL_ERROR.
    ENDIF.
    CALL METHOD SUPER->CONSTRUCTOR
      EXPORTING
        CLSID        = CTRL_NAME
        SHELLSTYLE   = SHELLSTYLE
        PARENT       = PARENT
        LIFETIME     = LIFE_TIME
        NAME         = NAME
      EXCEPTIONS
        CNTL_SYSTEM_ERROR = 1
        OTHERS            = 2.
    CASE SY-SUBRC.
      WHEN 1.
        RAISE CNTL_INSTALL_ERROR.
      WHEN 2.
        RAISE CNTL_ERROR.
    ENDCASE.
    CALL METHOD CL_GUI_CFW=>SUBSCRIBE
      EXPORTING
        REF = ME
        SHELLID = ME->H_CONTROL-SHELLID
      EXCEPTIONS
        OTHERS = 1.
    IF SY-SUBRC NE 0.
      RAISE CNTL_ERROR.
    ENDIF.
  ENDMETHOD.
  METHOD LOADFILE.
    CALL METHOD ME->CALL_METHOD
      EXPORTING
        METHOD = 'LoadFile'
        P_COUNT = 1
        P1      = FILENAME.
  ENDMETHOD.
  METHOD REFRESH.
    CALL METHOD ME->CALL_METHOD
      EXPORTING
        METHOD = 'Refresh'
        P_COUNT = 0.
  ENDMETHOD.
  METHOD DISPATCH.
    CALL METHOD CL_GUI_CFW=>FLUSH.
    IF SY-SUBRC NE 0.
      RAISE CNTL_ERROR.
    ENDIF.
  ENDMETHOD.
ENDCLASS.
End of code for LZ5_DS_PDFTOP
Code for Function Module Z_DS_CREATE_LOCAL_PDF_FILE
FUNCTION Z_DS_CREATE_LOCAL_PDF_FILE .
""Local interface:
*"  EXPORTING
*"     REFERENCE(AFILENAME) LIKE  RLGRAP-FILENAME
*"  TABLES
*"      OTF_LINES STRUCTURE  ITCOO
  DATA: PDF_LINES
  LIKE TLINE OCCURS 1000 WITH HEADER LINE,
   ARCH LIKE TOA_DARA, NO_LINES TYPE I.
  CALL FUNCTION 'CONVERT_OTF'
       EXPORTING
            FORMAT       = 'PDF'
       IMPORTING
            BIN_FILESIZE = NO_LINES
       TABLES
            OTF          = OTF_LINES
            LINES        = PDF_LINES.
  CALL FUNCTION 'DOWNLOAD'
       EXPORTING
            BIN_FILESIZE = NO_LINES
            FILENAME     = 'c:test.pdf'
            FILETYPE     = 'BIN'
       IMPORTING
            ACT_FILENAME = AFILENAME
       TABLES
            DATA_TAB     = PDF_LINES.
ENDFUNCTION.
End of Code for Z_DS_CREATE_LOCAL_PDF_FILE
Code for Function Module Z_DS_CALL_PDF_VIEWER
FUNCTION Z_DS_CALL_PDF_VIEWER .
""Local interface:
*"  IMPORTING
*"     VALUE(FILENAME) TYPE  STRING
  FILE_NAME = FILENAME.
  IF MY_CONTAINER IS INITIAL.
    CREATE OBJECT MY_CONTAINER
              EXPORTING
               CONTAINER_NAME              = 'MY_CONTAINER'.
    CREATE OBJECT MY_PDF
    EXPORTING
        NAME = 'MY_PDF'
        PARENT = MY_CONTAINER.
  ENDIF.
  CALL SCREEN 901. " Ensure screen is created as per instructions
ENDFUNCTION.
End of Code for Z_DS_CALL_PDF_VIEWER
Flow Logic for screen '0901'
PROCESS BEFORE OUTPUT.
  MODULE INIT.
PROCESS AFTER INPUT.
  MODULE USER_COMMAND_0901.
End of Flow Logic for screen '0901'
PBO module INIT for screen '0901'
MODULE init OUTPUT.
    call method my_pdf->loadfile
          exporting filename = file_name.
ENDMODULE.                 " init  OUTPUT
End of PBO module INIT for screen '0901'
PAI module USER_COMMAND_901 for screen '0901'
MODULE USER_COMMAND_0901 INPUT.
case ok_code.
when 'CLO'.
   set screen 0.
endcase.
ENDMODULE.                 " USER_COMMAND_0901  INPUT
End of PAI module USER_COMMAND_901 for screen '0901'
Example program Z5_DS_SCRIPT2PDF
*& Report  Z5_DS_SCRIPT2PDF                                            *
*& This report works only if the function modules                      *
*& Z_DS_CREATE_LOCAL_PDF_FILE and Z_DS_CALL_PDF_VIEWER already exist   *
*& Also use an already existing simple SAPScript Form that contains a  *
*& window "MAIN" and rework printing code if necessary, remember to    *
*& change the output device name in OPTIONS-TDDEST                     *
REPORT  Z5_DS_SCRIPT2PDF.
PARAMETERS: FORM LIKE RSSCF-TDFORM DEFAULT 'Z5_DS_HELLO2'. "your form
DATA: OTF_LINES LIKE ITCOO OCCURS 1000 WITH HEADER LINE,
      OPTIONS TYPE ITCPO, FILENAME LIKE RLGRAP-FILENAME,
      FILENAME_S TYPE STRING.
START-OF-SELECTION.
  OPTIONS-TDDEST = 'LP01'.
Replace 'LP01' above with your default output device
  OPTIONS-TDCOPIES = 1.
  OPTIONS-TDGETOTF = 'X'. " the key to returning OTF data
Open the SapScript Form with the name "form"                         *
  CALL FUNCTION 'OPEN_FORM'
       EXPORTING
            FORM         = FORM    " name of form (SE71)
            OPTIONS      = OPTIONS
            DIALOG       = ' '.
Execute the element "HELLO" in window MAIN
- Nothing happens if /E HELLO is not declared in MAIN
  CALL FUNCTION 'WRITE_FORM'
       EXPORTING
            ELEMENT = 'HELLO'  "execute element /E HELLO
            TYPE    = 'BODY'. "normal output
Close the current SapScript Form
  CALL FUNCTION 'CLOSE_FORM'
       TABLES
             OTFDATA      = OTF_LINES. " Retrieve all the OTF so far
Code for PDF Formatting and creation of local File
  CALL FUNCTION 'Z_DS_CREATE_LOCAL_PDF_FILE'
       IMPORTING
            AFILENAME = FILENAME
       TABLES
            OTF_LINES = OTF_LINES.
  FILENAME_S = FILENAME.
Code to launch Adobe Acrobat inplace in SAPGUI
  CALL FUNCTION 'Z_DS_CALL_PDF_VIEWER'
       EXPORTING
            FILENAME = FILENAME_S.
End of example program Z5_DS_SCRIPT2PDF

Similar Messages

  • To convert Sap Script output to PDF format and send it via email.

    Hi Friends,
    Could any one please tell me, how to convert the Sap Script output to PDF format and send it via email. If any one have the code, kindly mail me to [email protected]
    Thanks & Regards,
    John

    Plese check this sample code from other thread.
    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.
    The extension is put the it_mailpack-obj_name parameter of 'SO_NEW_DOCUMENT_ATT_SEND_API1'.

  • How to save sap script output in  pdf document

    hi abapers
    how to save the output of sap script in sap so that can retrieve the saved document later.
    i have to save the rcia output from sap script in pdf document in sap so that it can be retrieved later
    how to use dms

    PDF Creation + connection to DMS
    cheers
    Aveek

  • Converting sap script output into pdf format?

    Hi all,
    I have modified the standard purchase order script form MEDRUCK . Now i need to generate the output into pdf format.
    This is not only limited to  spool requests , But also  when the user creates the purchase  order and clicks on print or print preview the output should be in pdf format.
    Please help on where and what code has to be written for this requirement?
    Thanks, 
    Aravind.

    Hi
    I don't know which is your release, but I don't think it's possible to create a preview in pdf format, but u can create a pdf file instead of the spool and then open it automatically, this is an example:
    - A) Open form
    IF P_PDF = 'X'.
              XDEVICE        = 'PRINTER'.
    * Get OTF
              ITCPO-TDGETOTF = 'X'.
          ENDIF.
          CALL FUNCTION 'OPEN_FORM'
               EXPORTING
                    DEVICE                      = XDEVICE
                    DIALOG                      = 'X'
                    FORM                        = 'ZFI_CL_EC_MOVI'
                    OPTIONS                     = ITCPO
                    MAIL_SENDER                 = LVS_SENDER
                    MAIL_RECIPIENT              = LVS_RECIPIENT
               EXCEPTIONS
                    CANCELED                    = 1
                    DEVICE                      = 2
                    FORM                        = 3
                    OPTIONS                     = 4
                    UNCLOSED                    = 5
                    MAIL_OPTIONS                = 6
                    ARCHIVE_ERROR               = 7
                    INVALID_FAX_NUMBER          = 8
                    MORE_PARAMS_NEEDED_IN_BATCH = 9
                    SPOOL_ERROR                 = 10
                    OTHERS                      = 11.
          IF SY-SUBRC <> 0.
            EXIT.
          ENDIF.
    B) Close FORM
    CALL FUNCTION 'CLOSE_FORM'
             TABLES
                  OTFDATA                  = T_OTF
             EXCEPTIONS
                  UNOPENED                 = 1
                  BAD_PAGEFORMAT_FOR_PRINT = 2
                  SEND_ERROR               = 3
                  SPOOL_ERROR              = 4
                  OTHERS                   = 5.
        IF SY-SUBRC <> 0.
          MESSAGE I208(00) WITH 'Errore chiusura stampa'(A02).
        ELSE.
          PERFORM DOWNLOAD_PDF.
        ENDIF.
    C) Create PDF and open it:
    FORM DOWNLOAD_PDF.
      DATA: BIN_FILESIZE TYPE I.
      DATA: T_FILE_PDF     TYPE STANDARD TABLE OF TLINE,
            DOCTAB_ARCHIVE TYPE STANDARD TABLE OF  DOCS.
      DATA: FILE_TABLE     TYPE FILETABLE WITH HEADER LINE.
      DATA: RC          TYPE I,
            USER_ACTION TYPE I.
      DATA: TITLE    TYPE STRING,
            FILENAME TYPE STRING.
      CHECK P_PDF = 'X'.
      CALL FUNCTION 'CONVERT_OTF_2_PDF'
           IMPORTING
                BIN_FILESIZE           = BIN_FILESIZE
           TABLES
                OTF                    = T_OTF
                DOCTAB_ARCHIVE         = DOCTAB_ARCHIVE
                LINES                  = T_FILE_PDF
           EXCEPTIONS
                ERR_CONV_NOT_POSSIBLE  = 1
                ERR_OTF_MC_NOENDMARKER = 2
                OTHERS                 = 3.
      IF SY-SUBRC <> 0.
        MESSAGE I208(00) WITH 'Errore conversione PDF'(A03).
        EXIT.
      ENDIF.
      TITLE = 'Creare File'(T02).
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
         EXPORTING
           WINDOW_TITLE            = TITLE
           DEFAULT_EXTENSION       = '*.pdf'
        CHANGING
          FILE_TABLE              = FILE_TABLE[]
          RC                      = RC
          USER_ACTION             = USER_ACTION
        EXCEPTIONS
          FILE_OPEN_DIALOG_FAILED = 1
          CNTL_ERROR              = 2
          ERROR_NO_GUI            = 3
          OTHERS                  = 4
      IF SY-SUBRC <> 0.
        MESSAGE I208(00) WITH 'Errore creazione PDF'(A04).
        EXIT.
      ELSE.
        IF USER_ACTION = 9. EXIT. ENDIF.
        IF RC = 1.
          READ TABLE FILE_TABLE INDEX 1.
        ENDIF.
      ENDIF.
      MOVE FILE_TABLE-FILENAME TO FILENAME.
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
        EXPORTING
           BIN_FILESIZE            = BIN_FILESIZE
           FILENAME                = FILENAME
           FILETYPE                = 'BIN'
        CHANGING
          DATA_TAB                = T_FILE_PDF
        EXCEPTIONS
          FILE_WRITE_ERROR        = 1
          NO_BATCH                = 2
          GUI_REFUSE_FILETRANSFER = 3
          INVALID_TYPE            = 4
          NO_AUTHORITY            = 5
          UNKNOWN_ERROR           = 6
          HEADER_NOT_ALLOWED      = 7
          SEPARATOR_NOT_ALLOWED   = 8
          FILESIZE_NOT_ALLOWED    = 9
          HEADER_TOO_LONG         = 10
          DP_ERROR_CREATE         = 11
          DP_ERROR_SEND           = 12
          DP_ERROR_WRITE          = 13
          UNKNOWN_DP_ERROR        = 14
          ACCESS_DENIED           = 15
          DP_OUT_OF_MEMORY        = 16
          DISK_FULL               = 17
          DP_TIMEOUT              = 18
          FILE_NOT_FOUND          = 19
          DATAPROVIDER_EXCEPTION  = 20
          CONTROL_FLUSH_ERROR     = 21
          OTHERS                  = 22
      IF SY-SUBRC <> 0.
        MESSAGE I208(00) WITH 'Errore creazione PDF'(A04).
        EXIT.
      ELSE.
        MESSAGE S208(00) WITH 'File creato con successo'(S01).
      ENDIF.
      CHECK P_OPEN = 'X'.
      CALL FUNCTION 'CALL_BROWSER'
           EXPORTING
                URL                    = FILE_TABLE-FILENAME
           EXCEPTIONS
                FRONTEND_NOT_SUPPORTED = 1
                FRONTEND_ERROR         = 2
                PROG_NOT_FOUND         = 3
                NO_BATCH               = 4
                UNSPECIFIED_ERROR      = 5
                OTHERS                 = 6.
      IF SY-SUBRC <> 0.
        MESSAGE S208(00) WITH 'Impossibile aprire file'(A05).
      ENDIF.
    ENDFORM.                    " DOWNLOAD_PDF
    Max

  • Sending SAP Script output as a PDF attachment through mail

    Dear Guru,
    I am using SAP 4.0B version, DATABASE Oracle 8i, OS is sun solaris 7.5.
    I want to send SAP script output as a
    PDF attachement through mail.Please suggest a solution.
    Regards,
    Rajesh

    Hi Rajesh,
    In your print program, while calling OPEN_FORM, pass options-TDGETOTF = 'X'. This is used for returning print output in OTF format.
    Then in CLOSE_FORM, get the table OTFDATA returned from the function module. for example
    DATA: OTF_DATA LIKE ITCOO OCCURS 0 WITH HEADER LINE.
        CALL FUNCTION 'CLOSE_FORM'
          IMPORTING
            RESULT  = RESULT
          TABLES
            OTFDATA = OTF_DATA.
    now you can convert this OTF data to PDF using function module CONVERT_OTF
    Then send this data as attachment to a mail using function module SO_NEW_DOCUMENT_ATT_SEND_API1
    Regards,
    Komal.

  • Convert SAP spool output to PDF

    I have created program running in background to convert SAP spool output to PDF using function CONVERT_ABAPSPOOLJOB_2_PDF .
    It has been working fine untill I have SAP spool contained > 99 pages. It has a dialog pop up asking to run it in background.
    If I clicked YES, the function generated another background job and another spool.
    Also the returned table PDF contained no data.
    But it is ok when click NO. The program can generate PDF file.
    My problem is I want to set this program as job, so it will not generate PDF file when SAP spool contained > 99 pages.
    Has anyone experienced about this problem? or know how to convert to PDF from SAP spool (>99 pages)?
    Thank you in Advance.

    Hi,
    Use the FM convert_otfspooljob_2_pdf
    see this link for example Re: Download in PDF format
    "Do not use CONVERT_ABAPSPOOLJOB_2_PDF  for script or Smartforms
    Prabhudas

  • Download Sap script output in XL.

    hi all,
    can anybody plz tell me that is there any possibility to download SAP script output in editable XL format? actually i got a new requirement in my company so plz can anybody help me for this?
    regards saurabh.

    Hi, Below code used for convert output into PDF format. May be you can convert into XL.
    In close form, collect output data into OTF format.
        call function 'CLOSE_FORM'
          TABLES
            otfdata                  = it_otfdata
          EXCEPTIONS
            unopened                 = 1
            bad_pageformat_for_print = 2
            send_error               = 3
            others                   = 4.
        if sy-subrc <> 0.
          PERFORM protocol_update.
          retcode = 1.
        endif.
      call function 'CONVERT_OTF'
        EXPORTING
          format                = c_pdf
        IMPORTING
          bin_filesize          = h_size
        TABLES
          otf                   = it_otfdata
          lines                 = it_pdf
        EXCEPTIONS
          err_max_linewidth     = 1
          err_format            = 2
          err_conv_not_possible = 3
          others                = 4.
      if sy-subrc <> 0.
       MOVE sy-subrc                 TO   h_retcode.
      endif.
      perform table_shift.
    form table_shift.
      describe table it_pdf    lines  hltlines.
      DESCRIBE FIELD IT_PDF    LENGTH FLE1 in character mode.
      DESCRIBE FIELD X_OBJCONT LENGTH FLE2 in character mode.
      clear   x_objcont.
      refresh x_objcont.
      clear off1.
      clear hfeld.
      loop at it_pdf.
        htabix = sy-tabix.
        move it_pdf to hfeld+off1.
        if htabix = hltlines.
          fle1 = strlen( it_pdf ).
        endif.
        off1 = off1 + fle1.
        if off1 ge fle2.
          clear x_objcont.
          x_objcont = hfeld(fle2).
          append x_objcont.
          shift hfeld by fle2 places.
          off1 = off1 - fle2.
        endif.
        if htabix = hltlines.
          if off1 gt 0.
            clear x_objcont.
            x_objcont = hfeld(off1).
            append x_objcont.
          endif.
        endif.
      endloop.
    endform.                    " TABLE_SHIFT

  • Dispalying SAP script output in landscape format

    Hello All,
    Could anyone please tell me the step by step process to display a SAP Script output in landscape format?
    Also is it possible to display a column name in 2 lines if it does not fit into 1 line.
    Regards
    Indrajit.

    Hi,
    Here is the way to print the SAPSCRIPT in landscape ..
    Goto SE71, then give you layout name then press change, then press the Header button(CAP ICON), then you will get the Header infomation, then select the Basic Settings pushbutton, then there we have an option to Print the Layout in  Portrait format or Landscapr format, then select the LANDSCAPR format Radio button then activate it
    Regards
    Sudheer

  • SAP Script output extra page is coming

    Dear friends
                             In my sap script output i m getting one extra page with empty main window. Even i have  not used NEW-PAGE Command,
    No Empty lines and window size also correct. Can anyone solute for this issue.
    Regards
    Balamurugan N

    Hi,
    check those details:
    1) In your SAPSCRIPT contains one page or two pages?
    2) In the sapscript check did u assign any nextpage as different page?
    Regards,
    Dhina..

  • Displaying Page number in all pages of sap script output

    Hi All,
    I have a issues in displaying page number in all pages of sap script output.
    I have created a seperate window just above main window to display page number.
    I have given &PAGE& in the layout editor.
    Now in the sap script output i am getting page number as 1 in all the pages page number is not changing for pages-2,3, etc..
    Can anybody tell me the reason for the same!
    In some other objects same syntax is working fine. For this object it is not working!
    Is there any setting changes!
    Thanks i
    Thanks,
    Deep.

    Hi,
    Just check the Page Counter of the Next or Second Page which you defined.
    First page
    Mode                     START
    Numbering Type           ARABIC
    Second Page
    Mode                     INC
    Numbering Type           ARABIC
    Regards
    Bala Krishna
    Edited by: Bala Krishna on Oct 17, 2008 11:23 AM

  • Regarding SAP Script Output validation in Layout set

    Hi All,
    I have a issue in SAP Script Output.
    I have a <b>Standard Print Program</b>. and layout set.
    I can do validations only in Layout set.
    The actual issue is i have a <b>internal table field</b> in <b>print program</b> that i am displaying in <b>layout set</b>. Now i want it to be subtracted with number <b>20</b>, since i can not edit code in <b>Print Program</b>. i want to subtract that internal table field with 20 in layout set itself.
    Can anybody tell me how can i solve this issue.
    <b>Note:</b>  I need to do calculation only in layout set.
    Can anybody give me the solution.
    Thanks in advance.
    Thanks & Regards,
    Rayeez.

    Hi,
    Thanks for that reply.
    so with <b>SUMMING</b> command i can do calculation.
    I am already having <b>i_tab1-sum</b> coming from print program and i have declared one symbol using
    DEFINE &v_val& = 20 in layout set.
    Then i want to subtract &v_val& with &i_tab1-sum&.
    using the follow syntax tell me wether syntax is correct or not.
    SUMMING &i_tab1-sum&-&v_val& INTO &i_tab1-sum&.
    will it work.
    once again thanks for that reply.
    Thanks & Regards,
    Rayeez.

  • Smartform/Sap script output to Text file/PDF/WORD

    Hi,
    I need to download/transfer the output of smartforms/sap script to text file/pdf file or word file.How do i do that?
    Do I need to create a new output device?
    thnx in advance
    chirantan

    Hi,
    Go through the following Code
    Mail a sapscript
    SAPscript: Autotmatically e-mail as PDF
    How to convert sapscript(Purchage order) inot pdf format & send in  mail
    Check the following Code
    REPORT ZRICH_0003.
    DATA: ITCPO LIKE ITCPO,
          TAB_LINES LIKE SY-TABIX.
    Variables for EMAIL functionality
    DATA: MAILDATA   LIKE SODOCCHGI1.
    DATA: MAILPACK   LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
    DATA: MAILHEAD   LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.
    DATA: MAILBIN    LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    DATA: MAILTXT    LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    DATA: MAILREC    LIKE SOMLREC90 OCCURS 0  WITH HEADER LINE.
    DATA: SOLISTI1   LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
    PERFORM SEND_FORM_VIA_EMAIL.
          FORM  SEND_FORM_VIA_EMAIL                                      *
    FORM  SEND_FORM_VIA_EMAIL.
      CLEAR:    MAILDATA, MAILTXT, MAILBIN, MAILPACK, MAILHEAD, MAILREC.
      REFRESH:  MAILTXT, MAILBIN, MAILPACK, MAILHEAD, MAILREC.
    Creation of the document to be sent File Name
      MAILDATA-OBJ_NAME = 'TEST'.
    Mail Subject
      MAILDATA-OBJ_DESCR = 'Subject'.
    Mail Contents
      MAILTXT-LINE = 'Here is your file'.
      APPEND MAILTXT.
    Prepare Packing List
      PERFORM PREPARE_PACKING_LIST.
    Set recipient - email address here!!!
      MAILREC-RECEIVER = '[email protected]'.
      MAILREC-REC_TYPE  = 'U'.
      APPEND MAILREC.
    Sending the document
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
           EXPORTING
                DOCUMENT_DATA              = MAILDATA
                PUT_IN_OUTBOX              = ' '
           TABLES
                PACKING_LIST               = MAILPACK
                OBJECT_HEADER              = MAILHEAD
                CONTENTS_BIN               = MAILBIN
                CONTENTS_TXT               = MAILTXT
                RECEIVERS                  = MAILREC
           EXCEPTIONS
                TOO_MANY_RECEIVERS         = 1
                DOCUMENT_NOT_SENT          = 2
                OPERATION_NO_AUTHORIZATION = 4
                OTHERS                     = 99.
    ENDFORM.
         Form  PREPARE_PACKING_LIST
    FORM PREPARE_PACKING_LIST.
      CLEAR:    MAILPACK, MAILBIN, MAILHEAD.
      REFRESH:  MAILPACK, MAILBIN, MAILHEAD.
      DESCRIBE TABLE MAILTXT LINES TAB_LINES.
      READ TABLE MAILTXT INDEX TAB_LINES.
      MAILDATA-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( MAILTXT ).
    Creation of the entry for the compressed document
      CLEAR MAILPACK-TRANSF_BIN.
      MAILPACK-HEAD_START = 1.
      MAILPACK-HEAD_NUM = 0.
      MAILPACK-BODY_START = 1.
      MAILPACK-BODY_NUM = TAB_LINES.
      MAILPACK-DOC_TYPE = 'RAW'.
      APPEND MAILPACK.
    Creation of the document attachment
    This form gets the OTF code from the SAPscript form.
    If you already have your OTF code, I believe that you may
    be able to skip this form.  just do the following code, looping thru
    your SOLISTI1 and updating MAILBIN.
      PERFORM GET_OTF_CODE.
      LOOP AT SOLISTI1.
        MOVE-CORRESPONDING SOLISTI1 TO MAILBIN.
        APPEND MAILBIN.
      ENDLOOP.
      DESCRIBE TABLE MAILBIN LINES TAB_LINES.
      MAILHEAD = 'TEST.OTF'.
      APPEND MAILHEAD.
    Creation of the entry for the compressed attachment
      MAILPACK-TRANSF_BIN = 'X'.
      MAILPACK-HEAD_START = 1.
      MAILPACK-HEAD_NUM = 1.
      MAILPACK-BODY_START = 1.
      MAILPACK-BODY_NUM = TAB_LINES.
      MAILPACK-DOC_TYPE = 'OTF'.
      MAILPACK-OBJ_NAME = 'TEST'.
      MAILPACK-OBJ_DESCR = 'Subject'.
      MAILPACK-DOC_SIZE = TAB_LINES * 255.
      APPEND MAILPACK.
    ENDFORM.
         Form  GET_OTF_CODE
    FORM  GET_OTF_CODE.
      DATA: BEGIN OF OTF OCCURS 0.
              INCLUDE STRUCTURE ITCOO .
      DATA: END OF OTF.
      DATA: ITCPO LIKE ITCPO.
      DATA: ITCPP LIKE ITCPP.
      CLEAR ITCPO.
      ITCPO-TDGETOTF = 'X'.
    Start writing OTF code
      CALL FUNCTION 'OPEN_FORM'
           EXPORTING
                FORM     = 'ZTEST_FORM'
                LANGUAGE = SY-LANGU
                OPTIONS  = ITCPO
                DIALOG   = ' '
           EXCEPTIONS
                OTHERS   = 1.
      CALL FUNCTION 'START_FORM'
           EXCEPTIONS
                ERROR_MESSAGE = 01
                OTHERS        = 02.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                WINDOW        = 'MAIN'
           EXCEPTIONS
                ERROR_MESSAGE = 01
                OTHERS        = 02.
    Close up Form and get OTF code
      CALL FUNCTION 'END_FORM'
           EXCEPTIONS
                ERROR_MESSAGE = 01
                OTHERS        = 02.
      MOVE-CORRESPONDING ITCPO TO ITCPP.
      CALL FUNCTION 'CLOSE_FORM'
           IMPORTING
                RESULT  = ITCPP
           TABLES
                OTFDATA = OTF
           EXCEPTIONS
                OTHERS  = 1.
    Move OTF code to structure SOLI form email
      CLEAR SOLISTI1. REFRESH SOLISTI1.
      LOOP AT OTF.
        SOLISTI1-LINE = OTF.
        APPEND SOLISTI1.
      ENDLOOP.
    ENDFORM.
    Regards
    Sreeni

  • Send SAP Script output (PDF) through Mail

    Dear Friends,
    Looking for sample program to send <b>SAP Script</b> output in PDF format to external mails while printing.
    Regards,
    Praveen Lobo

    Hi,
    better option is to convert your spool request to PDF and send it
    call function 'CONVERT_ABAPSPOOLJOB_2_PDF'
    exporting
    src_spoolid = mi_rqident
    no_dialog = c_no
    dst_device = c_device
    importing
    pdf_bytecount = gd_bytecount
    tables
    pdf = it_pdf_output
    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
    others = 12.
    check sy-subrc = 0.
    Transfer the 132-long strings to 255-long strings
    loop at it_pdf_output.
    translate it_pdf_output using ' ~'.
    concatenate gd_buffer it_pdf_output into gd_buffer.
    endloop.
    translate gd_buffer using '~ '.
    do.
    it_mess_att = gd_buffer.
    append it_mess_att.
    shift gd_buffer left by 255 places.
    if gd_buffer is initial.
    exit.
    endif.
    enddo.
    then call FM after populating attachment data
    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
    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

  • Reg: Script Output in PDF form

    Hai..
    Can anybody tell me how we will get script output
    (P.order output) in PDF format and we need to downlaod this PDF to our local drives. plz tell me the function modules to be used for this requirement and paste the code if any of you worked on this earlier..
    Regards

    Check this link for sample program.
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/49e15474-0e01-0010-9cba-e62df8244556
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/snippets/downloadSAPScriptoutputtoPDF+file.&
    Function Module: CONVERT_OTF
    Regards,
    Maha

  • Problem in PO SAP Script, producing a  PDF  format.

    Hi,
    Description: We have developed a Purchase Order script. Both the Print Program and SAP Script are customised i.e., we are no longer using the standard MEDRUCK. The print preview is fine and when we take a print out the output looks good.
    Problem: When the output type is changes to External Send using the Messages tab in the transaction ME23N, the output is given to a PDF file. In this output the vertical lines are not coming properly. The vertical lines are printed using the VLINE statement of sap script.
    Solution Required for: Could any one please tell me why are we getting this problem and a possible solution for this.
    Code:
    M9   &VLINE&,,&GT_EKPO-EBELP(Z)&,,&VLINE&,,<TX>&GT_EKPO-IDNLF(C14)&</>   
    =    ,,&VLINE&,,<TX>&GT_EKPO-TXZ01(C40)&</>,,&VLINE&,,&GT_EKPO-MENGE(C.0)&
    =    ,,&GT_EKPO-MEINS(3)&,,&VLINE&,,
    =  &GT_EKPO-NETPR(9.2)&                 
    =    ,,&VLINE&,,&GT_EKPO-NETWR(9.2)&,,&VLINE&                           
    Thanks and Regards,
    Raghavendra Goutham.
    NOTE: Helpfull answers will be rewarded definitely.

    Hi,
    Best practise is 1st you FRAME the window with boxes.........
    Example.....
    /*   BEGIN OF CHANGE LDEEPAK 09/12/2005.
    /:   IF &VBDKR-VBTYP& = 'O' OR &VBDKR-VBTYP& = 'S' OR &VBDKR-VBTYP& = '6'.
    /:   BOX YPOS '0.0' CM WIDTH '25.4' CM HEIGHT '0.85' CM FRAME 4 TW
    /:   BOX YPOS '0' CM XPOS '4.4'CM WIDTH '0'CM HEIGHT '0.85'CM FRAME 4 TW
    /:   BOX YPOS '0' CM XPOS '8.35'CM WIDTH '0'CM HEIGHT '0.85'CM FRAME 4 TW
    /:   BOX YPOS '0' CM XPOS '11.6'CM WIDTH '0'CM HEIGHT '0.85'CM FRAME 4 TW
    /:   BOX YPOS '0' CM XPOS '19.65'CM WIDTH '0'CM HEIGHT '0.85'CM FRAME 4 TW
    B     <K>CUSTOMER NO.</>            <K> CONTRACT NO. / SALES ORDER NO.</>
    =     <K>  ORIGINAL INVOICE NO.</>  ,,<K>  CUSTOMER PO.</>
    =                               ,,,,<K>TERMS</>
    /:   BOX YPOS '3.25'CM WIDTH '25.4'CM HEIGHT '0.95'CM FRAME 0 TW INTENSITY 8
    /:   BOX YPOS '5.1'CM WIDTH '25.4'CM HEIGHT '0.95'CM FRAME 0 TW INTENSITY 8
    /:   BOX YPOS '6.95'CM WIDTH '25.4'CM HEIGHT '0.95'CM FRAME 0 TW INTENSITY 8
    /:   BOX YPOS '8.85'CM WIDTH '25.4'CM HEIGHT '0.95'CM FRAME 0 TW INTENSITY 8
    /:   BOX YPOS '10.6'CM WIDTH '25.4'CM HEIGHT '0.95'CM FRAME 0 TW INTENSITY 8
    Like this you can give commands.
    Later you can code for getting the values in to window.
    Here while populating the values you need to use TABS to place the value in correct position.
    Thanks.
    If this helps you reward with points.
    Message was edited by: Deepak333 k

Maybe you are looking for

  • IPod update Version 1/2

    I recently updated my iPod 60 GB with version 1.2 and now the screen has lines, the iPod locks up, and I am having difficulty syncing. I am currently restoring and it seems to be progressing, but there are still lines on the screen; graphic garbage.

  • Apache Tomcat 4.0 and MySQL 3.2.3, how to connect?

    Hi, could anybody help me please? I have a problem in connecting between Apache Tomcat 4.0 and MySQL 3.2.3. How can I connect them? Do I need mm.mysql.Driver? I have download that one, but I don't know where I should put that .jar file? And before th

  • Long "All-Day" Event not showing in 2nd month

    All-Day events that begin before the last week in a month do not show up in the next month. Example: 3/29/2008 to 4/17/2008 (OK) 3/27/2008 to 4/17/2008 (event doesn't show at all in April)

  • Advice on consolodating libraries, moving music...?

    Hi, I want to put all my music on one (new) computer. Right now, my music is on 2 old computers and on each computer, my music is in several different folders. I'm thinking I sould consolodate both libraries first, and then move the files to the new

  • Set  issue

    Dear experts                 i have created one set in GS01 : ZFIS - SAVED - while am doing validation am getting below error Set ZFIS does not exist or cannot be used. Message no. GB551 Regards    Ajeesh.s