Technical Articles
Hide unused statuses in SAP ChaRM status overview (Roadmap)
Summary
In this blog you will learn how to hide statuses from the graphical status overview section (roadmap) of your ChaRM transaction in case they are unused/undesired for some reason.
The requirement from a process point of view
If you are working with SAP ChaRM on the SAP Solution Manager, usually the current status of a change transaction (change request or change document) is shown graphically in the status overview section.
If you have undesired user statuses that you don’t want to use in your process, it is not advisable to delete them in the status schema of your Z-transaction type as it might lead to inconsistencies. Deleting them would also reduce your capability to update your z-transaction types after upgrading to a new support package.
So, for the sake of consistency and release-robustness, it would be better to just jump over those statuses by adapting the actions in the action profile (not covered in this blog) so that from a process point of view these statuses can never be reached.
But what about the status overview section (roadmap/bread crumbs view) in your ChaRM solution?
Since those statuses aren’t technically deleted and even though they cannot be reached by any action anymore they will still show up.
But what if you and more importantly your users really don’t want to see them?
Status overview with undesired statuses
The solution
So how do we go about the get rid of those statuses in the graphical status overview?
Luckily SAP has prepared us for that by providing the BAdI AI_CRM_CM_UI_ROADMAP.
There is also the note 2720397 describing the basic possibility to achieve our goal, but it doesn’t contain any sample code.
Let me give you a detailed step-by-step guide on how to create the BAdI implementation and what to pay attention to.
For this example let’s pretend we are using transaction type ZMMJ and we want to make the two statuses “Testing for preliminary import” (E0012) and “Tested for production import” (E0013) disappear.
Create a new BAdI implementation
Transaction SE19 (BAdI Builder)
Naming the enhancement implementation
Naming the implementation and class
Object catalog entry and package
Transport request prompt
Navigation to implementing class
Navigation to method
Popup for implementation creation
Class builder code editor
Enter the code
method IF_AI_CRM_CM_UI_ROADMAP~MODIFY_ROADMAP.
"Hide steps "Testing for Preliminary Import" and "Tested for Production Import"
try.
data(ls_order) = order->get_header( ).
catch cx_ai_crm_cm_com_generic. "
catch cx_ai_crm_cm_com_no_authority. "
endtry.
if ls_order-process_type eq 'ZMMJ'.
delete roadmap
where state ne cl_thtmlb_roadmapitem=>gc_state_active
and txt04 eq 'TIMP'.
delete roadmap
where state ne cl_thtmlb_roadmapitem=>gc_state_active
and txt04 eq 'GETP'.
endif.
endmethod.
Code with highlighted important parts
Status schema of transaction type ZMMJ
Syntax check function in ABAP editor
Activation of newly created ABAP objects
Activation of enhancement implementation
Result
Graphical status overview with hidden statuses
So we have learned how to hide unused statuses from the graphical overview section.
In combination with adapting the action profiles and the actions therein, you will be able to effectively exclude certain user statuses from the process without actually having to delete them.
HINT: when streamlining ChaRM-flows please make sure to check transaction: CM_ADM_PROC_VIS . It is a very useful tool to get a quick overview of how everything interconnects.
CM_ADM_PROC_VIS
That is indeed a very useful tool. Thanks for the hint.
Thanks for this blog. Very useful!
Thanks for sharing, Richard!
Thanks for this blog.
Will this also take care about the next status, if we use CRM_SOCM_UTILITY_REPORT to change the status ?
Thanks.
Since this is more of cosmetical nature I'm afraid it wont help with the report.
You could however try to change the status sequence number in the status schema so that the undesired statuses are at the end.
Thank you Richard Büffing and congratulations for this very detailed blog post.