通过CTI适配器获取自定义字段

2020-08-23 05:21发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好社区,

在我们的项目中,我们有一个客户服务管理方案,其中包含第三方/传统CTI环境与Cloud for Customer解决方案之间的集成。 在这种CTI-> C4C集成中,我们可能需要将CTI中可用的自定义信息的子集传递给C4C。

通过CTI客户端适配器模拟工具,我们注意到入站调用可以传递一组"自定义"字段作为URL参数。 我们在下面的模拟工具中显示了这些字段的图片,以及这些字段如何在实时活动窗格中传播:

不幸的是,如果我在SDK UI组件中为"实时活动"窗格检查了这些字段(文件: CTI_Shelf_QAF.QA ),它们似乎不受活动BO模型的约束:

此外,我们注意到Outport OpenSearchScreen是唯一可以使用该字段列表的字段,但是此输出不能重复用于将嵌入式组件绑定到UI窗格:

是否可以通过任何方式在C4C中重用这些信息?

非常感谢您的协作。

祝一切顺利

Davide

(36.7 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好社区,

在我们的项目中,我们有一个客户服务管理方案,其中包含第三方/传统CTI环境与Cloud for Customer解决方案之间的集成。 在这种CTI-> C4C集成中,我们可能需要将CTI中可用的自定义信息的子集传递给C4C。

通过CTI客户端适配器模拟工具,我们注意到入站调用可以传递一组"自定义"字段作为URL参数。 我们在下面的模拟工具中显示了这些字段的图片,以及这些字段如何在实时活动窗格中传播:

不幸的是,如果我在SDK UI组件中为"实时活动"窗格检查了这些字段(文件: CTI_Shelf_QAF.QA ),它们似乎不受活动BO模型的约束:

此外,我们注意到Outport OpenSearchScreen是唯一可以使用该字段列表的字段,但是此输出不能重复用于将嵌入式组件绑定到UI窗格:

是否可以通过任何方式在C4C中重用这些信息?

非常感谢您的协作。

祝一切顺利

Davide

(36.7 kB)
付费偷看设置
发送
7条回答
亦是此间程序员
1楼 · 2020-08-23 06:07.采纳回答

你好

感谢 @Santosh Nagaraja ,我们找到了针对此要求的解决方案。 建议的方法是定义一个PDI增强退出功能,这可以帮助我们处理客户扩展字段。


不幸的是,即使这些字段现在在ABSL代码中可用,但您将在脚本作用域中导入或访问的任何对象都是只读的。 这意味着该信息显然无法保存在C4C数据库中的任何位置。

我们为解决此变通办法而开发的解决方案是使用SOAP WebService通信协议,即使业务对象属于不同的部署单元,该协议也可以轻松地将信息存储在C4C数据库中。

解决方案可以按照以下步骤组成:

  1. 使用以下结构为C4C数据库构建业务对象:

    将AP.Common.GDT导入为apCommonGDT;

    businessobject CTI_CustomFields_BO {

    [AlternativeKey] elementActivityUUID:UUID;

    元素ActivityID:BusinessTransactionDocumentID;

    元素ANI:LANGUAGEINDEPENDENT_EXTENDED_Text;

    元素DNIS:LANGUAGEINDEPENDENT_EXTENDED_Text;

    elementCustomField1:LANGUAGEINDEPENDENT_EXTENDED_Text;

    elementCustomField2:LANGUAGEINDEPENDENT_EXTENDED_Text;

    elementCustomField3:LANGUAGEINDEPENDENT_EXTENDED_Text;

    elementCustomField4:LANGUAGEINDEPENDENT_EXTENDED_Text;

    elementCustomField5:LANGUAGEINDEPENDENT_EXTENDED_Text;

    elementCustomField6:LANGUAGEINDEPENDENT_EXTENDED_Text;

    }

  2. 为BO生成完整的UI屏幕事物类型场景,尤其是WorkCenter平面图和WorkCenterView:

  3. 在业务对象上生成SOAP WebService。 WS应该只具有Create操作:

    ,并且应该附加到您的自定义WorkCenter视图中 授权原因:

  4. 在创建的WS上生成一个外部WebService集成组件:

  5. 创建一个收集WS及其代理的通信方案:

  6. 在C4C的Administration WorkCenter上,为本地C4C创建通信系统:

  7. 然后创建一个可以将代理服务器和WS连接在一起的通信安排:

  8. 在C4C CTI调用包装程序上实现增强点(技术名称:CTICallWrap-upActions):

  9. 打开脚本文件HANDLE_INCOMING_CALL.absl,并插入用于获取CTI客户字段的代码并将其推送到WebService:

导入AP.Common.GDT;

var结果:LANGUAGEINDEPENDENT_MEDIUM_Description;

var wsRequest:CTI_CustomFields_ProxyClient_EWSI.Create.Request;

var bpID = InputData.BusinessPartnerID;

wsRequest.CTI_CustomFields_BOMainViewCreateRequest_sync.CTI_CustomFields_BO.ActivityUUID.content = InputData.PhoneActivityUUID.content.ToString();

wsRequest.CTI_CustomFields_BOMainViewCreateRequest_sync.CTI_CustomFields_BO.DNIS = InputData.DNIS;

wsRequest.CTI_CustomFields_BOMainViewCreateRequest_sync.CTI_CustomFields_BO.ANI = InputData.ANI;

wsRequest.CTI_CustomFields_BOMainViewCreateRequest_sync.CTI_CustomFields_BO.CustomField1 = InputData.CustomField1;

wsRequest.CTI_CustomFields_BOMainViewCreateRequest_sync.CTI_CustomFields_BO.CustomField2 = InputData.CustomField2;

wsRequest.CTI_CustomFields_BOMainViewCreateRequest_sync.CTI_CustomFields_BO.CustomField3 = InputData.CustomField3;

wsRequest.CTI_CustomFields_BOMainViewCreateRequest_sync.CTI_CustomFields_BO.CustomField4 = InputData.CustomField4;

wsRequest.CTI_CustomFields_BOMainViewCreateRequest_sync.CTI_CustomFields_BO.CustomField5 = InputData.CustomField5;

wsRequest.CTI_CustomFields_BOMainViewCreateRequest_sync.CTI_CustomFields_BO.CustomField6 = InputData.CustomField6;

var wsResponse = CTI_CustomFields_ProxyClient_EWSI.Create(wsRequest,bpID," CTI_CommScenario");

返回结果;

为了测试此解决方案,您可以使用以下工具:

  • SAP Cloud for Customer CTI客户端适配器(在下载功能中可用)将允许您模拟传入呼叫,并在业务流程场景中定义了所有"客户扩展"字段:

  • 您先前为定制业务对象创建的带有Thing Type导航和对象工作清单(OWL)屏幕的定制WorkCenter将允许您在实时活动窗格上显示调用后检查数据库内容。
    对于先前指定的输入数据,C4C数据库中的输出如下图所示:

有关此主题的任何进一步观察,请在下面告诉我。 我将随时为他们服务。

干杯

Davide

compass1988
2楼-- · 2020-08-23 06:22

亲爱的Davide,

我已按照您提到的步骤进行。 但是,在回答CTI调用后,没有触发此增强点,因此未调用Web服务。 您知道为什么不触发它吗?

谢谢

埃克雷姆。

打个大熊猫
3楼-- · 2020-08-23 05:57

嗨戴维德,

我按照博客中给出的步骤在"自定义BO"中捕获"实时活动"的自定义字段值。 在第8步中,您提到了创建一个增强实现来放置脚本逻辑。我需要在哪个业务对象之上创建此增强点。我找不到

任何名为CTICallWrap-upActions的东西

请与我分享正在寻找的步骤。谢谢。

此致

Navin

一只江湖小虾
4楼-- · 2020-08-23 06:23

嗨Navin,

是的,恕我直言,我认为只要您的Comm。 安排在同一系统上工作,您可以将系统/通讯用户的身份验证方法保留为基本。

如果您的网络策略和要求规定仅将身份验证方法用作SSL,则可能会向SAP支持人员提出事件。

干杯

Davide

小灯塔
5楼-- · 2020-08-23 06:11

你好Davide,

感谢您的侵权,

我们需要基于ExternalID(即我们创建的"自定义"字段)进行客户搜索,

就像下面这样:

我们创建了增强实施,但是我无法访问我的字段,

我需要获取客户ID,

但是如果我想使用Retrieve,PhoneActivityUUID是唯一存在的UUID!

var c = BusinessPartner.Retrieve(InputData.PhoneActivityUUID)

如果我想使用查询,也有问题。 我没有InputData选项!

您能帮我吗?

谢谢

Baoming ROSE
6楼-- · 2020-08-23 06:11

嗨,罪恶,

我在CTI适配器的" Custom1"字段之一中传递了值,并在CTICustomerSearch增强选项中读取了该值。 之后,使用合同帐户查询获得相应的客户编号/BP,并将其返回。 所以这对我来说很好。

悠然的二货
7楼-- · 2020-08-23 06:00

嗨,

是否可以获取这些CustomField并传递给票证(例如IVR或DNIS并传递给票证)?

例如 在CC代理根据来电打入电话时创建票证时-代理会在Live Activity Center中手动创建票证,而我们希望将"自定义"字段之一通过absl传递给票证吗?

一周热门 更多>