Application Development and Automation 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: 
Read only

background job

former_member841898
Participant
0 Likes
427

hi experts,

i have wriiten a sample code in which o/p will be hello.

i have schedule this program to run at specific time and date,

thru my program( pls ignore tr code sm36 and sm37 to create job),

but when im executing this program o/p is coming immeditely (ie . hello)

<b> and when im going to sm37 it is showing job status released and

scheduled and never goes in finish ststus and not going to spool

since background job should go to spool </b>

pls have alook to the code.

&----


*& Report YTIME *

*& *

&----


*& *

*& *

&----


REPORT ytime1 .

DATA: l_jobname LIKE tbtco-jobname VALUE 'JOB01',

l_jobcount LIKE tbtco-jobcount,

flg_job_released TYPE c,

startdate LIKE tbtcjob-sdlstrtdt,

starttime LIKE tbtcjob-sdlstrttm,

laststartdate LIKE tbtcjob-laststrtdt,

laststarttime LIKE tbtcjob-laststrttm.

WRITE:/ 'hello'.

CALL FUNCTION 'JOB_OPEN'

EXPORTING

  • DELANFREP = ' '

  • JOBGROUP = ' '

jobname = l_jobname

  • SDLSTRTDT = NO_DATE

  • SDLSTRTTM = NO_TIME

  • JOBCLASS =

IMPORTING

jobcount = l_jobcount

  • CHANGING

  • RET =

  • EXCEPTIONS

  • CANT_CREATE_JOB = 1

  • INVALID_JOB_DATA = 2

  • JOBNAME_MISSING = 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.

WRITE:/ 'ERROR IN JOB OPEN'.

else.

write:/ 'open success'.

ENDIF.

CALL FUNCTION 'JOB_SUBMIT'

EXPORTING

  • ARCPARAMS =

authcknam = sy-uname

  • COMMANDNAME = ' '

  • OPERATINGSYSTEM = ' '

  • EXTPGM_NAME = ' '

  • EXTPGM_PARAM = ' '

  • EXTPGM_SET_TRACE_ON = ' '

  • EXTPGM_STDERR_IN_JOBLOG = 'X'

  • EXTPGM_STDOUT_IN_JOBLOG = 'X'

  • EXTPGM_SYSTEM = ' '

  • EXTPGM_RFCDEST = ' '

  • EXTPGM_WAIT_FOR_TERMINATION = 'X'

jobcount = l_jobcount

jobname = l_jobname

  • LANGUAGE = SY-LANGU

  • PRIPARAMS = ' '

report = 'YTIME1'

  • VARIANT = ' '

  • IMPORTING

  • STEP_NUMBER =

  • EXCEPTIONS

  • BAD_PRIPARAMS = 1

  • BAD_XPGFLAGS = 2

  • INVALID_JOBDATA = 3

  • JOBNAME_MISSING = 4

  • JOB_NOTEX = 5

  • JOB_SUBMIT_FAILED = 6

  • LOCK_FAILED = 7

  • PROGRAM_MISSING = 8

  • PROG_ABAP_AND_EXTPG_SET = 9

  • OTHERS = 10

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

WRITE:/ 'ERROR IN JOB insert'.

else.

write:/ 'insert success'.

ENDIF.

startdate = '20071106'.

starttime = '121500'.

laststartdate = '20071106'.

laststarttime = '121600'.

CALL FUNCTION 'JOB_CLOSE'

EXPORTING

  • AT_OPMODE = ' '

  • AT_OPMODE_PERIODIC = ' '

  • CALENDAR_ID = ' '

  • EVENT_ID = ' '

  • EVENT_PARAM = ' '

  • EVENT_PERIODIC = ' '

jobcount = l_jobcount

jobname = l_jobname

laststrtdt = laststartdate

laststrttm = laststarttime

  • PRDDAYS = 0

  • PRDHOURS = 0

  • PRDMINS = 0

  • PRDMONTHS = 0

  • PRDWEEKS = 0

  • PREDJOB_CHECKSTAT = ' '

  • PRED_JOBCOUNT = ' '

  • PRED_JOBNAME = ' '

sdlstrtdt = startdate

sdlstrttm = starttime

  • STARTDATE_RESTRICTION = BTC_PROCESS_ALWAYS

  • strtimmed = 'X'

  • TARGETSYSTEM = ' '

  • START_ON_WORKDAY_NOT_BEFORE = SY-DATUM

  • START_ON_WORKDAY_NR = 0

  • WORKDAY_COUNT_DIRECTION = 0

  • RECIPIENT_OBJ =

  • TARGETSERVER = ' '

  • DONT_RELEASE = ' '

  • TARGETGROUP = ' '

  • DIRECT_START =

IMPORTING

job_was_released = flg_job_released

  • CHANGING

  • RET =

  • 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 <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

write:/ 'error in close'.

else.

write:/ 'close success'.

ENDIF.

pls help

regards

pankaj

hi experts,

i have wriiten a sample code in which o/p will be hello.

i have schedule this program to run at specific time and date,

thru my program( pls ignore tr code sm36 and sm37 to create job),

but when im executing this program o/p is coming immeditely (ie . hello)

<b> and when im going to sm37 it is showing job status released and

scheduled and never goes in finish ststus and not going to spool

since background job should go to spool </b>

pls have alook to the code.

&----


*& Report YTIME *

*& *

&----


*& *

*& *

&----


REPORT ytime1 .

DATA: l_jobname LIKE tbtco-jobname VALUE 'JOB01',

l_jobcount LIKE tbtco-jobcount,

flg_job_released TYPE c,

startdate LIKE tbtcjob-sdlstrtdt,

starttime LIKE tbtcjob-sdlstrttm,

laststartdate LIKE tbtcjob-laststrtdt,

laststarttime LIKE tbtcjob-laststrttm.

WRITE:/ 'hello'.

CALL FUNCTION 'JOB_OPEN'

EXPORTING

  • DELANFREP = ' '

  • JOBGROUP = ' '

jobname = l_jobname

  • SDLSTRTDT = NO_DATE

  • SDLSTRTTM = NO_TIME

  • JOBCLASS =

IMPORTING

jobcount = l_jobcount

  • CHANGING

  • RET =

  • EXCEPTIONS

  • CANT_CREATE_JOB = 1

  • INVALID_JOB_DATA = 2

  • JOBNAME_MISSING = 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.

WRITE:/ 'ERROR IN JOB OPEN'.

else.

write:/ 'open success'.

ENDIF.

CALL FUNCTION 'JOB_SUBMIT'

EXPORTING

  • ARCPARAMS =

authcknam = sy-uname

  • COMMANDNAME = ' '

  • OPERATINGSYSTEM = ' '

  • EXTPGM_NAME = ' '

  • EXTPGM_PARAM = ' '

  • EXTPGM_SET_TRACE_ON = ' '

  • EXTPGM_STDERR_IN_JOBLOG = 'X'

  • EXTPGM_STDOUT_IN_JOBLOG = 'X'

  • EXTPGM_SYSTEM = ' '

  • EXTPGM_RFCDEST = ' '

  • EXTPGM_WAIT_FOR_TERMINATION = 'X'

jobcount = l_jobcount

jobname = l_jobname

  • LANGUAGE = SY-LANGU

  • PRIPARAMS = ' '

report = 'YTIME1'

  • VARIANT = ' '

  • IMPORTING

  • STEP_NUMBER =

  • EXCEPTIONS

  • BAD_PRIPARAMS = 1

  • BAD_XPGFLAGS = 2

  • INVALID_JOBDATA = 3

  • JOBNAME_MISSING = 4

  • JOB_NOTEX = 5

  • JOB_SUBMIT_FAILED = 6

  • LOCK_FAILED = 7

  • PROGRAM_MISSING = 8

  • PROG_ABAP_AND_EXTPG_SET = 9

  • OTHERS = 10

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

WRITE:/ 'ERROR IN JOB insert'.

else.

write:/ 'insert success'.

ENDIF.

startdate = '20071106'.

starttime = '121500'.

laststartdate = '20071106'.

laststarttime = '121600'.

CALL FUNCTION 'JOB_CLOSE'

EXPORTING

  • AT_OPMODE = ' '

  • AT_OPMODE_PERIODIC = ' '

  • CALENDAR_ID = ' '

  • EVENT_ID = ' '

  • EVENT_PARAM = ' '

  • EVENT_PERIODIC = ' '

jobcount = l_jobcount

jobname = l_jobname

laststrtdt = laststartdate

laststrttm = laststarttime

  • PRDDAYS = 0

  • PRDHOURS = 0

  • PRDMINS = 0

  • PRDMONTHS = 0

  • PRDWEEKS = 0

  • PREDJOB_CHECKSTAT = ' '

  • PRED_JOBCOUNT = ' '

  • PRED_JOBNAME = ' '

sdlstrtdt = startdate

sdlstrttm = starttime

  • STARTDATE_RESTRICTION = BTC_PROCESS_ALWAYS

  • strtimmed = 'X'

  • TARGETSYSTEM = ' '

  • START_ON_WORKDAY_NOT_BEFORE = SY-DATUM

  • START_ON_WORKDAY_NR = 0

  • WORKDAY_COUNT_DIRECTION = 0

  • RECIPIENT_OBJ =

  • TARGETSERVER = ' '

  • DONT_RELEASE = ' '

  • TARGETGROUP = ' '

  • DIRECT_START =

IMPORTING

job_was_released = flg_job_released

  • CHANGING

  • RET =

  • 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 <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

write:/ 'error in close'.

else.

write:/ 'close success'.

ENDIF.

pls help

regards

pankaj

2 REPLIES 2
Read only

Former Member
0 Likes
395

Hi Pankaj,

i think u require to pass Start time and date in Job_open Fm. i am giving the sample code check it.

call function 'JOB_OPEN'

exporting

  • DELANFREP = ' '

  • JOBGROUP = ' '

jobname = jobname

sdlstrtdt = sy_date

sdlstrttm = st_time

importing

jobcount = jobnum

exceptions

cant_create_job = 1

invalid_job_data = 2

jobname_missing = 3

others = 4.

check sy-subrc = 0.

  • set print parameters

perform set_spool_params.

  • submit the report with current parameters

*break-point.

submit zmti_create_esoft_bom

with wa_board = wa_board

*chg001-start

with wa_plant = wa_plant

*chg001-end

to sap-spool

without spool dynpro

via job jobname number jobnum

and return.

  • close the job

call function 'JOB_CLOSE'

exporting

  • AT_OPMODE = ' '

  • AT_OPMODE_PERIODIC = ' '

  • CALENDAR_ID = ' '

  • EVENT_ID = ' '

  • EVENT_PARAM = ' '

  • EVENT_PERIODIC = ' '

jobcount = jobnum

jobname = jobname

  • LASTSTRTDT = NO_DATE

  • LASTSTRTTM = NO_TIME

  • PRDDAYS = 0

  • PRDHOURS = 0

  • PRDMINS = 0

  • PRDMONTHS = 0

  • PRDWEEKS = 0

  • PREDJOB_CHECKSTAT = ' '

  • PRED_JOBCOUNT = ' '

  • PRED_JOBNAME = ' '

sdlstrtdt = sy_date

sdlstrttm = st_time

  • STARTDATE_RESTRICTION = BTC_PROCESS_ALWAYS

  • STRTIMMED = ' '

  • TARGETSYSTEM = ' '

  • START_ON_WORKDAY_NOT_BEFORE = SY-DATUM

  • START_ON_WORKDAY_NR = 0

  • WORKDAY_COUNT_DIRECTION = 0

  • RECIPIENT_OBJ =

  • TARGETSERVER = ' '

  • DONT_RELEASE = ' '

  • IMPORTING

  • JOB_WAS_RELEASED =

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.

call function 'SAPGUI_PROGRESS_INDICATOR'

exporting

percentage = 100

text = 'Job Scheduling Over'.

Reward points if it helps.

Regards,

Shafivullah Mohammad

Read only

0 Likes
395

hi shafi ,

i have used ur logic in my code but the o/p is coming immediately and not going to spool. in sm37 the status is showing released and when refreshing the delay sec increases.

have alook.

&----


*& Report YTIME2 *

*& *

&----


*& *

*& *

&----


REPORT ytime2 .

DATA: l_jobname LIKE tbtco-jobname VALUE 'JOB02',

l_jobcount LIKE tbtco-jobcount,

flg_job_released TYPE c,

startdate LIKE tbtcjob-sdlstrtdt,

starttime LIKE tbtcjob-sdlstrttm,

laststartdate LIKE tbtcjob-laststrtdt,

laststarttime LIKE tbtcjob-laststrttm.

startdate = '20071106'.

starttime = '130600'.

*laststartdate = '20071106'.

*laststarttime = '121600'.

WRITE:/ 'hello'.

CALL FUNCTION 'JOB_OPEN'

EXPORTING

  • DELANFREP = ' '

  • JOBGROUP = ' '

jobname = l_jobname

SDLSTRTDT = startdate

SDLSTRTTM = starttime

  • JOBCLASS =

IMPORTING

jobcount = l_jobcount

  • CHANGING

  • RET =

  • EXCEPTIONS

  • CANT_CREATE_JOB = 1

  • INVALID_JOB_DATA = 2

  • JOBNAME_MISSING = 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.

WRITE:/ 'ERROR IN JOB OPEN'.

else.

write:/ 'open success'.

ENDIF.

submit ytime2 to sap-spool without spool dynpro

via job l_jobname number l_jobcount and return.

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

WRITE:/ 'ERROR IN JOB insert'.

else.

write:/ 'insert success'.

ENDIF.

*startdate = '20071106'.

*starttime = '121500'.

*laststartdate = '20071106'.

*laststarttime = '121600'.

CALL FUNCTION 'JOB_CLOSE'

EXPORTING

  • AT_OPMODE = ' '

  • AT_OPMODE_PERIODIC = ' '

  • CALENDAR_ID = ' '

  • EVENT_ID = ' '

  • EVENT_PARAM = ' '

  • EVENT_PERIODIC = ' '

jobcount = l_jobcount

jobname = l_jobname

  • laststrtdt = laststartdate

*

  • laststrttm = laststarttime

  • PRDDAYS = 0

  • PRDHOURS = 0

  • PRDMINS = 0

  • PRDMONTHS = 0

  • PRDWEEKS = 0

  • PREDJOB_CHECKSTAT = ' '

  • PRED_JOBCOUNT = ' '

  • PRED_JOBNAME = ' '

sdlstrtdt = startdate

sdlstrttm = starttime

  • STARTDATE_RESTRICTION = BTC_PROCESS_ALWAYS

  • strtimmed = 'X'

  • TARGETSYSTEM = ' '

  • START_ON_WORKDAY_NOT_BEFORE = SY-DATUM

  • START_ON_WORKDAY_NR = 0

  • WORKDAY_COUNT_DIRECTION = 0

  • RECIPIENT_OBJ =

  • TARGETSERVER = ' '

  • DONT_RELEASE = ' '

  • TARGETGROUP = ' '

  • DIRECT_START =

  • IMPORTING

  • job_was_released = flg_job_released

  • CHANGING

  • RET =

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 <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

write:/ 'error in close'.

else.

write:/ 'close success'.

ENDIF.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

PERCENTAGE = 100

TEXT = 'job sch over '

.

regards

pankaj