Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
mich_vollmer
Contributor

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.

Okt 2012:

Newest addition:

Control UI Objects via Authority Objects:

Check out this thread:

http://scn.sap.com/community/it-management/alm/solution-manager/blog/2012/10/02/charm-functionality-...

Hope that helps you a bit,

going on vacation ;-),

Michael

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
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
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.

    endloop.



modify aic_proc_edit from table lt_edit.

20 Comments