Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

SPOOL Not generated in SUBMIT background job

Former Member
0 Kudos

Hi All,

I am submiting a report program using SUBMIT keyword. I required SPOOL. But its not generating. Can anyone kindly let me know whts wrong in my code?


CALL FUNCTION 'GET_PRINT_PARAMETERS'
  EXPORTING
    LAYOUT                 = 'X_65_132'
    LINE_COUNT             = 65
    LINE_SIZE              = 132
  IMPORTING
    OUT_PARAMETERS         = print_parameters
    OUT_ARCHIVE_PARAMETERS = ARCPAR
    VALID                  = VAL
  EXCEPTIONS
    ARCHIVE_INFO_NOT_FOUND = 1
    INVALID_PRINT_PARAMS   = 2
    INVALID_ARCHIVE_PARAMS = 3
    OTHERS                 = 4.

  CALL FUNCTION 'JOB_OPEN'
    EXPORTING
      jobname          = name
    IMPORTING
      jobcount         = number
    EXCEPTIONS
      cant_create_job  = 1
      invalid_job_data = 2
      jobname_missing  = 3
      OTHERS           = 4.
  IF sy-subrc = 0.
      SUBMIT saprck60
            TO SAP-SPOOL                        
            SPOOL PARAMETERS print_parameters    
            WITHOUT SPOOL DYNPRO               
         WITH FREE SELECTIONS texpr
             VIA SELECTION-SCREEN
             WITH ck_matnr = 'Z*' SIGN 'E'
             WITH ck_werks = p_werks
             WITH kalaid  = wa_default-kalaid
             WITH kaladat = sy-datum
             WITH backgr = 'X'
       VIA JOB name NUMBER number
        AND RETURN .

1 ACCEPTED SOLUTION

former_member404244
Active Contributor
0 Kudos

Hi,

Try this code



data : l_jobname   TYPE tbtcjob-jobname,
          l_jobcount  TYPE tbtcjob-jobcount,
          l_dest      TYPE pri_params-pdest VALUE 'LOCL',
          l_linsz     TYPE pri_params-linsz VALUE '999999',
          l_jobstatus TYPE tbtco-status,
          l_rqident   TYPE tsp01-rqident.

CALL FUNCTION 'JOB_OPEN'
    EXPORTING
      jobname          = l_jobname
    IMPORTING
      jobcount         = l_jobcount
    EXCEPTIONS
      cant_create_job  = 1
      invalid_job_data = 2
      jobname_missing  = 3
      OTHERS           = 4.
  IF sy-subrc EQ 0.
* Set default print parameters for Spool
    CALL FUNCTION 'SET_PRINT_PARAMETERS'
      EXPORTING
        destination = l_dest
        line_size   = l_linsz.

    SUBMIT saprck60
           TO SAP-SPOOL  DESTINATION l_dest
               LINE-SIZE   l_linsz
               IMMEDIATELY 'X'
               KEEP IN SPOOL 'X'
               USER sy-uname VIA JOB l_jobname NUMBER l_jobcount
                WITHOUT SPOOL DYNPRO
                WITH SELECTION-TABLE p_sel_opts
                 AND RETURN.

    IF sy-subrc EQ 0.

      CALL FUNCTION 'JOB_CLOSE'
        EXPORTING
          jobcount             = l_jobcount
          jobname              = l_jobname
          strtimmed            = 'X'
        EXCEPTIONS
          cant_start_immediate = 1
          invalid_startdate    = 2
          jobname_missing      = 3
          job_close_failed     = 4
          job_nosteps          = 5
          job_notex            = 6
          lock_failed          = 7
          OTHERS               = 8.

    ENDIF.
  ENDIF.
* Check the Job status
  DO.
    CALL FUNCTION 'BDL_READ_JOB_STATUS'
      EXPORTING
        jobname       = l_jobname
        jobnumber     = l_jobcount
      IMPORTING
        jobstatus     = l_jobstatus
      EXCEPTIONS
        job_not_found = 1
        OTHERS        = 2.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

    IF l_jobstatus EQ 'F'.
      EXIT.
    ENDIF.
  ENDDO.

Regards,

Nagaraj

4 REPLIES 4

Former Member
0 Kudos

Try using the FM 'JOB_CLOSE' at the end after the submit , that should work .

0 Kudos

Hi,

Already i added the fn module,


      CALL FUNCTION 'JOB_CLOSE'
        EXPORTING
          jobcount             = number
          jobname              = name
          strtimmed            = 'X'
        EXCEPTIONS
          cant_start_immediate = 1
          invalid_startdate    = 2
          jobname_missing      = 3
          job_close_failed     = 4
          job_nosteps          = 5
          job_notex            = 6
          lock_failed          = 7
          OTHERS               = 8.

    ENDIF.
  ENDIF.

Former Member
0 Kudos

Hi Mohana,

Try running the program you wish to submit in dialog mode and check if it generates a spool.

Regards,

Jovito.

former_member404244
Active Contributor
0 Kudos

Hi,

Try this code



data : l_jobname   TYPE tbtcjob-jobname,
          l_jobcount  TYPE tbtcjob-jobcount,
          l_dest      TYPE pri_params-pdest VALUE 'LOCL',
          l_linsz     TYPE pri_params-linsz VALUE '999999',
          l_jobstatus TYPE tbtco-status,
          l_rqident   TYPE tsp01-rqident.

CALL FUNCTION 'JOB_OPEN'
    EXPORTING
      jobname          = l_jobname
    IMPORTING
      jobcount         = l_jobcount
    EXCEPTIONS
      cant_create_job  = 1
      invalid_job_data = 2
      jobname_missing  = 3
      OTHERS           = 4.
  IF sy-subrc EQ 0.
* Set default print parameters for Spool
    CALL FUNCTION 'SET_PRINT_PARAMETERS'
      EXPORTING
        destination = l_dest
        line_size   = l_linsz.

    SUBMIT saprck60
           TO SAP-SPOOL  DESTINATION l_dest
               LINE-SIZE   l_linsz
               IMMEDIATELY 'X'
               KEEP IN SPOOL 'X'
               USER sy-uname VIA JOB l_jobname NUMBER l_jobcount
                WITHOUT SPOOL DYNPRO
                WITH SELECTION-TABLE p_sel_opts
                 AND RETURN.

    IF sy-subrc EQ 0.

      CALL FUNCTION 'JOB_CLOSE'
        EXPORTING
          jobcount             = l_jobcount
          jobname              = l_jobname
          strtimmed            = 'X'
        EXCEPTIONS
          cant_start_immediate = 1
          invalid_startdate    = 2
          jobname_missing      = 3
          job_close_failed     = 4
          job_nosteps          = 5
          job_notex            = 6
          lock_failed          = 7
          OTHERS               = 8.

    ENDIF.
  ENDIF.
* Check the Job status
  DO.
    CALL FUNCTION 'BDL_READ_JOB_STATUS'
      EXPORTING
        jobname       = l_jobname
        jobnumber     = l_jobcount
      IMPORTING
        jobstatus     = l_jobstatus
      EXCEPTIONS
        job_not_found = 1
        OTHERS        = 2.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

    IF l_jobstatus EQ 'F'.
      EXIT.
    ENDIF.
  ENDDO.

Regards,

Nagaraj