‎2007 Nov 27 12:39 PM
Hi Experts,
How to create a batch job through coding?
Regards
Saroj
‎2007 Nov 27 12:46 PM
Hi, below is the code.
***Create Variant for the job
***Get the dynamic variant name
DATA: variant_name TYPE varid-variant value 'test'.
.
DATA: vari_desc LIKE varid,
vari_contents LIKE rsparams OCCURS 0 WITH HEADER LINE,
vari_text LIKE varit OCCURS 0 WITH HEADER LINE.
CLEAR: vari_desc,vari_contents,vari_text.
REFRESH: vari_contents[], vari_text[].
vari_desc-mandt = sy-mandt.
vari_desc-report = 'ZCTRAOBJECT_CAL_FILEDAMT_JOB'.
vari_desc-variant = variant_name.
vari_desc-transport = 'F'.
vari_desc-environmnt = 'A'.
vari_desc-version = 1.
vari_desc-mlangu = sy-langu.
***Varint Text
vari_text-mandt = sy-mandt.
vari_text-langu = sy-langu.
vari_text-report = 'ZCTRAOBJECT_CAL_FILEDAMT_JOB'.
vari_text-variant = variant_name.
CONCATENATE 'job' 'Background' INTO vari_text-vtext SEPARATED BY space.
APPEND vari_text.
***Partner
IF ( p_partner-low IS NOT INITIAL ).
vari_contents-selname = 'PARTNER'.
vari_contents-kind = 'S'.
vari_contents-sign = 'I'.
IF ( ( p_partner-low IS NOT INITIAL ) AND ( p_partner-high IS INITIAL ) ).
vari_contents-option = 'EQ'.
vari_contents-low = p_partner-low.
ENDIF.
IF ( ( p_partner-low IS NOT INITIAL ) AND ( p_partner-high IS NOT INITIAL ) ).
vari_contents-option = 'BT'.
vari_contents-low = p_partner-low.
vari_contents-high = p_partner-high.
ENDIF.
APPEND vari_contents.
ENDIF.
***Contract Account
IF ( p_cont_acct-low IS NOT INITIAL ).
vari_contents-selname = 'CA_ACC'.
vari_contents-kind = 'S'.
vari_contents-sign = 'I'.
IF ( ( p_cont_acct-low IS NOT INITIAL ) AND ( p_cont_acct-high IS INITIAL ) ).
vari_contents-option = 'EQ'.
vari_contents-low = p_cont_acct-low.
ENDIF.
IF ( ( p_cont_acct-low IS NOT INITIAL ) AND ( p_cont_acct-high IS NOT INITIAL ) ).
vari_contents-option = 'BT'.
vari_contents-low = p_cont_acct-low.
vari_contents-high = p_cont_acct-high.
ENDIF.
APPEND vari_contents.
ENDIF.
***Contract Object
IF ( p_cont_obj-low IS NOT INITIAL ).
vari_contents-selname = 'CO_OBJ'.
vari_contents-kind = 'S'.
vari_contents-sign = 'I'.
IF ( ( p_cont_obj-low IS NOT INITIAL ) AND ( p_cont_obj-high IS INITIAL ) ).
vari_contents-option = 'EQ'.
vari_contents-low = p_cont_obj-low.
ENDIF.
IF ( ( p_cont_obj-low IS NOT INITIAL ) AND ( p_cont_obj-high IS NOT INITIAL ) ).
vari_contents-option = 'BT'.
vari_contents-low = p_cont_obj-low.
vari_contents-high = p_cont_obj-high.
ENDIF.
APPEND vari_contents.
ENDIF.
***Account Category
IF ( p_ctra_acc_category IS NOT INITIAL ).
vari_contents-selname = 'P_CAT'.
vari_contents-kind = 'P'.
vari_contents-low = p_ctra_acc_category.
APPEND vari_contents.
ENDIF.
***filed_freq_to_change_from
IF ( p_filed_freq_to_change_from IS NOT INITIAL ).
vari_contents-selname = 'P_TO_CH'.
vari_contents-kind = 'P'.
vari_contents-low = p_filed_freq_to_change_from.
APPEND vari_contents.
ENDIF.
***req_filed_freq_change
IF ( p_req_filed_freq_change IS NOT INITIAL ).
vari_contents-selname = 'P_CHANGE'.
vari_contents-kind = 'P'.
vari_contents-low = p_req_filed_freq_change.
APPEND vari_contents.
ENDIF.
***Test Run p_tstrun
vari_contents-selname = 'P_TSTRUN'.
vari_contents-kind = 'P'.
vari_contents-low = p_test_run.
APPEND vari_contents.
***Update Filing Frequency Checkbox
vari_contents-selname = 'P_FIL_FR'.
vari_contents-kind = 'P'.
vari_contents-low = p_update_filing_frequency.
APPEND vari_contents.
***Update Incoming Payment Channel Checkbox
vari_contents-selname = 'P_PAY_CH'.
vari_contents-kind = 'P'.
vari_contents-low = p_update_payment_channel.
APPEND vari_contents.
***Update Filing Channel Checkbox
vari_contents-selname = 'P_FIL_CH'.
vari_contents-kind = 'P'.
vari_contents-low = p_update_filing_channel.
APPEND vari_contents.
***Use Current Filing Period Checkbox
vari_contents-selname = 'P_CU_PER'.
vari_contents-kind = 'P'.
vari_contents-low = use_curr_per.
APPEND vari_contents.
****Create Variant thru Function Module
CALL FUNCTION 'RS_CREATE_VARIANT'
EXPORTING
curr_report = 'ZCTRAOBJECT_CAL_FILEDAMT_JOB'
curr_variant = variant_name
vari_desc = vari_desc
TABLES
vari_contents = vari_contents
vari_text = vari_text.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
****Prepare all the date for scheduling job
***Get the print parameters
DATA: params LIKE pri_params.
CLEAR params.
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
mode = 'CURRENT'
no_dialog = 'X'
IMPORTING
out_parameters = params.
params-paart = 'X_65_255'."'X_PAPER'.
***Open The scheduling job
DATA: job LIKE tbtcjob-jobname,
jobcount LIKE tbtcjob-jobcount.
CLEAR: job,jobcount.
job = 'ZCTRAOBJECT_CAL_FILEDAMT_JOB'.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = job
IMPORTING
jobcount = jobcount
EXCEPTIONS
OTHERS = 4.
***Job Submit
DATA: authcknam LIKE tbtcjob-authcknam.
CLEAR: authcknam.
authcknam = sy-uname.
params-primm = space.
CALL FUNCTION 'JOB_SUBMIT'
EXPORTING
authcknam = authcknam
jobcount = jobcount
jobname = job
priparams = params
report = 'ZCTRAOBJECT_CAL_FILEDAMT_JOB'
variant = variant_name.
***JOB_CLOSE
DATA: sdlstrttm TYPE tbtcjob-sdlstrttm,
released LIKE btch0000-char1.
sdlstrttm = p_job_start_time + 30.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
sdlstrtdt = p_job_start_date
sdlstrttm = sdlstrttm
jobcount = jobcount
jobname = job
IMPORTING
job_was_released = released.
Regs
Manas
‎2007 Nov 27 12:42 PM
Hi Saroj,
All function modules needed to do this can be found in function group BTCH.
Regards,
John.
‎2007 Nov 27 12:44 PM
‎2007 Nov 27 12:44 PM
Hello,
Either you can record SM 36 in SHDB and then create gob via BDC or you can use FM BP_JOB_CREATE.
Regards
Saket Sharma
‎2007 Nov 27 12:45 PM
‎2007 Nov 27 12:46 PM
Hi, below is the code.
***Create Variant for the job
***Get the dynamic variant name
DATA: variant_name TYPE varid-variant value 'test'.
.
DATA: vari_desc LIKE varid,
vari_contents LIKE rsparams OCCURS 0 WITH HEADER LINE,
vari_text LIKE varit OCCURS 0 WITH HEADER LINE.
CLEAR: vari_desc,vari_contents,vari_text.
REFRESH: vari_contents[], vari_text[].
vari_desc-mandt = sy-mandt.
vari_desc-report = 'ZCTRAOBJECT_CAL_FILEDAMT_JOB'.
vari_desc-variant = variant_name.
vari_desc-transport = 'F'.
vari_desc-environmnt = 'A'.
vari_desc-version = 1.
vari_desc-mlangu = sy-langu.
***Varint Text
vari_text-mandt = sy-mandt.
vari_text-langu = sy-langu.
vari_text-report = 'ZCTRAOBJECT_CAL_FILEDAMT_JOB'.
vari_text-variant = variant_name.
CONCATENATE 'job' 'Background' INTO vari_text-vtext SEPARATED BY space.
APPEND vari_text.
***Partner
IF ( p_partner-low IS NOT INITIAL ).
vari_contents-selname = 'PARTNER'.
vari_contents-kind = 'S'.
vari_contents-sign = 'I'.
IF ( ( p_partner-low IS NOT INITIAL ) AND ( p_partner-high IS INITIAL ) ).
vari_contents-option = 'EQ'.
vari_contents-low = p_partner-low.
ENDIF.
IF ( ( p_partner-low IS NOT INITIAL ) AND ( p_partner-high IS NOT INITIAL ) ).
vari_contents-option = 'BT'.
vari_contents-low = p_partner-low.
vari_contents-high = p_partner-high.
ENDIF.
APPEND vari_contents.
ENDIF.
***Contract Account
IF ( p_cont_acct-low IS NOT INITIAL ).
vari_contents-selname = 'CA_ACC'.
vari_contents-kind = 'S'.
vari_contents-sign = 'I'.
IF ( ( p_cont_acct-low IS NOT INITIAL ) AND ( p_cont_acct-high IS INITIAL ) ).
vari_contents-option = 'EQ'.
vari_contents-low = p_cont_acct-low.
ENDIF.
IF ( ( p_cont_acct-low IS NOT INITIAL ) AND ( p_cont_acct-high IS NOT INITIAL ) ).
vari_contents-option = 'BT'.
vari_contents-low = p_cont_acct-low.
vari_contents-high = p_cont_acct-high.
ENDIF.
APPEND vari_contents.
ENDIF.
***Contract Object
IF ( p_cont_obj-low IS NOT INITIAL ).
vari_contents-selname = 'CO_OBJ'.
vari_contents-kind = 'S'.
vari_contents-sign = 'I'.
IF ( ( p_cont_obj-low IS NOT INITIAL ) AND ( p_cont_obj-high IS INITIAL ) ).
vari_contents-option = 'EQ'.
vari_contents-low = p_cont_obj-low.
ENDIF.
IF ( ( p_cont_obj-low IS NOT INITIAL ) AND ( p_cont_obj-high IS NOT INITIAL ) ).
vari_contents-option = 'BT'.
vari_contents-low = p_cont_obj-low.
vari_contents-high = p_cont_obj-high.
ENDIF.
APPEND vari_contents.
ENDIF.
***Account Category
IF ( p_ctra_acc_category IS NOT INITIAL ).
vari_contents-selname = 'P_CAT'.
vari_contents-kind = 'P'.
vari_contents-low = p_ctra_acc_category.
APPEND vari_contents.
ENDIF.
***filed_freq_to_change_from
IF ( p_filed_freq_to_change_from IS NOT INITIAL ).
vari_contents-selname = 'P_TO_CH'.
vari_contents-kind = 'P'.
vari_contents-low = p_filed_freq_to_change_from.
APPEND vari_contents.
ENDIF.
***req_filed_freq_change
IF ( p_req_filed_freq_change IS NOT INITIAL ).
vari_contents-selname = 'P_CHANGE'.
vari_contents-kind = 'P'.
vari_contents-low = p_req_filed_freq_change.
APPEND vari_contents.
ENDIF.
***Test Run p_tstrun
vari_contents-selname = 'P_TSTRUN'.
vari_contents-kind = 'P'.
vari_contents-low = p_test_run.
APPEND vari_contents.
***Update Filing Frequency Checkbox
vari_contents-selname = 'P_FIL_FR'.
vari_contents-kind = 'P'.
vari_contents-low = p_update_filing_frequency.
APPEND vari_contents.
***Update Incoming Payment Channel Checkbox
vari_contents-selname = 'P_PAY_CH'.
vari_contents-kind = 'P'.
vari_contents-low = p_update_payment_channel.
APPEND vari_contents.
***Update Filing Channel Checkbox
vari_contents-selname = 'P_FIL_CH'.
vari_contents-kind = 'P'.
vari_contents-low = p_update_filing_channel.
APPEND vari_contents.
***Use Current Filing Period Checkbox
vari_contents-selname = 'P_CU_PER'.
vari_contents-kind = 'P'.
vari_contents-low = use_curr_per.
APPEND vari_contents.
****Create Variant thru Function Module
CALL FUNCTION 'RS_CREATE_VARIANT'
EXPORTING
curr_report = 'ZCTRAOBJECT_CAL_FILEDAMT_JOB'
curr_variant = variant_name
vari_desc = vari_desc
TABLES
vari_contents = vari_contents
vari_text = vari_text.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
****Prepare all the date for scheduling job
***Get the print parameters
DATA: params LIKE pri_params.
CLEAR params.
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
mode = 'CURRENT'
no_dialog = 'X'
IMPORTING
out_parameters = params.
params-paart = 'X_65_255'."'X_PAPER'.
***Open The scheduling job
DATA: job LIKE tbtcjob-jobname,
jobcount LIKE tbtcjob-jobcount.
CLEAR: job,jobcount.
job = 'ZCTRAOBJECT_CAL_FILEDAMT_JOB'.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = job
IMPORTING
jobcount = jobcount
EXCEPTIONS
OTHERS = 4.
***Job Submit
DATA: authcknam LIKE tbtcjob-authcknam.
CLEAR: authcknam.
authcknam = sy-uname.
params-primm = space.
CALL FUNCTION 'JOB_SUBMIT'
EXPORTING
authcknam = authcknam
jobcount = jobcount
jobname = job
priparams = params
report = 'ZCTRAOBJECT_CAL_FILEDAMT_JOB'
variant = variant_name.
***JOB_CLOSE
DATA: sdlstrttm TYPE tbtcjob-sdlstrttm,
released LIKE btch0000-char1.
sdlstrttm = p_job_start_time + 30.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
sdlstrtdt = p_job_start_date
sdlstrttm = sdlstrttm
jobcount = jobcount
jobname = job
IMPORTING
job_was_released = released.
Regs
Manas