2007 May 02 4:54 AM
Hi,
I have written a program using submit statement.I create a selction table and submit transaction CK60, preselction of material, using it.Problem is that the program works fine in the debug mode but gives an error ( variable g_error is set in the program) when I run it in real time.The code is as follows. Can someone point out why that is happening.Thanks
Get the values of the materials entered by the user.
SELECT matnr
INTO TABLE lt_matnr
FROM mara WHERE matnr IN s_matnr.
Create selection table to be used for submitting the program
CLEAR ls_rspar.
REFRESH lt_rspar.
LOOP AT lt_matnr INTO ls_matnr.
ls_rspar-selname = 'CK_MATNR'.
ls_rspar-kind = 'S'.
ls_rspar-sign = 'I'.
ls_rspar-option = 'BT'.
ls_rspar-low = ls_matnr-matnr.
APPEND ls_rspar TO lt_rspar.
ENDLOOP.
CLEAR ls_rspar.
ls_rspar-selname = 'CK_MTART'.
ls_rspar-kind = 'S'.
ls_rspar-sign = 'I'.
ls_rspar-option = 'BT'.
ls_rspar-low = s_mtart-low.
ls_rspar-high = s_mtart-high.
APPEND ls_rspar TO lt_rspar.
CLEAR gs_werks.
LOOP AT gt_werks INTO gs_werks.
CLEAR ls_rspar.
ls_rspar-selname = 'CK_WERKS'.
ls_rspar-kind = 'S'.
ls_rspar-sign = 'I'.
ls_rspar-option = 'BT'.
ls_rspar-low = gs_werks-werks.
APPEND ls_rspar TO lt_rspar.
ENDLOOP.
CLEAR ls_rspar.
ls_rspar-selname = 'KALAID'.
ls_rspar-kind = 'P'.
ls_rspar-sign = 'I'.
ls_rspar-option = 'EQ'.
ls_rspar-low = g_kalaid.
APPEND ls_rspar TO lt_rspar.
CLEAR ls_rspar.
ls_rspar-selname = 'KALADAT'.
ls_rspar-kind = 'P'.
ls_rspar-sign = 'I'.
ls_rspar-option = 'EQ'.
ls_rspar-low = g_current_date.
APPEND ls_rspar TO lt_rspar.
CLEAR ls_rspar.
ls_rspar-selname = 'BACKGR'.
ls_rspar-kind = 'P'.
ls_rspar-sign = 'I'.
ls_rspar-option = 'EQ'.
ls_rspar-low = 'X'.
APPEND ls_rspar TO lt_rspar.
CLEAR ls_rspar.
ls_rspar-selname = 'PROTDR'.
ls_rspar-kind = 'S'.
ls_rspar-sign = 'I'.
ls_rspar-option = 'EQ'.
ls_rspar-low = 'X'.
APPEND ls_rspar TO lt_rspar.
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.
Submit program for Preselection of material(CK62) with
selection table
SUBMIT saprck60 WITH SELECTION-TABLE lt_rspar
VIA JOB g_kalaid NUMBER l_job_count
AND RETURN.
IF sy-subrc = 0.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = l_job_count
jobname = l_job_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.
IF sy-subrc <> 0.
Do Nothing
ENDIF.
ELSE.
g_error = 'X'.
ENDIF.
CLEAR ls_costing_status.
REFRESH lt_costing_status.
Check the costing status for the costing run
SELECT SINGLE feh_stat
INTO l_feh_status
FROM kalf
WHERE kalaid EQ g_kalaid
AND kaladat EQ sy-datum
AND feh_stat EQ 'SE'.
IF sy-subrc NE 0.
g_error = 'X'
ENDIF. "sy-subrc check
ENDIF.
Hi,
I have written a program using submit statement.I create a selction table and submit transaction CK60, preselction of material, using it.Problem is that the program works fine in the debug mode but gives an error ( variable g_error is set in the program) when I run it in real time.The code is as follows. Can someone point out why that is happening.Thanks
Get the values of the materials entered by the user.
SELECT matnr
INTO TABLE lt_matnr
FROM mara WHERE matnr IN s_matnr.
Create selection table to be used for submitting the program
CLEAR ls_rspar.
REFRESH lt_rspar.
LOOP AT lt_matnr INTO ls_matnr.
ls_rspar-selname = 'CK_MATNR'.
ls_rspar-kind = 'S'.
ls_rspar-sign = 'I'.
ls_rspar-option = 'BT'.
ls_rspar-low = ls_matnr-matnr.
APPEND ls_rspar TO lt_rspar.
ENDLOOP.
CLEAR ls_rspar.
ls_rspar-selname = 'CK_MTART'.
ls_rspar-kind = 'S'.
ls_rspar-sign = 'I'.
ls_rspar-option = 'BT'.
ls_rspar-low = s_mtart-low.
ls_rspar-high = s_mtart-high.
APPEND ls_rspar TO lt_rspar.
CLEAR gs_werks.
LOOP AT gt_werks INTO gs_werks.
CLEAR ls_rspar.
ls_rspar-selname = 'CK_WERKS'.
ls_rspar-kind = 'S'.
ls_rspar-sign = 'I'.
ls_rspar-option = 'BT'.
ls_rspar-low = gs_werks-werks.
APPEND ls_rspar TO lt_rspar.
ENDLOOP.
CLEAR ls_rspar.
ls_rspar-selname = 'KALAID'.
ls_rspar-kind = 'P'.
ls_rspar-sign = 'I'.
ls_rspar-option = 'EQ'.
ls_rspar-low = g_kalaid.
APPEND ls_rspar TO lt_rspar.
CLEAR ls_rspar.
ls_rspar-selname = 'KALADAT'.
ls_rspar-kind = 'P'.
ls_rspar-sign = 'I'.
ls_rspar-option = 'EQ'.
ls_rspar-low = g_current_date.
APPEND ls_rspar TO lt_rspar.
CLEAR ls_rspar.
ls_rspar-selname = 'BACKGR'.
ls_rspar-kind = 'P'.
ls_rspar-sign = 'I'.
ls_rspar-option = 'EQ'.
ls_rspar-low = 'X'.
APPEND ls_rspar TO lt_rspar.
CLEAR ls_rspar.
ls_rspar-selname = 'PROTDR'.
ls_rspar-kind = 'S'.
ls_rspar-sign = 'I'.
ls_rspar-option = 'EQ'.
ls_rspar-low = 'X'.
APPEND ls_rspar TO lt_rspar.
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.
Submit program for Preselection of material(CK62) with
selection table
SUBMIT saprck60 WITH SELECTION-TABLE lt_rspar
VIA JOB g_kalaid NUMBER l_job_count
AND RETURN.
IF sy-subrc = 0.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = l_job_count
jobname = l_job_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.
IF sy-subrc <> 0.
Do Nothing
ENDIF.
ELSE.
g_error = 'X'.
ENDIF.
CLEAR ls_costing_status.
REFRESH lt_costing_status.
Check the costing status for the costing run
SELECT SINGLE feh_stat
INTO l_feh_status
FROM kalf
WHERE kalaid EQ g_kalaid
AND kaladat EQ sy-datum
AND feh_stat EQ 'SE'.
IF sy-subrc NE 0.
g_error = 'X'
ENDIF. "sy-subrc check
ENDIF.
2007 May 02 5:15 AM
Hi,
In your did you declare the variable g_error?
You are passing 'X' when sy-subrc ne 0.But after that o where are you using g_error .No codin pasted related to this.
Check it once.
2007 May 02 5:36 AM
Hi Muralikrishna,
Yes I have declared g_error in top inlcude. This code is written inside a subroutine and I am just checking the value of the global variable g_error outside the subroutine, after the perform statement and giving an error message if g_error is set.
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |