cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to delete yellow request for 0material

Former Member
0 Kudos

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.

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

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

RamanKorrapati
Active Contributor
0 Kudos

Hi mates,

please check thread status(closed or not) and created date before reply to thread.

Former Member
0 Kudos

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

Former Member
0 Kudos

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

Former Member
0 Kudos

Thanks for your replies.

@sunil I checked the note you suggested but its for SP9. We are already at SP14 and this note is already implemented.

Still I am not able to change the QM status.

Pls suggest..

Thanks,

Former Member
0 Kudos

Hi,

try changing the QM status to green and then delete it....

hope this helps...

Olivier.

Former Member
0 Kudos

Its not allowing to make any changes on the QM status.

Former Member
0 Kudos

Hi,

Check Whether the job is running in SM37 ? if it is so kill the job and after that delete the request..

Former Member
0 Kudos

Hi

check this OSS note:

P14:Set QM status for yellow requests using funcion module

SAP Note Number: 1048161

hope this helps...

Olivier.

Former Member
0 Kudos

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.

Former Member
0 Kudos

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.

Former Member
0 Kudos

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

Former Member
0 Kudos

OK,

I_STATUS = 'Y' is definitively not allowed...

Try first

I_STATUS = R

I_ALSO_YELLOW_REQUESTS = X

and then

I_STATUS = G

I_ALSO_YELLOW_REQUESTS = X

let us know....

Olivier.

Former Member
0 Kudos

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

Former Member
0 Kudos

Hi,

it looks like you'll have to open a ticket in the OSS for that issue since you have the latest support packaga installed.

Olivier.

Former Member
0 Kudos

hi,

You go to manage-->monitor, In header you set status to red or green, then back to manage and delete.

Former Member
0 Kudos

Hi hieu Truc Nguyen

this option has been already tried without success... (that's the whole problem..) ...

did it work for you? which release, SP are you on?

Olivier.

Former Member
0 Kudos

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.

Former Member
0 Kudos

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.

Former Member
0 Kudos

try changing it to red and delete..

Former Member
0 Kudos

We cant change the QM status for DTP requests in master data and text tables.