Skip to Content

The Default Integration Scenario für telephony integration is using IC-Business roles.

But there is another (mostly overlooked) option, using CEBP (communication enabled Business process)

You can configure any Business role for CMS-Integration:

  • Go to SPRO and find “Communication Management Software Integration”
  • There you find the documentation of the relevant steps in “Configure Business Roles for Communication”

I will focus on one additional function, the entity providers for CMS integration profiles.

In SPRO / Define CMS Integration Profiles you already find a predefined profile CMS_ROLE including some start up components.

These are necessary to enhance a business role with IC-type functionality.

components.JPG

One part that is missing:

If you accept an incoming call in CEBP Scenarios you don’t get any navigation to the business partner overview although the ANI works.

But this function may be added using the entity providers:

You have to create a class implementing the Interface IF_CRM_IC_FW_COMM_EVENT_NAV.

There you have to use some coding in method GET_NAVIGATION_TARGET to get the business partner from the global data context and to define navigation component and action.

  METHOD IF_CRM_IC_FW_COMM_EVENT_NAV~GET_NAVIGATION_TARGET.

    DATA:
    LV_BUSINESS_PARTNER_GUID    TYPE          CRMT_GENIL_OBJECT_GUID,
    LV_CONTACT_PERSON_GUID      TYPE          CRMT_GENIL_OBJECT_GUID,
    LR_BUSINESS_PARTNER_ENTITY  TYPE REF TO   CL_CRM_BOL_ENTITY,
    LR_GDC                      TYPE REF TO   IF_CRM_UI_DATA_CONTEXT.

* Instanz des Global Data Context holen
  LR_GDC = CL_CRM_UI_DATA_CONTEXT_SRV=>GET_INSTANCE( ).

  CHECK LR_GDC IS  BOUND.

  TRY.
* Geschäftspartner aus dem Global Data Context holen

      LR_GDC->GET_DATA_ATTRIBUTE( EXPORTING
                                    IV_NAME = IF_CRM_IC_FW_GLOBAL_DATA_CONT=>MV_CURRENT_CONTACT
                                  IMPORTING
                                    E_VALUE = LV_CONTACT_PERSON_GUID ).

      LR_GDC->GET_DATA_ATTRIBUTE( EXPORTING
                                    IV_NAME = IF_CRM_IC_FW_GLOBAL_DATA_CONT=>MV_CURRENT_CUSTOMER
                                  IMPORTING
                                    E_VALUE = LV_BUSINESS_PARTNER_GUID ).

* Wenn gefunden wird eine Entität erzeugt
      IF LV_CONTACT_PERSON_GUID IS NOT INITIAL.
        LR_BUSINESS_PARTNER_ENTITY = CL_CRM_BOL_CORE=>GET_INSTANCE( )->GET_ROOT_ENTITY(
                   IV_OBJECT_NAME = ‘BuilHeader’
                   IV_OBJECT_GUID = LV_CONTACT_PERSON_GUID
                   ).
      ELSEIF LV_BUSINESS_PARTNER_GUID IS NOT INITIAL.
        LR_BUSINESS_PARTNER_ENTITY = CL_CRM_BOL_CORE=>GET_INSTANCE( )->GET_ROOT_ENTITY(
                   IV_OBJECT_NAME = ‘BuilHeader’
                   IV_OBJECT_GUID = LV_BUSINESS_PARTNER_GUID
                   ).
      ENDIF.

    CATCH CX_ROOT.
  ENDTRY.

* Übergabe der Geschäftspartnerentität
  ER_ENTITY ?= LR_BUSINESS_PARTNER_ENTITY.

* Navigationskomponente vorbelegen
  EV_UI_OBJECT_TYPE = ‘BP_ACCOUNT’.
* Navigationsaktion vorbelegen
  IF ER_ENTITY IS NOT INITIAL.
    EV_UI_OBJECT_ACTION = ‘B’. “Anzeigen wenn Entität vorhanden
  ENDIF.

ENDMETHOD.

Now all you have to do is to use this class in your customizing for the UI Navigation mapping in your CMS integration profile.

navigation.JPG

Now if you accept a call in your CEBP Scenario and ANI gets a result the WEBUI tries to display the calling business partner.

There are some more use cases, e.g. create a one order object,…
Just check out note 1225565 – Entity Provider Class für CEBP

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply