Archiving of Spool Request?

Is this possible? I will be running some background jobs each day and these need to be stored somehow, as opposed to just sitting in transaction SP02 and building up.
Thanks,
Dave

Hi Dave,
additionally basis people have to set up archive system, otherwise you will get a dump when creating the spool.
Regards,
Clemens

Similar Messages

  • Archiving of spool requests (ERS documents) Apprentice Project HELP needed..

    Hi guys,
    I'm an apprentice from Germany and I have to do a project for my final exams. I could desparetly Need some help on getting started.
    In our SRM, we have a program for the Generation of ERS documents (credit note?).
    Firstly, the Programm BBPERS creates ERS Idocs on Basis of stock-receipt (?). Secondly, the program RSPPFPROCESS sends the ERS invoice to the supplier via mail.
    The document is saved only as an email.
    We do have a Z-Programm, ZZBBPERS, that is used for subsequent creation of ERS documents as PDFs. These are saved in the Spool, but for each invoice a different spool number is created.
    Now my Task is to find a way to Archive these ERS documents into an external Archive. We use d.3 as Archive, I don't know if you have heard of it. But that shouldn't matter right now.
    So the question is, how can this be achieved? I don't really know anything about archiving in SAP. And this is a very Special case. Where do I have to start? Do I Need to write a program, or can I use some of SAPs Standard possiblities? What programs are there for archiving spools? Can they be defined as only archiving Spools from program X? Where do I define archiving procedures?
    I hope some of you can get me started. I don't Need a perfect solution right off the bat, just a place to start and ideas how to Approach this Project.
    Thanks SO MUCH in advance for any help!
    Greetings,
    Sebastian

    Thank you so much, this brought me a leap Forward.
    So the Business object should be the BUS2207, right? This is our Business object for ERS. We don't have BUS2081, what is that?
    edit: Wait, what is the difference between Business Object and Archiving Object? We do not have an archiving object vor ERS.
    To clarify: We do not book in SRM, we are sending it per Idoc to another SAP System where the booking takes place.
    We are just creating the PDF out of the BUS2207 and sending it to the vendor via RSPPFPROCESS and Action "BBP_ERS".
    Can you tell me where I can see detailed Information for the Archive Connection? I have the entry in OAC0 with IP address and all. But we have no records of ever archiving in this System so how can I see Connection details and test it?
    I also have to analyze if ArchiveLink is already set up and working..
    Also, where do I define how the files are saved in the storage System? With this I mean like in which Content repositories / Folders and so on they are saved.
    What Information are given to the PDF? All document informations, like Dates invoice number and so on? How can I use them for my Archive structure?
    Thanks in advance.

  • Convert Spool request to PDF and send as e-mail

    Hi all,
    Can any one please provide me a  sample code for converting spool request to pdf?
    Thanks in advance,
    Suneela.

    HI,
    Try this
    Hi all,
    Can any one please provide me a  sample code for converting spool request to pdf?
    *& 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 '[email protected]',
               p_sender LIKE somlreci1-receiver
                                        DEFAULT '[email protected]',
               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.
    Reward points if found helpfull....
    Venkoji.

  • Mass printing of spool requests

    Hi,
    Is it possible to program the triggering of the printing of a PDF document contained in a spool request ? ( the goal is to have the possibility for mass printing )
    thanks,
    Rolf

    Hi rolf here is the program to convert to PDF and mail it .
    *& Report  ZSPOOLTOPDFT                                             *
    *& Converts spool request into PDF document and emails it to           *
    *& recipicant.                                                         *
    *& Execution                                                           *
    *& This program can be run in background or online and a spool request *
    *& will still be created                                               *
    report  zspooltopdft                            .
    parameter: p_email1 like somlreci1-receiver
                                        default 'sandeep2jinnagmailcom',
               p_delspl  as checkbox,
               p_online no-display.
    *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,
           w_spool_nr like sy-spono.
          %_print LIKE pri_params.
    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 p_online = 'X'.
      Processing performed when program calls itself when run online
        gd_spool_nr = sy-spono.
        export gd_spool_nr to memory id 'SPOOLTOPDF'.
        exit.
      endif.
      if sy-batch eq 'X'.
        perform get_job_details.
        perform obtain_spool_id.
      else.
        gd_spool_nr = sy-spono.
    If executed online, it submits a program to perform the write statements
    instructing it to create a spool request, this could be another program
    which just performs the write statements and then exports sy-spono
    to memory. But in this example it calls itself passing X to parameter
    p_online, which takes it down an alternative procesing path.
        submit zspooltopdf2
               with p_online = 'X'
               to sap-spool
               spool parameters   %_print
              archive parameters %_print
               without spool dynpro
               and return.
      endif.
    Get spool id from program called above
      import gd_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.
          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.

  • Spool request sp02

    Hi all,
    I have a requirement where my data is in my internal table with that data i have to create a log in the spool sp02 t-code. Please help me to do this.
    Thanks in advance.

    Hi
    Below code can give you some idea for creating spool request and generating output:
    DATA: PRIPAR TYPE PRI_PARAMS,
          ARCPAR TYPE ARC_PARAMS,
          LAY    TYPE PRI_PARAMS-PAART,
          LINES  TYPE PRI_PARAMS-LINCT,
          ROWS   TYPE PRI_PARAMS-LINSZ.
    DATA: val(1).
    CALL FUNCTION 'GET_PRINT_PARAMETERS'
      EXPORTING
        destination            = 'LOCL'
        no_dialog              = 'X'
        immediately            = ' '
      IMPORTING
        out_archive_parameters = arcpar
        out_parameters         = pripar
        valid                  = val
      EXCEPTIONS
        archive_info_not_found = 1
        invalid_print_params   = 2
        invalid_archive_params = 3
        OTHERS                 = 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.
    pripar-prdsn = 'DSN'.
    CALL FUNCTION 'GET_PRINT_PARAMETERS'
      EXPORTING
        in_archive_parameters  = arcpar
        in_parameters          = pripar
        no_dialog              = 'X'
         list_name              = 'Testing Purpose Only' "l_list
      IMPORTING
        out_archive_parameters = arcpar
        out_parameters         = pripar
        valid                  = val
      EXCEPTIONS
        archive_info_not_found = 1
        invalid_print_params   = 2
        invalid_archive_params = 3
        OTHERS                 = 4.
    IF sy-subrc EQ 0.
      NEW-PAGE PRINT ON
      NEW-SECTION
      PARAMETERS pripar
      ARCHIVE PARAMETERS arcpar
      NO DIALOG.
    ELSE.
      write:/ 'Unable to create spool'.
    ENDIF.
    write:/ 'First Line'.
    write:/ 'Second Line'.
    NEW-PAGE PRINT OFF.
    Cheers,
    Simha.
    Reward all the helpful answers...

  • Is it possible to have Multiple Spool requests in one batch job overview?

    Hi,
    While running one of my z program in back ground, there are two spools generated (one by write statement and one by OPEN_FORM statement and both the spools are available in SP01 Transaction), but when i see the job overview in transaction SM37, I only see one spool request (that of the last spool request). Can any body in the group please tell me is it possible to see multiple spool requests in the job overview of one Abap program and if yes, how?
    Thank you.
    Abinash

    Hi Jayanthi,
    Thank you for the link. But probably that discussion was also an unsolved one.
    Anyway, does any one in the group think that display of multiple spools per one step job is dependent on client / SAP Server setting? Because as evident from the chain of mails in the link provided by Jayanthi, some people say that they see multiple spool requests for one program in batch mode job overview (SM37)? If yes, can some body tell me the required configuration?

  • F110 - one spool request number per payment order --URGENT

    Hi folks,
      I am ABAPer working for ECC6 upgrade project when i am running F110 payment run for customers to generate payment orders i am getting all the orders in one spool request no, But i need to generate one spool request no. per payment order.
      thanks in advance for you valuble inputs
    regards,
    ramahari

    Hi Madhuri,
    Call open form write form and close form in loop so that till sales order remains in the loop the form will continue to print. In this way all sales order in internal table will print in the same spool.
    Hope this will help you.
    Regards,
    Vijay

  • How to create the multiple spool requests for a single report.

    Hi gurus,
                     I have one requirement to be completed , i need to send the out put of the report via mail in pdf format. for that what i did was, iam executing report in background and creating spool request and converting it to pdf and sending the file.
    now the problem is, its a customer ledger report, for each customer i need to create a new spool request and send mail to that particular customer, now my dought is how to create multiple spool requests for a single pro and how i need to go about it.
    And one more question is can we create a spool request for a report which is running in online.
    waiting for inputs frm gurus.

    Hello,
    As per my knowledge for creating new spool id you will have to set
    output_options-tdnewid = 'X'.
    and then using
    job_output_info-spoolids
    create a pdf using
    call function 'CONVERT_OTFSPOOLJOB_2_PDF'
    Rachana.

  • Handle not valid for open spool request

    Hello everyone,
    i am facing an error while clicking the print preview option in change PO (me22n).
    i have given the dispatch time in further data of o/p as 'Send with application own transaction'.
    now, when i save and click print preview button i get an error as
    "Handle not valid for open spool request"
    Kindly give me some idea how to tackle this.
    Thanks
    gaurav

    Gaurav,
    I am having a similar issue and would appreciate if you could let us know how your problem was solved?
    What control parameters did you change to make this work?
    Thanks,
    Jay

  • How to send as an email the spool request?

    Dear Experts,
    My last post was Email background schedule report to gmail or yahoo mail .
    I got solution but it's work as a notification which we can say the after report run it triggers mail that report is completed as this time.
    But i required the thing how to send a spool request of a report  as an email attachment.
    it will be in .xls or .pdf or xyz format.
    It was the additional task which was required by my organization.
    I also want to know the following things.
    1. what is sap default configuration and system behind it.
    2. what the things abaper have to check.
    3. what is bcs_examples & where do i found these bcs_example8.
    Please guide me to explore my knowledge.
    Thanks & regards
    Nayan Lad
    Note for moderator : Sir, I will close request at 2:30 pm today onward, so please do not lock it.
    Moderator Message: All your questions can be answered by searching.
    Edited by: kishan P on Nov 13, 2010 3:29 PM

    need solution..

  • An error occurred when processing the spool request.  (Possibly due to memory problems)

    Hi SAP,
    My backgroud job is failing with log as shown below
    Job started
    Step 001 started (program ZMRS0065, variant SUS
    Step 002 started (program ZDRS0090, variant SUS
    Step 003 started (program ZFRS0305, variant SUS
    Step 004 started (program ZFRS0300, variant SUS
    Access error
    Job cancelled after system exception ERROR_MESSAGE
    An error occurred when processing the spool request.  (Possibly due to memory problems)
    Kindly help out in this issue
    Regards
    Mohammed

    Hello Mohammed,
    Have you seen any error in your SM21 system log and developer trace of spool work process
    during that time?
    The maximum size when create spool is 2GB.Pls also check if you are creating a spool
    larger than it.
    Best Regards
    Jie Bai

  • Smartform internal_error when merging forms into 1 spool request

    Hi,
    I have 2 smartforms - a letter and a certificate. The user has the option to print either one of these forms or both, per employee. I'm using 1 spool request.
    As soon as I call the second smartform there is an INTERNAL_ERROR. Why does this happen and how do I solve the problem?
    Please refer to the code sample below:
    loop at i380.
    make sure the spool is not closed
      control_parameters-no_open = 'X'.
      control_parameters-no_close = 'X'.
      AT FIRST.
       control_parameters-no_open = ' '.  
      ENDAT.
      AT LAST.
        control_parameters-no_close = ' '.
      ENDAT.
    call smartform 1
        call function 'SSF_FUNCTION_MODULE_NAME'
             EXPORTING
                  formname           = 'ZLETTER'
             IMPORTING
                  FM_NAME            = FM_NAME
             EXCEPTIONS
                  NO_FORM            = 1
                  NO_FUNCTION_MODULE = 2
                  OTHERS             = 3.
        if sy-subrc <> 0.
          WRITE: / 'ERROR 1'.
        endif.
         CALL FUNCTION FM_NAME
                 EXPORTING
                      CONTROL_PARAMETERS = control_parameters
                      OUTPUT_OPTIONS     = output_options
                      USER_SETTINGS      = ' '
                      pernr              = i380-pernr
                 IMPORTING
                      JOB_OUTPUT_INFO    = otf_info
                 EXCEPTIONS
                      FORMATTING_ERROR   = 1
                      INTERNAL_ERROR     = 2
                      SEND_ERROR         = 3
                      USER_CANCELED      = 4
                      OTHERS             = 5.
            IF SY-SUBRC <> 0.
            endif.
    second smartform - certificate
        call function 'SSF_FUNCTION_MODULE_NAME'
             EXPORTING
                  formname           = 'ZCERTIFICATE'
             IMPORTING
                  FM_NAME            = FM_NAME2
             EXCEPTIONS
                  NO_FORM            = 1
                  NO_FUNCTION_MODULE = 2
                  OTHERS             = 3.
        if sy-subrc <> 0.
          WRITE: / 'ERROR 1'.
        endif.
         CALL FUNCTION FM_NAME2
                 EXPORTING
                      CONTROL_PARAMETERS = control_parameters
                      OUTPUT_OPTIONS     = output_options
                      USER_SETTINGS      = ' '
                      pernr              = i380-pernr
                 IMPORTING
                      JOB_OUTPUT_INFO    = otf_info
                 EXCEPTIONS
                      FORMATTING_ERROR   = 1
                     <b> INTERNAL_ERROR     = 2</b>                  SEND_ERROR         = 3
                      USER_CANCELED      = 4
                      OTHERS             = 5.
            IF SY-SUBRC <> 0.
            ENDIF.
    endloop.
    I cleared output_parameters, output_options and otf_info when calling form ZCERTIFICATE but this does not solve the problem. When ZCERTIFICATE is called seperately, there is no problem.  The forms should be printed directly without conversion to PDF.
    Your help will be appreciated.

    Hi,
    In the loop AT Last is in wrong place. May be that could be the reason for your problem. Then the second call to samrt from is will be working on a closed session.
    regards
    austin
    Message was edited by: Joseph Austin Prabhu Paulthas

  • Spool request internal error

    Dear All,
    When I am executing a report in background using tcode se38, I am not able to view the output of the report from the spool request .
    When I try to view the contents of the spool request, It simply gives a message
    as follows :
    Request 74837 in system PRD : internal error
    00000040/ in spooler.
    Please advice me on this issue.
    Thanks
    Gaurav

    hello Gaurav,
    it is coming because the columns in spool is exceeding the SAP defined limit of 255. Either you need to create a device type with columns greater than 255 or else use the OSS note: 186603. It has a simple report <b>ZRSPOSHOWLIST</b>  that you need to create in your system. I created this report and now whenever i have such errors I use it to view the spool.
    regards.
    Ruchit.

  • Write the Error log from background Job to the Spool request

    Hi ,
    I have a situation where in i need to capture the error log of a Z program which runs as a background job and write that log into the spool request. My Z program calls runs RSEINB00 program using the SUBMIT statement. When this Job fails the error log can be seen in SM37. But i need this error log to be sent in to a spool.
    I can read the error log using the BP_JOBLOG_READ FM and can also create a spool using the RSPO_SPOOL_OPEN FM.
    The problem is, when the Submit statement executes, due to internal valdation in the RSEINB00 program the program terminates. Due to this it is not able to perform the SY-SUBRC Check and thus doesn't read the log.
    Can anybody suggest me how to overcome this problem. I am attaching the code for your refernece.
    SUBMIT RSEINB00
           USING SELECTION-SET 'TEST2'
                           TO SAP-SPOOL
                           LIST NAME 'LOCL'
                           IMMEDIATELY space
                           KEEP IN SPOOL 'X'
           AND RETURN.
    <b>If sy-subrc <> 0.</b>           
                 CALL FUNCTION 'BP_JOBLOG_READ'
                  EXPORTING
                    CLIENT                      = SY-MANDT
                    JOBCOUNT                    = i_tbtco-jobcount
                    JOBLOG                      = i_tbtco-joblog
                    JOBNAME                     = i_tbtco-jobname
                   TABLES
                     JOBLOGTBL                   = l_joblog
                 IF SY-SUBRC <> 0.
                 else.
                    message i002 with l_joblog-msgv1.
                 ENDIF.
    <b>
    ENDIF.</b>
    Rgds,
    Kewal
    P.S. : any other approach to solve this problem will be appreciated too and the points will be rewarded suitably.

    If I select a job in SM37 and I click on "spool" I get a list with separate spool entries for each of the steps, e. g.
    Programmname/Kommand   Programmtyp   Spoolliste
    Z_MM_STAT_UPDATE_WERK  ABAP             1707445
    ZSLEEP                 Ext. Kommando
    Z_MM_STAT_UPDATE_WERK  ABAP             1707459
    ZSLEEP                 Ext. Kommando
    Z_MM_STAT_UPDATE_MARA  ABAP             1721423
    ZSLEEP                 Ext. Kommando
    Z_MM_STAT_UPDATE_WERK  ABAP             1721437
    Z_MM_STAT_UPDATE_MARA  ABAP             1721446
    Z_MM_STAT_UPDATE_WERK  ABAP             1721447
    Z_MM_STAT_UPDATE_VKORG ABAP             1721471
    ZSLEEP                 Ext. Kommando
    Z_MM_STAT_UPDATE_VKORG ABAP             1721521
    ZSLEEP                 Ext. Kommando
    Z_MM_STAT_UPDATE_VKORG ABAP             1721816
    It's in German but I'm sure you get the idea. For each Z_MM_STAT_UPDATE and variant I have a separate spool list that I can display.
    Markus

  • SM37 - Graphical display of spool request in Hebrew

    Hello,
    I'm running a report in background. When I look at the spool request display
    the header display in hebrew from left to right instead right to left.
    when I'm running online I don't have a problem. I enter the session in hebrew.
    does anyone have any idea ?
    thanks,
    Michal

    Useful for background
    http://www.sappoint.com/basis/bckprsng.pdf
    http://help.sap.com/saphelp_nw04/helpdata/en/6f/08703713bf277ee10000009b38f8cf/frameset.htm
    http://publib.boulder.ibm.com/infocenter/wbihelp/index.jsp?topic=/com.ibm.wbix_adapters.doc/doc/mysap4/sap4x41.htm

Maybe you are looking for

  • BacNet using Java

    BacNet Protocol Support ==================== My application uses Real-Time devices. Hence I prefer to use BacNet protocol for monitoring via Remote. But I don't have any idea about Java's support about Bacnet. Let me know if we have any support in Ja

  • Iphone 6 plust update to 8.1 failed with unknown error (6)

    Trying to update my iphone 6 plus to ios 8.1 using windows laptop running windows 7. It failed with giving message update failed with unknown error (6). Exact error is:      The iPhone "iPhone" could not be restored. An unknown error occured (6). Aft

  • Moving from trial version to purchasing a full version

    I installed a trial version of an app (Stuff) on my PlayBook. I decided I wanted to purchase it after the trial period was over. App World will only let me delete it and reinstall the trial version. Does anyone have a suggestion ?

  • Part of address book data loss using Migration Assistant

    Used Migration Assistant to move everything from iMac 24" running OS 10.6 to new iMac 27" running OS 10.7.  Multiple data files didn't get transferred.  One was part of entrys in address book.  Is there anyway to manually transfer the data over?  Whe

  • Dragging in Edge

    Hello, I'm making the transition from Flash to Edge animate. I have a simple object (the letter 'A' named AA2) that sits on the stage. I have it animate by moving from one side of the stage to the other. After the animation is complete, I then want t