Skip to Content
avatar image
Former Member

how convert a report out put to pdf and sending it via an email

Hi all,

i have convert the sap list or report output to a pdf file then i have to send it via an email that is given in the selection screen. if anyone knows the solutions for this please make it soon. i will be very thankful.

Thanks & Regards,

Poorna

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

4 Answers

  • Jan 08, 2007 at 11:00 AM

    Hi ,

    use standard report RSTXPDFT4 for getting o/p in pdf format

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      generate spool request of ur report output and execute the standard program RSTXPDFT4 with tht spool reuest.it will download it in PDF format on ur PC and to send it via mail as attachment ,just copy this below code -

      &----


      *& Report ZGILL_SENDMAIL_PDF *

      *& *

      &----


      *& *

      *& *

      &----


      REPORT ZGILL_SENDMAIL_PDF .

      INCLUDE ZGILL_INCMAIL. "SEE BELOW FOR INCLUDE PROGRAM CODE.

      *----


      • DATA

      *----


      DATA : itab LIKE tline OCCURS 0 WITH HEADER LINE.

      DATA : file_name TYPE string.

      data : path like PCFILE-PATH.

      data : extension(5) type c.

      data : name(100) type c.

      *----


      • SELECTION SCREEN

      *----


      PARAMETERS : receiver TYPE somlreci1-receiver lower case DEFAULT 'AMIT_TYAGI@GILLETTE.COM'.

      PARAMETERS : p_file LIKE rlgrap-filename

      OBLIGATORY DEFAULT 'C:\TEMP\SALARY_SLIP1.PDF'.

      *----


      • AT SELECTION SCREEN

      *----


      AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

      CLEAR p_file.

      CALL FUNCTION 'F4_FILENAME'

      IMPORTING

      file_name = p_file.

      *----


      • START-OF-SELECTION

      *----


      START-OF-SELECTION.

      PERFORM ml_customize USING 'Tst' 'Testing'.

      PERFORM ml_addrecp USING receiver 'U'.

      PERFORM upl.

      PERFORM doconv TABLES itab objbin.

      PERFORM ml_prepare USING 'X' extension name.

      PERFORM ml_dosend.

      *----


      SUBMIT rsconn01

      WITH mode EQ 'INT'

      AND RETURN.

      *----


      • FORM

      *----


      FORM upl.

      file_name = p_file.

      CALL FUNCTION 'GUI_UPLOAD'

      EXPORTING

      filename = file_name

      filetype = 'BIN'

      TABLES

      data_tab = itab

      EXCEPTIONS

      file_open_error = 1

      file_read_error = 2

      no_batch = 3

      gui_refuse_filetransfer = 4

      invalid_type = 5

      no_authority = 6

      unknown_error = 7

      bad_data_format = 8

      header_not_allowed = 9

      separator_not_allowed = 10

      header_too_long = 11

      unknown_dp_error = 12

      access_denied = 13

      dp_out_of_memory = 14

      disk_full = 15

      dp_timeout = 16

      OTHERS = 17.

      path = file_name.

      CALL FUNCTION 'PC_SPLIT_COMPLETE_FILENAME'

      EXPORTING

      complete_filename = path

      • CHECK_DOS_FORMAT =

      IMPORTING

      • DRIVE =

      EXTENSION = extension

      NAME = name

      • NAME_WITH_EXT =

      • PATH =

      EXCEPTIONS

      INVALID_DRIVE = 1

      INVALID_EXTENSION = 2

      INVALID_NAME = 3

      INVALID_PATH = 4

      OTHERS = 5

      .

      ENDFORM. "upl

      *********************iNCLUDE pROGRAM********************************************

      &----


      *& Include ZGILL_INCMAIL *

      &----


      *----


      • Data

      *----


      DATA: docdata LIKE sodocchgi1,

      objpack LIKE sopcklsti1 OCCURS 1 WITH HEADER LINE,

      objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE,

      objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE,

      objbin LIKE solisti1 OCCURS 10 WITH HEADER LINE,

      objhex LIKE solix OCCURS 10 WITH HEADER LINE,

      reclist LIKE somlreci1 OCCURS 1 WITH HEADER LINE.

      DATA: tab_lines TYPE i,

      doc_size TYPE i,

      att_type LIKE soodk-objtp.

      DATA: listobject LIKE abaplist OCCURS 1 WITH HEADER LINE.

      *----


      • FORM

      *----


      FORM ml_customize USING objname objdesc.

      *----


      Clear Variables

      CLEAR docdata.

      REFRESH objpack.

      CLEAR objpack.

      REFRESH objhead.

      REFRESH objtxt.

      CLEAR objtxt.

      REFRESH objbin.

      CLEAR objbin.

      REFRESH objhex.

      CLEAR objhex.

      REFRESH reclist.

      CLEAR reclist.

      REFRESH listobject.

      CLEAR listobject.

      CLEAR tab_lines.

      CLEAR doc_size.

      CLEAR att_type.

      *----


      Set Variables

      docdata-obj_name = objname.

      docdata-obj_descr = objdesc.

      ENDFORM. "ml_customize

      *----


      • FORM

      *----


      FORM ml_addrecp USING preceiver prec_type.

      CLEAR reclist.

      reclist-receiver = preceiver.

      reclist-rec_type = prec_type.

      APPEND reclist.

      ENDFORM. "ml_customize

      *----


      • FORM

      *----


      FORM ml_addtxt USING ptxt.

      CLEAR objtxt.

      objtxt = ptxt.

      APPEND objtxt.

      ENDFORM. "ml_customize

      *----


      • FORM

      *----


      FORM ml_prepare USING bypassmemory whatatt_type whatname.

      IF bypassmemory = ''.

      *----


      Fetch List From Memory

      CALL FUNCTION 'LIST_FROM_MEMORY'

      TABLES

      listobject = listobject

      EXCEPTIONS

      OTHERS = 1.

      IF sy-subrc <> 0.

      MESSAGE ID '61' TYPE 'E' NUMBER '731'

      WITH 'LIST_FROM_MEMORY'.

      ENDIF.

      CALL FUNCTION 'TABLE_COMPRESS'

      • IMPORTING

      • COMPRESSED_SIZE =

      TABLES

      in = listobject

      out = objbin

      EXCEPTIONS

      OTHERS = 1

      .

      IF sy-subrc <> 0.

      MESSAGE ID '61' TYPE 'E' NUMBER '731'

      WITH 'TABLE_COMPRESS'.

      ENDIF.

      ENDIF.

      • -----------

      • Header Data

      • Already Done Thru FM

      • -----------

      • -----------

      • Main Text

      • Already Done Thru FM

      • -----------

      • -----------

      • Packing Info For Text Data

      • -----------

      DESCRIBE TABLE objtxt LINES tab_lines.

      READ TABLE objtxt INDEX tab_lines.

      docdata-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).

      CLEAR objpack-transf_bin.

      objpack-head_start = 1.

      objpack-head_num = 0.

      objpack-body_start = 1.

      objpack-body_num = tab_lines.

      objpack-doc_type = 'TXT'.

      APPEND objpack.

      • -----------

      • Packing Info Attachment

      • -----------

      att_type = whatatt_type..

      DESCRIBE TABLE objbin LINES tab_lines.

      READ TABLE objbin INDEX tab_lines.

      objpack-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objbin ).

      objpack-transf_bin = 'X'.

      objpack-head_start = 1.

      objpack-head_num = 0.

      objpack-body_start = 1.

      objpack-body_num = tab_lines.

      objpack-doc_type = att_type.

      objpack-obj_name = 'ATTACHMENT'.

      objpack-obj_descr = whatname.

      APPEND objpack.

      • -----------

      • Receiver List

      • Already done thru fm

      • -----------

      ENDFORM. "ml_prepare

      *----


      • FORM

      *----


      FORM ml_dosend.

      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

      EXPORTING

      document_data = docdata

      put_in_outbox = 'X'

      commit_work = 'X' "used from rel. 6.10

      • IMPORTING

      • SENT_TO_ALL =

      • NEW_OBJECT_ID =

      TABLES

      packing_list = objpack

      object_header = objhead

      contents_bin = objbin

      contents_txt = objtxt

      • CONTENTS_HEX = objhex

      • OBJECT_PARA =

      • object_parb =

      receivers = 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.

      MESSAGE ID 'SO' TYPE 'S' NUMBER '023'

      WITH docdata-obj_name.

      ENDIF.

      ENDFORM. "ml_customize

      *----


      • FORM

      *----


      FORM ml_spooltopdf USING whatspoolid.

      DATA : pdf LIKE tline OCCURS 0 WITH HEADER LINE.

      *----


      Call Function

      CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'

      EXPORTING

      src_spoolid = whatspoolid

      TABLES

      pdf = pdf

      EXCEPTIONS

      err_no_otf_spooljob = 1

      OTHERS = 12.

      *----


      Convert

      PERFORM doconv TABLES pdf objbin.

      ENDFORM. "ml_spooltopdf

      *----


      • FORM

      *----


      FORM doconv TABLES

      mypdf STRUCTURE tline

      outbin STRUCTURE solisti1.

      *----


      Data

      DATA : pos TYPE i.

      DATA : len TYPE i.

      *----


      Loop And Put Data

      LOOP AT mypdf.

      pos = 255 - len.

      IF pos > 134. "length of pdf_table

      pos = 134.

      ENDIF.

      outbin+len = mypdf(pos).

      len = len + pos.

      IF len = 255. "length of out (contents_bin)

      APPEND outbin.

      CLEAR: outbin, len.

      IF pos < 134.

      outbin = mypdf+pos.

      len = 134 - pos.

      ENDIF.

      ENDIF.

      ENDLOOP.

      IF len > 0.

      APPEND outbin.

      ENDIF.

      ENDFORM. "doconv

      **********************INCLUDE END********************************

  • avatar image
    Former Member
    Jan 08, 2007 at 11:03 AM

    use RSTXPDFT4 to get PDF format and then use

    SOmail (search in se37) and u will find the same.

    or

    in se37 search mailpdf* which will list fm so that u can use it.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Jan 08, 2007 at 11:04 AM

    Hi,

    first convert the spool to PDF file

    CONVERT_ABAPSPOOLJOB_2_PDF convert abap spool output to PDF

    and use this function mdule

    SO_NEW_DOCUMENT_ATT_SEND_API1

    or use this

    RS_SEND_MAIL_FOR_SPOOLLIST

    Read document for better understanding

    <b>Sample Program for your reference</b>

    *   
    *&---------------------------------------------------------------------*
    *& Report  ZSPOOLTOPDF                                                 *
    *&                                                                     *
    *&---------------------------------------------------------------------*
    *& Converts spool request into PDF document and emails it to           *
    *& recipicant.                                                         *
    *&                                                                     *
    *& Execution                                                           *
    *& ---------                                                           *
    *& This program must be run as a background job in-order for the write *
    *& commands to create a Spool request rather than be displayed on      *
    *& screen                                                              *
    *&---------------------------------------------------------------------*
    REPORT  zspooltopdf.
    
    PARAMETER: p_email1 LIKE somlreci1-receiver
                                        DEFAULT 'abap@sapdev.co.uk',
               p_sender LIKE somlreci1-receiver
                                        DEFAULT 'abap@sapdev.co.uk',
               p_delspl  AS CHECKBOX.
    
    *DATA DECLARATION
    DATA: gd_recsize TYPE i.
    
    * Spool IDs
    TYPES: BEGIN OF t_tbtcp.
            INCLUDE STRUCTURE tbtcp.
    TYPES: END OF t_tbtcp.
    DATA: it_tbtcp TYPE STANDARD TABLE OF t_tbtcp INITIAL SIZE 0,
          wa_tbtcp TYPE t_tbtcp.
    
    * Job Runtime Parameters
    DATA: gd_eventid LIKE tbtcm-eventid,
          gd_eventparm LIKE tbtcm-eventparm,
          gd_external_program_active LIKE tbtcm-xpgactive,
          gd_jobcount LIKE tbtcm-jobcount,
          gd_jobname LIKE tbtcm-jobname,
          gd_stepcount LIKE tbtcm-stepcount,
          gd_error    TYPE sy-subrc,
          gd_reciever TYPE sy-subrc.
    
    
    DATA:  w_recsize TYPE i.
    
    DATA: gd_subject   LIKE sodocchgi1-obj_descr,
          it_mess_bod LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          it_mess_att LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          gd_sender_type     LIKE soextreci1-adr_typ,
          gd_attachment_desc TYPE so_obj_nam,
          gd_attachment_name TYPE so_obj_des.
    
    * Spool to PDF conversions
    DATA: gd_spool_nr LIKE tsp01-rqident,
          gd_destination LIKE rlgrap-filename,
          gd_bytecount LIKE tst01-dsize,
          gd_buffer TYPE string.
    
    * Binary store for PDF
    DATA: BEGIN OF it_pdf_output OCCURS 0.
            INCLUDE STRUCTURE tline.
    DATA: END OF it_pdf_output.
    
    CONSTANTS: c_dev LIKE  sy-sysid VALUE 'DEV',
               c_no(1)     TYPE c   VALUE ' ',
               c_device(4) TYPE c   VALUE 'LOCL'.
    
    ************************************************************************
    *START-OF-SELECTION.
    START-OF-SELECTION.
    
    * Write statement to represent report output. Spool request is created
    * if write statement is executed in background. This could also be an
    * ALV grid which would be converted to PDF without any extra effort
      WRITE 'Hello World'.
      new-page.
      commit work.
      new-page print off.
    
      IF sy-batch EQ 'X'.
        PERFORM get_job_details.
        PERFORM obtain_spool_id.
    
    ************************************
    *** Alternative way could be to submit another program and store spool
    *** id into memory, will be stored in sy-spono.
    *submit ZSPOOLTOPDF2
    *        to sap-spool
    *        spool parameters   %_print
    *        archive parameters %_print
    *        without spool dynpro
    *        and return.
    ************************************
    
    * Get spool id from program called above 
    *  IMPORT w_spool_nr FROM MEMORY ID 'SPOOLTOPDF'.
    
        PERFORM convert_spool_to_pdf.
        PERFORM process_email.
    
        if p_delspl EQ 'X'.
          PERFORM delete_spool.
        endif.
    
        IF sy-sysid = c_dev.
          wait up to 5 seconds.
          SUBMIT rsconn01 WITH mode   = 'INT'
                          WITH output = 'X'
                          AND RETURN.
        ENDIF.
      ELSE.
        SKIP.
        WRITE:/ 'Program must be executed in background in-order for spool',
                'request to be created.'.
      ENDIF.
    
    
    *---------------------------------------------------------------------*
    *       FORM obtain_spool_id                                          *
    *---------------------------------------------------------------------*
    FORM obtain_spool_id.
      CHECK NOT ( gd_jobname IS INITIAL ).
      CHECK NOT ( gd_jobcount IS INITIAL ).
    
      SELECT * FROM  tbtcp
                     INTO TABLE it_tbtcp
                     WHERE      jobname     = gd_jobname
                     AND        jobcount    = gd_jobcount
                     AND        stepcount   = gd_stepcount
                     AND        listident   <> '0000000000'
                     ORDER BY   jobname
                                jobcount
                                stepcount.
    
      READ TABLE it_tbtcp INTO wa_tbtcp INDEX 1.
      IF sy-subrc = 0.
        message s004(zdd) with gd_spool_nr.
        gd_spool_nr = wa_tbtcp-listident.
        MESSAGE s004(zdd) WITH gd_spool_nr.
      ELSE.
        MESSAGE s005(zdd).
      ENDIF.
    ENDFORM.
    
    
    *---------------------------------------------------------------------*
    *       FORM get_job_details                                          *
    *---------------------------------------------------------------------*
    FORM get_job_details.
    * Get current job details
      CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
           IMPORTING
                eventid                 = gd_eventid
                eventparm               = gd_eventparm
                external_program_active = gd_external_program_active
                jobcount                = gd_jobcount
                jobname                 = gd_jobname
                stepcount               = gd_stepcount
           EXCEPTIONS
                no_runtime_info         = 1
                OTHERS                  = 2.
    ENDFORM.
    
    
    *---------------------------------------------------------------------*
    *       FORM convert_spool_to_pdf                                     *
    *---------------------------------------------------------------------*
    FORM convert_spool_to_pdf.
    
      CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
           EXPORTING
                src_spoolid              = gd_spool_nr
                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.
    ENDFORM.
    
    
    *---------------------------------------------------------------------*
    *       FORM process_email                                            *
    *---------------------------------------------------------------------*
    FORM process_email.
      DESCRIBE TABLE it_mess_att LINES gd_recsize.
      CHECK gd_recsize > 0.
      PERFORM send_email USING p_email1.
    *  perform send_email using p_email2.
    ENDFORM.
    
    
    *---------------------------------------------------------------------*
    *       FORM send_email                                               *
    *---------------------------------------------------------------------*
    *  -->  p_email                                                       *
    *---------------------------------------------------------------------*
    FORM send_email USING p_email.
      CHECK NOT ( p_email IS INITIAL ).
    
      REFRESH it_mess_bod.
    
    * Default subject matter
      gd_subject         = 'Subject'.
      gd_attachment_desc = 'Attachname'.
    *  CONCATENATE 'attach_name' ' ' INTO gd_attachment_name.
      it_mess_bod        = 'Message Body text, line 1'.
      APPEND it_mess_bod.
      it_mess_bod        = 'Message Body text, line 2...'.
      APPEND it_mess_bod.
    
    * If no sender specified - default blank
      IF p_sender EQ space.
        gd_sender_type  = space.
      ELSE.
        gd_sender_type  = 'INT'.
      ENDIF.
    
    
    * Send file by email as .xls speadsheet
      PERFORM send_file_as_email_attachment
                                   tables it_mess_bod
                                          it_mess_att
                                    using p_email
                                          'Example .xls documnet attachment'
                                          'PDF'
                                          gd_attachment_name
                                          gd_attachment_desc
                                          p_sender
                                          gd_sender_type
                                 changing gd_error
                                          gd_reciever.
    ENDFORM.
    
    
    *---------------------------------------------------------------------*
    *       FORM delete_spool                                             *
    *---------------------------------------------------------------------*
    FORM delete_spool.
      DATA: ld_spool_nr TYPE tsp01_sp0r-rqid_char.
    
      ld_spool_nr = gd_spool_nr.
    
      CHECK p_delspl <> c_no.
      CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
           EXPORTING
                spoolid = ld_spool_nr.
    ENDFORM.
    
    
    *&---------------------------------------------------------------------*
    *&      Form  SEND_FILE_AS_EMAIL_ATTACHMENT
    *&---------------------------------------------------------------------*
    *       Send email
    *----------------------------------------------------------------------*
    FORM send_file_as_email_attachment tables it_message
                                              it_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.
    
    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.
    
    
      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[] = it_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
                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.
    
    

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Jan 08, 2007 at 11:14 AM

    my problem is solved. thank you very much

    Add comment
    10|10000 characters needed characters exceeded