SAP CRM Transaction Flow Analyzer for SAP Solution Manager 7.1 and 7.2 ITSM and ChaRM

Requirement

In SAP Solution Manager we are using IT Service Management and Change Request Management. We are using a lot of Transaction Types (Incident, Problem, Service Order, Service Request, Knowledge Articles, Change Request, Normal Change, Urgent Change, Administrative Change, General Change, Defect Correction) which are linked to each other using the Document Flow feature.

To understand the whole end-to-end process it is needed to get an overview of all involved processes and there linkage to each other.

The assignment block „Related Transactions“ or „Transaction History“ is a flat list showing only the direct assigned Transactions which are mostly the direct predecessor or successors.

We want to have a feature to see all Transactions and their connections in one screen. In former SAP CRM based on SAP GUI there was such a feature as part of the Document Flow tab to show the Document Flow in a tree view. But the SAP Web Client UI solution don’t have such a feature yet.

Good News: This feature is available in SAP Solution Manager 7.1 (with little development) and 7.2 (maybe without development).

SAP CRM 7.0 Standard Solution

After implementing SAP note 2272867 – Transaction History Treeview format (including some manual activities to allow dynamic navigation to Transaction Analyzer application, to define icons for every used process type and to adjust UI configuration of Transaction Analyzer) there is a new button „Transaction Analyzer“ available in the Transaction History tab. If we click this button, we could navigate to the Transaction Analyzer app which is visualizing the whole Transaction Flow based on the current Transaction as tree view.

However, there exist several kind of „Transaction History“ or „Related Transactions“ assignment blocks. Currently this solution is working for view BTDOCFLOW/HdrDocFlow. resp. window BTDOCFLOW/HdrWindowOVE only.

This solution is not working for the „Related Transactions“ assignment block of ChaRM, because here UI component AIC_CM_REL_TSER/MainWindow or BTDOCFLOW/MainWindow is used instead of BTDOCFLOW/HdrWindowOVE.

For ITSM this is working fine, if BTDOCFLOW/HdrWindowOVE is used instead of SRQM_REL_TSER/MainWindow.

In SAP Solution Manager 7.1 SP 12 or higher we can find the Transaction Analyzer independently in the „Service Operations“ Work Center Page of Business Role „SOLMANPRO“. However here we have to search for a Business Transaction first before we can navigate thru the Transaction Flow of it.

SAP Solution Manager 7.2 Standard Solution

In SAP Solution Manager 7.2 there is a tree view feature integrated in the Inbox search. However, this feature is similar, but not equal to the Transaction Analyzer feature. At the moment it is not known whether the integrated Transaction Analyzer is available in SAP standard of SAP Solution Manager 7.2 ITSM and ChaRM.

SAP Solution Manager 7.1 Development Solution

We want to use solution AIC_CM_REL_TSER/MainWindow or SRQM_REL_TSER/MainWindow. But we also want to have the feature „Transaction Analyzer“ available.

This is possible with only little development:

1. Please implement SAP note 2272867 – Transaction History Treeview format (including manual activities).

2. Please enhance method DO_PREPARE_OUTPUT of class CL_AIC_CM_R_RELATEDTSERVI_IMPL and add following code snippet to the end:

*Show "Transaction Analyzer" button in toolbar.
*Code snippet was copied from CL_BTDOCFLO_HDRDOCFLOW_IMPL->DO_PREPARE_BUTTONS (BTDOCFLOW/HdrDocFlow) at 11.02.2016.

data:
ls_button like line of mt_toolbar_buttons.

CLEAR ls_button.
ls_button-text     = cl_wd_utilities=>get_otr_text_by_alias( 'CRM_UIU_BT/TRANSACTIONANALYZER' ). "#EC NOTEXT
ls_button-on_click = 'TRANSACTION_ANALYZER'.            "#EC NOTEXT
ls_button-enabled  = abap_true.
ls_button-id       = ls_button-on_click.
APPEND ls_button TO mt_toolbar_buttons.

3. Please repeat step (2) for method DO_PREPARE_OUTPUT of class CL_SRQM_REL_RELATEDTSERVI_IMPL if you need this feature for SRQM_REL_TSER/MainWindow as well. In current release you have to enhance super class CL_CRM_UIU_TVEL_WD_CONTROLLER because CL_SRQM_REL_RELATEDTSERVI_IMPL has no own method implementation.

4. Please enhance method DO_HANDLE_EVENT of class CL_SRQM_REL_RELATEDTSERVI and add following code snippet to the end:

*Call Transaction Analyzer.
*Code snippet was copied from CL_BTDOCFLO_HDRDOCFLOW_IMPL->EH_ONANALYZE (BTDOCFLOW/HdrDocFlow) at 11.02.2016.

if htmlb_event_ex->event_server_name = 'TRANSACTION_ANALYZER'.

DATA:
lv_dyn_nav_supported TYPE abap_bool,
lr_nav_serv          TYPE REF TO if_crm_ui_navigation_service,
lr_nav_descr         TYPE REF TO if_bol_bo_property_access,
* lr_controller TYPE REF TO cl_btdocflo_bspwdcomponen_impl, "deleted during copy from original
lr_col               TYPE REF TO if_bol_bo_col,
lr_entity            TYPE REF TO cl_crm_bol_entity,
lr_current           TYPE REF TO if_bol_bo_property_access,
lr_coll_wr           TYPE REF TO cl_bsp_wd_collection_wrapper.

CONSTANTS
lc_display TYPE crmt_ui_actions VALUE 'B'. "create

cl_crm_ui_descriptor_obj_srv=>create_ui_object_based(
EXPORTING iv_ui_object_type   = if_crm_uiu_object_types_const=>gc_crmdfa
iv_ui_object_action = lc_display
RECEIVING rr_result           = lr_nav_descr ).

CHECK lr_nav_descr IS NOT INITIAL.

CREATE OBJECT lr_col
TYPE
cl_crm_bol_bo_col.

lr_col->insert( iv_bo    = lr_nav_descr
iv_index = 1 ).

* check if navigation to email creation is possible
lr_nav_serv = cl_crm_ui_navigation_service=>get_instance( ).
TRY.
lv_dyn_nav_supported = lr_nav_serv->is_dynamic_nav_supported(
ir_descriptor_object = lr_nav_descr ).
CATCH cx_sy_ref_is_initial.
ENDTRY.

IF lv_dyn_nav_supported = abap_true.
* Get the current entity
* lr_controller ?= me->comp_controller. "deleted during copy from original
* lr_coll_wr = lr_controller->typed_context->parentnode->get_collection_wrapper( ). "deleted during copy from original
lr_coll_wr = me->typed_context->btadminh->get_collection_wrapper( ).               "added during copy from original
lr_entity ?= lr_coll_wr->get_current( ).
CHECK lr_entity IS BOUND.
lr_entity = lr_entity->get_parent( ).
lr_current ?= lr_entity.
CHECK lr_current IS BOUND.

CHECK lr_col IS BOUND.
lr_col->add( lr_current ).

* navigate
lr_nav_serv = cl_crm_ui_navigation_service=>get_instance( ).
lr_nav_serv->navigate_dynamically( iv_data_collection = lr_col ).
ENDIF.

endif.

Note: I prefer to implement these enhancements using the implicit enhancement technique. Of course, there is the possibility to use the SAP Web Client UI enhancement technique. But then we have to enhance the UI components and views first to be able to enhance the mentioned view controllers. The development effort will be the same. But the support effort will be higher especially for future upgrades. Still now, there is no way to upgrade SAP Web UI enhancements in a proper way. UI component repositories can be adjusted automatically, that is fine. But there is no check whether method redefinitions/enhancements needs to be checked as well and there is no way to adjust resp. merge view page content (html) during upgrade.