Editability/Visibility of UI objects dependent from the user status
Are you aware that starting SAP Solution Manager 7.10, SP5 you can control some specific ChaRM UI objects dependent ?
This area has been completely reworked and additionally the ability to implement your own UI control class has been implemented.
Customers already familiar with ChaRM on CRM 5.0 SAP GUI might know dialog view ‘TSOCM_CON_ACT_V’ which did control the so called right-click actions on the context tab.
Now these functionalites have been moved on assignement blocks in the CRM Web UI. A new enhanced customizing was created because we wanted not to interfere with the old stuff of the SAP GUI for customers using the transition phase to go from the old to the new UI. And we wanted to have it enhanceable.
This is the IMG activity to do it (renamed to SP7, name in SP5 and 6 is still ‘Adjust Project Field and Scope in Change Request by Status’ as we started with these fields and the name was not updated):
What can be done there? You have a set of UI objects which are supported. See our list (updated)
The dialog view allows you to select for proxy class relevant transaction types and customize it then for the user status.
Be aware that the Incident Management area is not supported as visible in the table!
These are the entries for the standard RfC (transaction type SMCR). As you can see there is a true/false flag for ‘Editable’, ‘Visible’ and if the entry is active.
<<<< So, when you have an issue that it is not possible to have an UI object editable, a button pushable in ChaRM, etc. please first check this customizing >>>>
Further on there is a column ‘Class Name’ where you can enter your own control class which is then called dynamically for this UI object during runtime. It’s always the same method ‘CONTROL_EDIT_ABILITY’.
How to implement your own UI Control class (Optional scenario)
In case you have some requirements calling for special logic in your process to set a UI object to (not) editable/ (not) visible, it’s possible to create your own UI control class. To do that…
- Implement a class which inherits from the higher-level class CL_AIC_UI_CONTROL_BASE. If there is already a standard UI control class assigned, inherit from this class
- Reimplement the method IF_AIC_AREA_CONTROL~CONTROL_EDIT_VISIBILITY
- Code your customer-specific control in ABAP. The method provides the following interface and data:
- IV_GUID: Document GUID
- IO_BOL_HEADER: Business Object Layer (BOL) class of document, as used in WebClient UI.
- IO_COMPONENT: Class of BSP UI component
- IS_UI_CONTROL: Customizing settings structure for the user status-specific field control
- IV_FIELDNAME: ID of field from Customizing
- ES_UI_CONTROL: Structure with which Customizing is output
- Assign the Customizing entry to the class names.
Control UI Objects via Authority Objects:
Check out this thread:
Hope that helps you a bit,
going on vacation ;-),
PS: For customers which have already old transaction types copied and now want to fast maintain the customizing by copying it from a standard transaction type (like SMHF to ZMHF) you can use this code to create a Z report in SE38 (name it ZI_CRM_UPDATE_AIC_PROC_EDIT) and copy the UI control customizing fast from the source transaction type (proc) to the target transaction type (targ)
*& Report ZI_CRM_UPDATE_AIC_PROC_EDIT
parameter: proc type CRMT_PROCESS_TYPE,
targ type CRMT_PROCESS_TYPE.
DATA: lt_edit type table of aic_proc_edit,
ls_edit like line of lt_Edit.
Field-symbols: <line> like line of lt_edit.
SELECT * FROM aic_proc_edit into corresponding fields of table lt_edit
WHERE process_type = proc.
loop at lt_edit assigning <line>.
<line>-process_type = targ.
<line>-stsma+0(4) = targ.
modify aic_proc_edit from table lt_edit.