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: 

code for Job submit

Former Member
0 Kudos

Hi ,

I am trying to write code for open job , submit & close job.

I need to send 4 fields as parameters from program1 to the BGprogram.

Anyone please tell me the syntax for submit.I cun't find any syntax for this.

Thanks in advance,

1 ACCEPTED SOLUTION

ferry_lianto
Active Contributor
0 Kudos

Hi,

Please check this sample code.


CALL FUNCTION 'JOB_OPEN'
  EXPORTING
    JOBGROUP         = V_JOBGROUP
    JOBNAME          = V_JOBNAME
    SDLSTRTDT        = SY-DATUM
    SDLSTRTTM        = SY-UZEIT
  IMPORTING
    JOBCOUNT         = V_JOBCOUNT
  EXCEPTIONS
    CANT_CREATE_JOB  = 1
    INVALID_JOB_DATA = 2
    JOBNAME_MISSING  = 3
    OTHERS           = 4.

IF SY-SUBRC NE 0.
  CLEAR WA_MESSAGE.
  CONCATENATE TEXT-005 V_JOBNAME INTO WA_MESSAGE
                       SEPARATED BY SPACE.
  MESSAGE S009(ZZSCMAPO) WITH WA_MESSAGE.
  STOP.
ENDIF.

SUBMIT ZZAPOSSFCST_EXTRACTOR2
       USER SY-UNAME
       VIA JOB V_JOBNAME
       NUMBER V_JOBCOUNT
       WITH P_SOURCE EQ P_SOURCE  "<--- Here submit with parameter1
       WITH P_REQUNR EQ P_REQUNR  "<--- Here submit with parameter2
       WITH P_SIZE   EQ P_SIZE    "<--- Here submit with parameter3
       WITH P_CALLS  EQ P_CALLS   "<--- Here submit with parameter4
       AND RETURN.

IF SY-SUBRC NE 0.
  CLEAR WA_MESSAGE.
  CONCATENATE TEXT-006 V_JOBNAME INTO WA_MESSAGE
                       SEPARATED BY PACE.
  MESSAGE S009(ZZSCMAPO) WITH WA_MESSAGE.
  STOP.
ENDIF.

CALL FUNCTION 'JOB_CLOSE'
  EXPORTING
    JOBCOUNT             = V_JOBCOUNT
    JOBNAME              = V_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
    INVALID_TARGET       = 8
    OTHERS               = 9.

IF SY-SUBRC NE 0.
  CLEAR WA_MESSAGE.
  CONCATENATE TEXT-007 V_JOBNAME INTO WA_MESSAGE
                       SEPARATED BY SPACE.
  MESSAGE S009(ZZSCMAPO) WITH WA_MESSAGE.
  STOP.
ENDIF.

Regards,

Ferry Lianto

7 REPLIES 7

Former Member
0 Kudos
  • ..Create new job

CONCATENATE lc_job_prefix l_pr_count

INTO l_job_name SEPARATED BY '_'

.

CALL FUNCTION 'JOB_OPEN'

EXPORTING

jobname = l_job_name

IMPORTING

jobcount = l_job_count

EXCEPTIONS

cant_create_job = 1

invalid_job_data = 2

jobname_missing = 3

OTHERS = 4

.

IF sy-subrc <> 0.

  • ....Error creating job

IF NOT sy-msgid IS INITIAL.

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

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

ELSE.

MESSAGE s000(zz) WITH

'Failed to create job'(021)

l_job_name

.

ENDIF.

ELSE.

  • ....Submit job {

MESSAGE s000(zz) WITH

'Creating job'(022) l_job_name l_job_count '...'

INTO l_msgtx

.

PERFORM show_progress USING l_msgtx 0 1.

IF v_sort = 'X'.

SUBMIT (sy-cprog)

WITH s_pernr BETWEEN l_pernr_min AND l_pernr_max

WITH s_g_ctrl IN r_cs_ctrl

WITH s_g_land IN r_cs_land

WITH s_g_gs IN r_cs_gs

VIA JOB l_job_name NUMBER l_job_count

TO SAP-SPOOL SPOOL PARAMETERS l_print_parm

ARCHIVE PARAMETERS l_archive

WITHOUT SPOOL DYNPRO

AND RETURN

.

ELSE.

SUBMIT (sy-cprog)

WITH s_pernr BETWEEN l_pernr_min AND l_pernr_max

WITH s_g_lub IN r_cs_lub

WITH s_g_pro IN r_cs_pro

WITH s_g_pub IN r_cs_pub

VIA JOB l_job_name NUMBER l_job_count

TO SAP-SPOOL SPOOL PARAMETERS l_print_parm

ARCHIVE PARAMETERS l_archive

WITHOUT SPOOL DYNPRO

AND RETURN

.

ENDIF.

  • ....Start immediately

CALL FUNCTION 'JOB_CLOSE'

EXPORTING

jobcount = l_job_count

jobname = l_job_name

strtimmed = true

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

.

IF sy-subrc <> 0.

IF NOT sy-msgid IS INITIAL.

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

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

ELSE.

MESSAGE s000(zz) WITH

'Error releasing job'(023)

l_job_name

l_job_count

.

ENDIF.

ELSE.

MESSAGE s000(zz) WITH

'Job released'(024) l_job_name l_job_count

INTO l_msgtx

.

PERFORM show_progress USING l_msgtx 0 1.

ENDIF.

  • ....} Submit job

ENDIF.

  • ..Increment process count

ADD 1 TO l_pr_count.

ENDDO.

*

MESSAGE s000(zz) WITH l_pr_count 'job(s) created.'(025).

0 Kudos

Hi ,

Can you please explain ...or please give me the syntax for passing 4 fields...I am not able to understand you code.

Thanks in advance

ferry_lianto
Active Contributor
0 Kudos

Hi,

Please check this sample code.


CALL FUNCTION 'JOB_OPEN'
  EXPORTING
    JOBGROUP         = V_JOBGROUP
    JOBNAME          = V_JOBNAME
    SDLSTRTDT        = SY-DATUM
    SDLSTRTTM        = SY-UZEIT
  IMPORTING
    JOBCOUNT         = V_JOBCOUNT
  EXCEPTIONS
    CANT_CREATE_JOB  = 1
    INVALID_JOB_DATA = 2
    JOBNAME_MISSING  = 3
    OTHERS           = 4.

IF SY-SUBRC NE 0.
  CLEAR WA_MESSAGE.
  CONCATENATE TEXT-005 V_JOBNAME INTO WA_MESSAGE
                       SEPARATED BY SPACE.
  MESSAGE S009(ZZSCMAPO) WITH WA_MESSAGE.
  STOP.
ENDIF.

SUBMIT ZZAPOSSFCST_EXTRACTOR2
       USER SY-UNAME
       VIA JOB V_JOBNAME
       NUMBER V_JOBCOUNT
       WITH P_SOURCE EQ P_SOURCE  "<--- Here submit with parameter1
       WITH P_REQUNR EQ P_REQUNR  "<--- Here submit with parameter2
       WITH P_SIZE   EQ P_SIZE    "<--- Here submit with parameter3
       WITH P_CALLS  EQ P_CALLS   "<--- Here submit with parameter4
       AND RETURN.

IF SY-SUBRC NE 0.
  CLEAR WA_MESSAGE.
  CONCATENATE TEXT-006 V_JOBNAME INTO WA_MESSAGE
                       SEPARATED BY PACE.
  MESSAGE S009(ZZSCMAPO) WITH WA_MESSAGE.
  STOP.
ENDIF.

CALL FUNCTION 'JOB_CLOSE'
  EXPORTING
    JOBCOUNT             = V_JOBCOUNT
    JOBNAME              = V_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
    INVALID_TARGET       = 8
    OTHERS               = 9.

IF SY-SUBRC NE 0.
  CLEAR WA_MESSAGE.
  CONCATENATE TEXT-007 V_JOBNAME INTO WA_MESSAGE
                       SEPARATED BY SPACE.
  MESSAGE S009(ZZSCMAPO) WITH WA_MESSAGE.
  STOP.
ENDIF.

Regards,

Ferry Lianto

0 Kudos

SUBMIT ztestjob USER sy-uname

VIA JOB p_jobname

NUMBER p_jobcount

p_matnr eq p_matnr

AND RETURN.

This is my code and I get an error " The addition "VIA JOB" only makes sense with addition "AND RETURN".

Can anyone solve this ASAP?

0 Kudos

Oh Sorry ! I missed the " with " .

Thanks All

Former Member
0 Kudos

Hi,

Use JOB_SUBMIT to add a job step to a background job that you have opened with JOB_OPEN.

A job step is an independent unit of work in a job, the execution of an ABAP or external program. Each job step can have its own authorizations user and printer/optical archiving specifications.

Related function modules include:

JOB_OPEN: Create a background job.

JOB_CLOSE: Submit a background job to the background processing system for execution.

For more information, please see the online documentation in the function module facility (transaction SE37)

Regards

Sudheer

ferry_lianto
Active Contributor
0 Kudos

Hi,

You are missing 'WITH'.


SUBMIT ztestjob USER sy-uname
VIA JOB p_jobname
NUMBER p_jobcount
WITH p_matnr eq p_matnr           "<--- change here 
AND RETURN. 

Regards,

Ferry Lianto