cancel
Showing results for 
Search instead for 
Did you mean: 

Acquire Custom fields via CTI Adapter

luis_montalti
Explorer
0 Kudos

Hello Community,

In our project we have a Customer Service Management scenario, with the integration between a third party/legacy CTI environment and a Cloud for Customer solution. In this CTI->C4C integration we may need to pass to C4C a subset of custom information available in the CTI.

Via the CTI Client Adapter simulation tool, we noticed that the inbound call can pass a set of Custom fields as URL parameters. We show a picture of those fields in the simulation tool here below, and how those fields propagate in the Live Activity Pane:

Is it possible in any way to reuse those information in C4C?

To solve the problem, I did all this, but I do not run the web service to capture the data of each incoming call that I have. I want to know if it is possible to do it this way or if there is any other way to capture the data of an incoming call live

Use a SOAP WebService Communication Arrangement, which could easily store information in the C4C Database, even if the Business Objects belong to a different Deployment Unit. The Solution can be composed in the following steps: 1. Build a Business Object for the C4C Database with the following Structure: import AP.Common.GDT as apCommonGDT; businessobject CTI_CustomFields_BO { [AlternativeKey] element ActivityUUID:UUID; element ActivityID:BusinessTransactionDocumentID; element ANI:LANGUAGEINDEPENDENT_EXTENDED_Text; element DNIS:LANGUAGEINDEPENDENT_EXTENDED_Text; element CustomField1:LANGUAGEINDEPENDENT_EXTENDED_Text; element CustomField2:LANGUAGEINDEPENDENT_EXTENDED_Text; element CustomField3:LANGUAGEINDEPENDENT_EXTENDED_Text; element CustomField4:LANGUAGEINDEPENDENT_EXTENDED_Text; element CustomField5:LANGUAGEINDEPENDENT_EXTENDED_Text; element CustomField6:LANGUAGEINDEPENDENT_EXTENDED_Text; } 2. Generate a full UI Screen Thing-Type scenario for the BO, with in particular theWorkCenter Floorplan and the WorkCenterView:

3. Generate a SOAP WebService on the Business Object. The WS should have just the Create operation:

And should be attached to your custom WorkCenter View for authorization reasons:

4. Generate an External WebService Integration component on the created WS:

5. Create a Communication Scenario which collects both the WS and its Proxy:

6. On the Administration WorkCenter in C4C, create a Communication System for the local C4C: 7. Create then a Communication Arrangement that could connect the Proxy and the WS together:

8. Implement the Enhancement Point on the C4C CTI Call Wrapper (technical name: CTICallWrap-upActions):

9. Open the script file HANDLE_INCOMING_CALL.absl, and insert the code for acquiring the CTI Customer fields and push them to the WebService: import AP.Common.GDT; var result: LANGUAGEINDEPENDENT_MEDIUM_Description; var wsRequest : CTI_CustomFieldsExtWS.Create.Request; var bpID = InputData.BusinessPartnerID; wsRequest.CTI_CustomFields_BOCreateRequest_sync.CTI_CustomFields_BO.ActivityUUID.content = InputData.PhoneActivityUUID.content.ToString(); wsRequest.CTI_CustomFields_BOCreateRequest_sync.CTI_CustomFields_BO.DNIS= InputData.DNIS; wsRequest.CTI_CustomFields_BOCreateRequest_sync.CTI_CustomFields_BO.ANI= InputData.ANI; wsRequest.CTI_CustomFields_BOCreateRequest_sync.CTI_CustomFields_BO.CustomField1= InputData.CustomField1; wsRequest.CTI_CustomFields_BOCreateRequest_sync.CTI_CustomFields_BO.CustomField2= InputData.CustomField2; wsRequest.CTI_CustomFields_BOCreateRequest_sync.CTI_CustomFields_BO.CustomField3= InputData.CustomField3; wsRequest.CTI_CustomFields_BOCreateRequest_sync.CTI_CustomFields_BO.CustomField4= InputData.CustomField4; wsRequest.CTI_CustomFields_BOCreateRequest_sync.CTI_CustomFields_BO.CustomField5= InputData.CustomField5; wsRequest.CTI_CustomFields_BOCreateRequest_sync.CTI_CustomFields_BO.CustomField6= InputData.CustomField6; var wsResponse = CTI_CustomFieldsExtWS.Create(wsRequest, bpID, "CTI_CommScenario"); return result;
10. The SAP Cloud for Customer CTI Client Adapter (available in the Download functionality) will allow you to simulate an incoming call, with all the Customer extension fields defined in your Business Process scenario:

But, when running the CTI Client Adapter, it does not run the webservice. Does not execute the Enhancement Point code created

To solve the problem, I did all this, but I do not run the web service to capture the data of each incoming call that I have. I want to know if it is possible to do it this way or if there is any other way to capture the data of an incoming call live


Thanks & Regards

Lucho

0 Kudos

Dear Lucho,

I have the similar business process which assigning externalID to a custom field on the call activity created. But this enhancement point is not triggered, do you remember how did you solve this issue?

Thank you.

Accepted Solutions (0)

Answers (1)

Answers (1)

VenkateshG
Explorer
0 Kudos

Hi Lucho Montalti,

You could use a Data Mashup & REST Mashup webservice to do the above requirement as an alternative.

REST Mashup webservice would call the webservice exposed by CTI system and populate it in data mashup/html mashup.

Only difference could be that this option may not persist the data at ByD which may not be necessarey always.

Regards

Venkatesh

www.linkedin.com/in/venkatesh-govindan-80815218

luis_montalti
Explorer
0 Kudos

Hi, Venkatesh Govindan

I am going to try.

I just want to take the ANI and DENIS data, save it and then read it.

Thank you..

Lucho