on 08-23-2007 9:25 AM
Hello BW experts,
I am trying to delete a yellow request from 0material attribute but the popup window says "<i>Cannot lock request DTPR_XXXXX of table 0MATERIAL for deletion"</i>
As this is yellow request I am not able to exeute the request again.
We are at latest BW 7.0 14 SP.
Kindly suggest... if someone faced this kind of issue. its urgent.
Thanks
Jagpreet.
Hi,
Go to Material (Attributes)--->Manage-----> select the yellow request-----> Click on "Load Monitor" it will take you to "Monitor: Data Transfer Process -----> select ----> Header TAB------> Click on Ovver all status Yellow symbol-------> it will give the option to made red-----> select error button and save.
It will make your req red so we can delet now.
Thanks
CM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
J S,
If you could have checked, an SM51 transaction work process which would have been allotted for the load request you wanted to delete.
Thus, by looking at below info from 'Job details' of DTP load to 0Material
1. Executing server instance.
2. Work Process # (row # )
Once found , that same Wrk Process could be stopped using cancel without core option from 'Job' menu by selecting the active work process associated to load request in SM51.
Hence, the overall status (QM status) of request turns RED and now system allows you to delete that request completely.
Hope this may be useful in future course of time.
Thanks!
Pratish
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Jaspreet,
to delete a request the perticular request should be Green(success) or Red( failure)
if the request it yellow (under processing ) system will not allow you to delete it.
you can manually change the request to red and delete...
and if not possible to change the request..
check OSS Note 963916 - P9:DTP:Master data request with warnings stays YELLOW in DTP
hope this helps
Cheers
Sunil
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Oliver,
I checked the OSS you mentioned.
After executing the funtion module RSS2_SET_QMACTION (as said in the note) following parameters need to be passed.
<b>I_DTA</b> --- I gave the data target name ie <i>0material</i> in my case
<b>I_RNR</b> --- DTP request number for which i want to change the QM status for
<b>I_STATUS</b>-- ??
<b>I_ALSO_YELLOW_REQUESTS</b>--??
Could you suggest what values shall I pass for last two parameters.
Thanks
Jagpreet.
Hi,
this import parameter has domain RS_REQSTATUS which accepts the follwing values:
G Green (request successfully updated)
Y Yellow (processing request)
R Red (request incorrect or terminated)
Not available (only with QSTATUS (set manually))
I would give a try with "R".
For the other parameter I would first try leaving it empty and if it didn't work, enter a X... Since I am not on this SP level I can't see the FM in my system....
hope this helps...
Olivier.
Hello Oliver,
I tried with following parameters :
I_DTA = 0MATERIAL
I_RNR = DTP Request
I_STATUS = R
I_ALSO_YELLOW_REQUESTS = Blank
Performing check and potential update for status control table
Exception REQUEST_NOT_FINISHED
Same was the result when i tried with I_STATUS = G
When i tried with I_STATUS = Y
status_not_allowed exception was raised.
But there was no change on QM status (in Manage tab of 0material attribute) for the yellow request in question.
The code for the function module is :
<i>function rss2_set_qmaction.
*"----
""Lokale Schnittstelle:
*" IMPORTING
*" REFERENCE(I_DTA) TYPE RSINFOPROV
*" REFERENCE(I_RNR) TYPE RSREQUID
*" REFERENCE(I_STATUS) TYPE RS_REQSTATUS
*" REFERENCE(I_ALSO_YELLOW_REQUESTS) TYPE RS_BOOL DEFAULT
*" RS_C_FALSE
*" EXCEPTIONS
*" STATUS_NOT_ALLOWED
*" DTA_NOT_EXIST
*" REQUEST_NOT_EXIST
*" REQUEST_NOT_FINISHED
*" REQUEST_ALREADY_PROCESSED
*"----
data: l_not_allowed.
data: l_type type rsatr_dta_object.
data: l_objvers type rsobjvers.
data: l_s_dta type rsd_s_dta.
data: l_s_part type rssm_s_part.
data: l_t_part type rssm_t_part.
data: l_s_icdp like rsmonicdp.
data: l_sid type rssid.
data: l_r_dtp_rnr type ref to cl_rsbk_request.
data: l_s_msg type rspc_s_msg.
data: l_s_rsmdatastate_s like rsmdatastate_s.
*----
if not ( i_status = 'R' or i_status = 'G' ).
raise status_not_allowed. <b><----
WILL BE RAISED IF I_STATUS = Y </b>
exit.
endif.
call function 'RSAWB_MAINTAIN_DTA'
exporting
i_method = rsatr_c_dta_get
i_objvers = rs_c_objvers-active
i_dta = i_dta
importing
e_type = l_type
e_objvers = l_objvers
e_s_dta = l_s_dta
e_not_allowed = l_not_allowed
exceptions
cx_rs_version_not_found = 1
transact_cube_not_switched = 2
others = 3.
if sy-subrc <> 0 or l_not_allowed = 'X' or
l_objvers <> rs_c_objvers-active.
raise dta_not_exist.
exit.
endif.
do.
call function 'ENQUEUE_ERSICCONT'
exporting
icube = i_dta
exceptions
foreign_lock = 1.
if sy-subrc = 0.
exit.
endif.
call function 'RSSM_SLEEP_DEBUG'
exporting
i_seconds = 1
i_always = 'X'.
enddo.
call function 'RSSM_ICUBE_REQUESTS_GET'
exporting
i_infocube = i_dta
i_rsmdatastate_update = 'X'
I_DATE_FROM = '00000000'
I_DATE_TO = '00000000'
i_without_texts = ' '
importing
e_t_request = l_t_part.
read table l_t_part into l_s_part with key
rnr = i_rnr.
if sy-subrc <> 0.
call function 'DEQUEUE_ERSICCONT'
exporting
mode_rsiccont = 'E'
icube = i_dta
_scope = '3'
_synchron = 'X'.
raise request_not_exist.
exit.
endif.
if ( not ( l_s_part-tstatus(3) = icon_green_light(3) or
l_s_part-tstatus(3) = icon_red_light(3) ) ) and
( i_also_yellow_requests = rs_c_false or
i_status <> 'R' or
l_s_part-rnr(1) = rssm_c_dtpprefix ).
call function 'DEQUEUE_ERSICCONT'
exporting
mode_rsiccont = 'E'
icube = i_dta
_scope = '3'
_synchron = 'X'.
raise request_not_finished.
exit.
elseif i_also_yellow_requests = rs_c_true and
l_s_part-tstatus(3) = icon_yellow_light(3).
do.
call function 'ENQUEUE_ERSREQDONE'
exporting
mode_rsreqdone = 'E'
rnr = l_s_part-rnr
_wait = 'X'
_scope = '3'
exceptions
foreign_lock = 1
system_failure = 2
others = 3.
if sy-subrc = 0.
exit.
else.
call function 'RSSM_SLEEP_DEBUG'
exporting
i_seconds = 1
i_always = 'X'.
endif.
enddo.
endif.
l_sid = l_s_part-partnr.
call function 'RSSM_RSMDATASTATE_MAINTAIN'
exporting
i_infocube = i_dta
changing
c_s_rsmdatastate = l_s_rsmdatastate_s
exceptions
error = 1
others = 2.
if l_type = rsatr_c_cube or
( l_type = rsatr_c_odso and
l_s_dta-odsotype = rsdod_c_type-write_optimized ).
if l_s_rsmdatastate_s-rollup >= l_sid or
l_sid is initial or
l_s_rsmdatastate_s-compr_dual >= l_sid or
l_s_rsmdatastate_s-valid_sid >= l_sid or
l_s_rsmdatastate_s-dmexist >= l_sid or
l_s_rsmdatastate_s-processed_one >= l_sid.
if i_also_yellow_requests = rs_c_true and
l_s_part-tstatus(3) = icon_yellow_light(3).
call function 'DEQUEUE_ERSREQDONE'
exporting
mode_rsreqdone = 'E'
rnr = l_s_part-rnr
_scope = '3'
_synchron = 'X'.
endif.
call function 'DEQUEUE_ERSICCONT'
exporting
mode_rsiccont = 'E'
icube = i_dta
_scope = '3'
_synchron = 'X'.
raise request_already_processed.
exit.
endif.
else.
if l_sid is initial or
l_s_rsmdatastate_s-valid_sid >= l_sid.
if i_also_yellow_requests = rs_c_true and
l_s_part-tstatus(3) = icon_yellow_light(3).
call function 'DEQUEUE_ERSREQDONE'
exporting
mode_rsreqdone = 'E'
rnr = l_s_part-rnr
_scope = '3'
_synchron = 'X'.
endif.
call function 'DEQUEUE_ERSICCONT'
exporting
mode_rsiccont = 'E'
icube = i_dta
_scope = '3'
_synchron = 'X'.
raise request_already_processed.
exit.
endif.
endif.
if l_s_part-odsrnrsid > 0.
if i_also_yellow_requests = rs_c_true and
l_s_part-tstatus(3) = icon_yellow_light(3).
call function 'DEQUEUE_ERSREQDONE'
exporting
mode_rsreqdone = 'E'
rnr = l_s_part-rnr
_scope = '3'
_synchron = 'X'.
endif.
call function 'DEQUEUE_ERSICCONT'
exporting
mode_rsiccont = 'E'
icube = i_dta
_scope = '3'
_synchron = 'X'.
raise request_already_processed.
exit.
endif.
if l_s_part-rnr(1) = rssm_c_dtpprefix.
try.
call method cl_rsbk_request=>create_from_db
exporting
i_requid = l_sid
receiving
r_r_request = l_r_dtp_rnr.
catch cx_rs_not_found.
call function 'DEQUEUE_ERSICCONT'
exporting
mode_rsiccont = 'E'
icube = i_dta
_scope = '3'
_synchron = 'X'.
raise request_not_exist.
exit.
endtry.
case i_status.
when 'G'.
try.
call method l_r_dtp_rnr->if_rsbk_request~set_ustate_green
exporting
i_s_msg = l_s_msg
i_no_commit = rs_c_false.
catch cx_rs_failed.
call function 'DEQUEUE_ERSICCONT'
exporting
mode_rsiccont = 'E'
icube = i_dta
_scope = '3'
_synchron = 'X'.
message x000.
catch cx_rs_foreign_lock.
call function 'DEQUEUE_ERSICCONT'
exporting
mode_rsiccont = 'E'
icube = i_dta
_scope = '3'
_synchron = 'X'.
message x000.
endtry.
when 'R'.
try.
call method l_r_dtp_rnr->if_rsbk_request~set_ustate_red
exporting
i_no_commit = rs_c_false.
catch cx_rs_failed.
call function 'DEQUEUE_ERSICCONT'
exporting
mode_rsiccont = 'E'
icube = i_dta
_scope = '3'
_synchron = 'X'.
message x000.
catch cx_rs_foreign_lock.
call function 'DEQUEUE_ERSICCONT'
exporting
mode_rsiccont = 'E'
icube = i_dta
_scope = '3'
_synchron = 'X'.
message x000.
endtry.
when others.
call function 'DEQUEUE_ERSICCONT'
exporting
mode_rsiccont = 'E'
icube = i_dta
_scope = '3'
_synchron = 'X'.
message x000.
endcase.
else.
select single * from rsmonicdp into l_s_icdp where
rnr = l_s_part-rnr and
icube = i_dta and
dp_nr = 999999.
if sy-subrc <> 0.
if i_also_yellow_requests = rs_c_true and
l_s_part-tstatus(3) = icon_yellow_light(3).
call function 'DEQUEUE_ERSREQDONE'
exporting
mode_rsreqdone = 'E'
rnr = l_s_part-rnr
_scope = '3'
_synchron = 'X'.
endif.
call function 'DEQUEUE_ERSICCONT'
exporting
mode_rsiccont = 'E'
icube = i_dta
_scope = '3'
_synchron = 'X'.
message x000.
endif.
case i_status.
when 'G'.
l_s_icdp-qmstatus = icon_green_light.
when 'R'.
l_s_icdp-qmstatus = icon_red_light.
when others.
if i_also_yellow_requests = rs_c_true and
l_s_part-tstatus(3) = icon_yellow_light(3).
call function 'DEQUEUE_ERSREQDONE'
exporting
mode_rsreqdone = 'E'
rnr = l_s_part-rnr
_scope = '3'
_synchron = 'X'.
endif.
call function 'DEQUEUE_ERSICCONT'
exporting
mode_rsiccont = 'E'
icube = i_dta
_scope = '3'
_synchron = 'X'.
message x000.
endcase.
modify rsmonicdp from l_s_icdp.
data: l_s_reqdone like rsreqdone.
if i_also_yellow_requests = rs_c_true and
l_s_part-tstatus(3) = icon_yellow_light(3) and
i_status = 'R'.
select single * from rsreqdone into l_s_reqdone where
rnr = l_s_part-rnr.
if sy-subrc = 0 and l_s_reqdone-archived is initial.
l_s_reqdone-qmstatus = l_s_icdp-qmstatus.
l_s_reqdone-qmuname = sy-uname.
call function 'RSSM_GET_TIME'
importing
e_datum_utc = l_s_reqdone-qmdatum
e_uzeit_utc = l_s_reqdone-qmuzeit.
l_s_reqdone-qmquick = 'SET BY FM RSS2_SET_QMACTION'. "#EC *
modify rsreqdone from l_s_reqdone.
endif.
endif.
endif.
call function 'DB_COMMIT'.
if i_also_yellow_requests = rs_c_true and
l_s_part-tstatus(3) = icon_yellow_light(3).
call function 'DEQUEUE_ERSREQDONE'
exporting
mode_rsreqdone = 'E'
rnr = l_s_part-rnr
_scope = '3'
_synchron = 'X'.
endif.
call function 'RSSM_ICUBE_REQUESTS_GET'
exporting
i_infocube = i_dta
i_rsmdatastate_update = 'X'
I_DATE_FROM = '00000000'
I_DATE_TO = '00000000'
i_without_texts = ' '
importing
e_t_request = l_t_part.
call function 'DEQUEUE_ERSICCONT'
exporting
mode_rsiccont = 'E'
icube = i_dta
_scope = '3'
_synchron = 'X'.
endfunction.</i>
null
No luck this time too...
I_DTA 0MATERIAL
I_RNR DTPR_46W93RORDSY84ZO9HMMZVLD0W
I_STATUS G
I_ALSO_YELLOW_REQUESTS X
Result :
Exception REQUEST_NOT_FINISHED
Message ID: RSM1 Message number: 490
Message:
Performing check and potential update for status control table
With following parameters:
I_DTA = 0MATERIAL
I_RNR = DTPR_46W93RORDSY84ZO9HMMZVLD0W
I_STATUS = G
I_ALSO_YELLOW_REQUESTS = X
Exception REQUEST_NOT_FINISHED
Message ID: RSM1 Message number: 490
Message:
Performing check and potential update for status control table
And both times no change in the QM status..
The request is still yellow.
null
Hi all,
Sorry i didnt update the thread.
I raised an OSS to SAP and the reply was as follows:
When i logged on to your system i found one Yellow request and one Greenrequest .
The steps followed for deleting Yellow Request : (Request 88 )
*************
1. RSA1 -->Info provider >0Material>Right Click .
2. One screen will come , Select the monitor icon to view that (not the one when you go with Manage of 0Material_attr).
3. In the monitor screen you will see Refresh icon , Refresh that
screen , Now the status will change , after 2 -3 refreshes you
will see the request turning to red.
4. Now go back to the manage tab of the 0Material attribute , You
can delete now.
The steps followed for deleting Green Request : (Request 84)
************
You cannot follow the same procedure for green request .
1. RSA1 -->Info provider >0Material>Right Click .
2. One screen will come , Select the monitor icon to view that .
3.In monitor screen , Select the Header tab , In that there will be
green trafic light for Overall status , Double click that green
traffic light and now trun that to red . It will turn Red.
4. Now come back to manage tab of the 0Material attribute and now you
delete the request.
*****************************************************************
Regards,
Jagpreet.
We are also on SP14 and we were having the same problem. The solution above worked for us as well.
I just want to clarify the steps:
Step 1: Either double-click your InfoObject (0Material) or right-click and select "Display".
Before step 3: (double-?)click the yellow request on the right. This opens up the monitor screen. Continue with step 3.
try changing it to red and delete..
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
90 | |
10 | |
10 | |
10 | |
7 | |
7 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.