Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

Compliant status not updating

Hi All,

I am trying to update complaint status in ORDER_SAVE BADI in CHECK_BEFORE_SAVE method. I am facing below Issue with this.

I am reading the complaint status using CRM_STATUS_READ_OW. If the status of complaint is closed I am doing some validation on custom field if the validation fails..I need to set the status of complaint back to previous one instead of complaint closed.

I am changing the status using  CRM_STATUS_MAINTAIN_OW function module.

But issue is if the previous status is approved it's changing the status back from Complaint closed to approved. If it has any other previous status Like 'Complaint assessment' or 'Open' it's not setting the status back to those values from complaint closed and getting the error message saying 'Not Allowed'.

I am not sure How can I achieve this.

Is there any configuration I have to do to allow the status back to open or Compliant Assessments to change it from Complaint closed..?

Is there any dependency with system status...?

Currently I am not passing any user_stat_proc in the FM do i have to pass this always..?

                   ls_status-ref_guid       = iv_guid.

                   ls_status-ref_kind       = lc_a.

                   ls_status-status         = ls_status_wrk-status.

*              ls_status-user_stat_proc = iv_user_stat_proc.

                   ls_status-activate       = abap_true.

                   APPEND ls_status TO lt_status.

                   ls_field_name-fieldname    = 'ACTIVATE'.  "#EC NOTEXT

                   APPEND ls_field_name TO lt_field_names.

                   CALL FUNCTION 'CRM_STATUS_MAINTAIN_OW'

                     EXPORTING

                       it_status_com        = lt_status

                     CHANGING

                       ct_input_field_names = lt_field_names

                     EXCEPTIONS

                       not_allowed          = 1

                       error_occurred       = 2

                       warning_occurred     = 3

                       OTHERS               = 4.

                   IF sy-subrc EQ 0.

                   ENDIF.

I appreciate your help on this.

Thanks,

Sanjana.

Former Member replied

Hi Sanjana

Most likely the Status Profile is configured such that the status cannot be lowered beyond "Approved" once "Closed" is reached.

I do not believe you can code around this. Instead adjust the configuration such that the values can be lowered to those that you require.

Then as per your other comment, you will need to adjust (via code) the visibility (filter) of those Status's which you do not want the users to have access to.

Hope this helps

Regards

Arden

0 View this answer in context
Not what you were looking for? View more on this topic or Ask a question