Telephony integration: using entity providers in CEBP scenario for bp display
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.
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.
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