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

not able to get data while executing in background for mb52

Former Member
0 Likes
1,385

Dear all,

my requirement is i want to schedule the zreport for every 1 hour.but proble is when iam executing in fore ground iam able to get data.but when iam going to scheduling this iam not able to get data.

my code is

type-pools:slis.

data zbudat type RANGE OF budat.

data wab like line of zbudat.

data zmatkl type RANGE OF MATKL.

data waz like line of zMATKL.

data zwerks type RANGE OF werks.

data wax like line of zwerks.

waz-sign = 'I'.

waz-low = 'CRUDE'.

waz-option = 'EQ'.

append waz to zmatkl.

clear waz.

waz-sign = 'I'.

waz-low = 'SGO'.

waz-option = 'EQ'.

append waz to zmatkl.

clear waz.

*waz-sign = 'I'.

*waz-low = 'FINES'.

*waz-option = 'EQ'.

*append waz to zmatkl.

*clear waz.

*waz-sign = 'I'.

*waz-low = 'LUMPS'.

*waz-option = 'EQ'.

*append waz to zmatkl.

*clear waz.

*

*waz-sign = 'I'.

*waz-low = 'UFO'.

*waz-option = 'EQ'.

*append waz to zmatkl.

wax-sign = 'I'.

wax-low = 'BIMI'.

wax-option = 'EQ'.

append wax to zwerks.

clear wax.

wax-sign = 'I'.

wax-low = 'BIPL'.

wax-option = 'EQ'.

append wax to zwerks.

*waz-sign = 'I'.

waz-low = 'C'.

*waz-option = 'CP'.

*append waz to zmatnr.

*clear waz.

*

*waz-sign = 'I'.

waz-low = 'S'.

*waz-option = 'CP'.

*append waz to zmatnr.

*clear waz.

*

*waz-sign = 'I'.

waz-low = 'UC'.

*waz-option = 'CP'.

*append waz to zmatnr.

*

*waz-sign = 'I'.

waz-low = 'F'.

*waz-option = 'CP'.

*append waz to zmatnr.

*clear waz.

*

*waz-sign = 'I'.

waz-low = 'L'.

*waz-option = 'CP'.

*append waz to zmatnr.

types:begin of w_tab,

bwkey type werks_d,

matnr type matnr,

lgort type LGORT_D,

budat type budat,

labst type labst,

      • endmenge type p decimals 3,

end of w_tab.

DATA : IT_TAB TYPE STANDARD TABLE OF W_TAB WITH HEADER LINE .

FIELD-SYMBOLS: <gt_fieldcat> TYPE slis_fieldcat_alv,

<gt_report_list> TYPE w_tab .

field-symbols <lt_pay_data> type any table.

*FIELD-SYMBOLS : <LT_DATA> LIKE LINE OF IT_TAB .

FIELD-SYMBOLS : <LT_DATA> type any . " i have chaged it

data lr_pay_data type ref to data.

cl_salv_bs_runtime_info=>set( exporting display = abap_false

metadata = abap_false

data = abap_true ).

****SUBMIT ZQM_GR_BARGE_LOADING WITH S_date in zbudat with s_werks in zwerks with p_pend = ' ' AND RETURN .

submit RM07MLBS with MATKLA in zmatkl with werks in zwerks

"with XVBST = 'X'

using selection-SCREEN '1000' and return.

try.

cl_salv_bs_runtime_info=>get_data_ref( importing r_data = lr_pay_data ).

assign lr_pay_data->* to <lt_pay_data>.

catch cx_salv_bs_sc_runtime_info.

message `Unable to retrieve ALV data` type 'E'.

endtry.

cl_salv_bs_runtime_info=>clear_all( ).

data: obj_s type ref to ZKMINCO_MINESTOCKFROM_SAP_OUT.

create OBJECT obj_s.

*

data : output TYPE ZKMINMINESTOCKFROM_SAP1 ,

record type ZKMINMINESTOCKFROM_SAP_REC_TAB ,

wa_record like line of record.

LOOP AT <lt_pay_data> ASSIGNING <LT_DATA>.

MOVE-CORRESPONDING <LT_DATA> TO IT_TAB .

APPEND IT_TAB .

wa_record-STOCK_AS_ON_DATE = sy-datum .

wa_record-STOCK_AS_ON_TIME = sy-uzeit .

wa_record-PLANT_ID = it_tab-bwkey.

wa_record-STORAGE_LOC_ID = it_tab-lgort .

wa_record-MATERIAL = it_tab-matnr .

wa_record-STOCK_QTY = it_tab-labst.

append wa_record to record.

clear wa_record.

endloop.

output-MINESTOCKFROM_SAP-record = record .

CALL METHOD obj_s->MINESTOCKFROM_SAP_OUT

EXPORTING

output = output .

commit work.

Thanks in advance.

Dear all,

my requirement is i want to schedule the zreport for every 1 hour.but proble is when iam executing in fore ground iam able to get data.but when iam going to scheduling this iam not able to get data.

my code is

type-pools:slis.

data zbudat type RANGE OF budat.

data wab like line of zbudat.

data zmatkl type RANGE OF MATKL.

data waz like line of zMATKL.

data zwerks type RANGE OF werks.

data wax like line of zwerks.

waz-sign = 'I'.

waz-low = 'CRUDE'.

waz-option = 'EQ'.

append waz to zmatkl.

clear waz.

waz-sign = 'I'.

waz-low = 'SGO'.

waz-option = 'EQ'.

append waz to zmatkl.

clear waz.

*waz-sign = 'I'.

*waz-low = 'FINES'.

*waz-option = 'EQ'.

*append waz to zmatkl.

*clear waz.

*waz-sign = 'I'.

*waz-low = 'LUMPS'.

*waz-option = 'EQ'.

*append waz to zmatkl.

*clear waz.

*

*waz-sign = 'I'.

*waz-low = 'UFO'.

*waz-option = 'EQ'.

*append waz to zmatkl.

wax-sign = 'I'.

wax-low = 'BIMI'.

wax-option = 'EQ'.

append wax to zwerks.

clear wax.

wax-sign = 'I'.

wax-low = 'BIPL'.

wax-option = 'EQ'.

append wax to zwerks.

*waz-sign = 'I'.

waz-low = 'C'.

*waz-option = 'CP'.

*append waz to zmatnr.

*clear waz.

*

*waz-sign = 'I'.

waz-low = 'S'.

*waz-option = 'CP'.

*append waz to zmatnr.

*clear waz.

*

*waz-sign = 'I'.

waz-low = 'UC'.

*waz-option = 'CP'.

*append waz to zmatnr.

*

*waz-sign = 'I'.

waz-low = 'F'.

*waz-option = 'CP'.

*append waz to zmatnr.

*clear waz.

*

*waz-sign = 'I'.

waz-low = 'L'.

*waz-option = 'CP'.

*append waz to zmatnr.

types:begin of w_tab,

bwkey type werks_d,

matnr type matnr,

lgort type LGORT_D,

budat type budat,

labst type labst,

      • endmenge type p decimals 3,

end of w_tab.

DATA : IT_TAB TYPE STANDARD TABLE OF W_TAB WITH HEADER LINE .

FIELD-SYMBOLS: <gt_fieldcat> TYPE slis_fieldcat_alv,

<gt_report_list> TYPE w_tab .

field-symbols <lt_pay_data> type any table.

*FIELD-SYMBOLS : <LT_DATA> LIKE LINE OF IT_TAB .

FIELD-SYMBOLS : <LT_DATA> type any . " i have chaged it

data lr_pay_data type ref to data.

cl_salv_bs_runtime_info=>set( exporting display = abap_false

metadata = abap_false

data = abap_true ).

****SUBMIT ZQM_GR_BARGE_LOADING WITH S_date in zbudat with s_werks in zwerks with p_pend = ' ' AND RETURN .

submit RM07MLBS with MATKLA in zmatkl with werks in zwerks

"with XVBST = 'X'

using selection-SCREEN '1000' and return.

try.

cl_salv_bs_runtime_info=>get_data_ref( importing r_data = lr_pay_data ).

assign lr_pay_data->* to <lt_pay_data>.

catch cx_salv_bs_sc_runtime_info.

message `Unable to retrieve ALV data` type 'E'.

endtry.

cl_salv_bs_runtime_info=>clear_all( ).

data: obj_s type ref to ZKMINCO_MINESTOCKFROM_SAP_OUT.

create OBJECT obj_s.

*

data : output TYPE ZKMINMINESTOCKFROM_SAP1 ,

record type ZKMINMINESTOCKFROM_SAP_REC_TAB ,

wa_record like line of record.

LOOP AT <lt_pay_data> ASSIGNING <LT_DATA>.

MOVE-CORRESPONDING <LT_DATA> TO IT_TAB .

APPEND IT_TAB .

wa_record-STOCK_AS_ON_DATE = sy-datum .

wa_record-STOCK_AS_ON_TIME = sy-uzeit .

wa_record-PLANT_ID = it_tab-bwkey.

wa_record-STORAGE_LOC_ID = it_tab-lgort .

wa_record-MATERIAL = it_tab-matnr .

wa_record-STOCK_QTY = it_tab-labst.

append wa_record to record.

clear wa_record.

endloop.

output-MINESTOCKFROM_SAP-record = record .

CALL METHOD obj_s->MINESTOCKFROM_SAP_OUT

EXPORTING

output = output .

commit work.

Thanks in advance.

3 REPLIES 3
Read only

Former Member
0 Likes
900

Hi,

I assume that in your case you have two program lets say ZFOREGROUND and ZBACKGROUND (Called inside zforeground using submit statement)

zforeground has :

1. a input field to browse excel sheet or some file at the selection screen, and

2. button 'post all' to determine the background processing.

Now your requirement is such that you want zbackground to get scheduled as background job when post all button is clicked.

So, within the event AT USER-Command, check the sy-ucomm as that of post all button, if so write the following code to schedule the job:

DATA: jobname LIKE tbtcjob-jobname.

DATA :jobcount LIKE tbtcjob-jobcount,

host LIKE msxxlist-host.

DATA: BEGIN OF starttime.

INCLUDE STRUCTURE tbtcstrt.

DATA: END OF starttime.

DATA: starttimeimmediate LIKE btch0000-char1.

DATA: gv_job_dt TYPE sy-datum,

gv_job_tm TYPE sy-uzeit.

jobname = 'EXCLUSION_LISTING'.

gv_job_dt = sy-datum.

gv_job_tm = sy-uzeit.

  • Job open

CALL FUNCTION 'JOB_OPEN'

EXPORTING

delanfrep = ' '

jobgroup = ' '

jobname = jobname

sdlstrtdt = sy-datum

sdlstrttm = sy-uzeit

IMPORTING

jobcount = jobcount

EXCEPTIONS

cant_create_job = 01

invalid_job_data = 02

jobname_missing = 03.

IF sy-subrc NE 0.

"error processing

ENDIF.

  • Insert process into job

SUBMIT ZBACKGROUND AND RETURN

WITH p_file1 = gv_file_cust_exc "<----


Parameters which you want to pass to report zbackground from the report

WITH p_file2 = gv_file_win_deal "------zforeground

USER sy-uname

VIA JOB jobname

NUMBER jobcount.

IF sy-subrc ne 0.

"error processing

ENDIF.

  • Close job

starttime-sdlstrtdt = gv_job_dt.

starttime-sdlstrttm = gv_job_tm.

CALL FUNCTION 'JOB_CLOSE'

EXPORTING

event_id = starttime-eventid

event_param = starttime-eventparm

event_periodic = starttime-periodic

jobcount = jobcount

jobname = jobname

laststrtdt = starttime-laststrtdt

laststrttm = starttime-laststrttm

prddays = 1

prdhours = 0

prdmins = 0

prdmonths = 0

prdweeks = 0

sdlstrtdt = starttime-sdlstrtdt

sdlstrttm = starttime-sdlstrttm

strtimmed = starttimeimmediate

targetsystem = host

EXCEPTIONS

cant_start_immediate = 01

invalid_startdate = 02

jobname_missing = 03

job_close_failed = 04

job_nosteps = 05

job_notex = 06

lock_failed = 07

OTHERS = 99.

IF sy-subrc EQ 0.

WRITE:/1 'JOB' COLOR 3,

jobname COLOR COL_GROUP,

'Scheduled in Background' COLOR 3. "error processing

gv_time = starttime-sdlstrttm.

gv_date = starttime-sdlstrtdt.

ENDIF.

Above code will schedule the report zbackground in background.

Note:

the program schduled in background will not be able to access any data present on your presentation server. data should be provided either by the program schhedulling it in foreground or it has to be thr in application server.

Regards,

Ravi

Read only

0 Likes
900

I have added this code to my existing program.

DATA : jobcount TYPE tbtcjob-jobcount .

DATA : no_date TYPE datum.

DATA : no_time TYPE uzeit.

no_time = sy-uzeit.

no_date = sy-datum.

    • no_time = no_time + 30000.

CALL FUNCTION 'JOB_OPEN'

EXPORTING

  • DELANFREP = ' '

  • JOBGROUP = ' '

jobname = 'ZKPI_PLNT'

sdlstrtdt = no_date

sdlstrttm = no_time

  • JOBCLASS =

IMPORTING

jobcount = jobcount.

IF sy-subrc <> 0.

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

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

ENDIF.

SUBMIT RM07MLBS AND RETURN with matnr in zmatnr with werks = 'BIPL' via job 'ZKPI_PLNT' number jobcount .

CALL FUNCTION 'JOB_CLOSE'

EXPORTING

jobcount = jobcount

jobname = 'ZKPI_PLNT'

strtimmed = 'X'

.

IF sy-subrc <> 0.

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

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

ENDIF.

even though when iam executing in background no data is coming .

what i need to change in my code.my report which iam calling mb52 is not having any selection screen.

Edited by: raj shiv on Dec 15, 2011 8:02 AM

Read only

0 Likes
900

This message was moderated.