在这个博客中,我们列出了contentenricher组件的局限性。接下来,大数据与应用,用一个例子来说明克服上述限制的解决方案。
内容丰富器是一个消息转换器,它使用外部数据源来用丢失的信息扩充消息[1]。
"内容丰富器在集成过程中用原始消息添加有效负载的内容。这会将两条单独的消息转换为一个增强的有效负载。"[2]。
以下是一些博客,网云服务器,演示如何使用SuccessFactors adapter使用Content Enricher
SAP HANA云集成:Content Enricher,Content Modifier博客5:集成流中的内容丰富器模式
限制
仅支持SuccessFactors、Soap1.x和OData适配器仅支持XML格式不支持需要请求主体(exchange中的当前主体除外)的外部数据源服务
让我们考虑一个显示SAP CPI中Content Enricher组件限制的业务用例。
订单将从订单管理系统(OMS)传输。OMS使用OData协议公开订单数据。除了订单数据外,接收者还需要每个订单的客户信息。客户关系管理系统(CRM)维护客户信息并将数据公开为HTTP服务,私有云市场,仅支持JSON格式。
注:Northwind测试服务用作OMS和CRM[3]。
实施
解决方案的关键是ProcessDirect适配器。ProcessDirect适配器可用于在同一租户内的集成进程之间建立通信[4]。
为了克服Content Enricher的限制,我们将准备一个单独的集成进程
使用HTTP适配器调用外部数据源服务,但使用ProcessDirect适配器公开准备XML格式的响应体
外部数据源集成过程要求订单具有CustomerID。然后,CustomerID过滤器准备向CRM发出HTTP请求。接下来,返利,调用服务。最后,JSON输出被转换成XML格式。
到内容丰富器,此集成过程充当外部数据源,而不是CRM。
主集成过程
内容丰富器配置如下:
示例运行
主集成过程运行一次。
获取订单的示例输出为
将作为输入提供给外部数据源集成过程。
来自输入,CustomerID filter是为$filter参数准备的:
CustomerID eq'VINET'或CustomerID eq'TOMSP'…
执行HTTP GET请求
使用内容丰富器用客户详细信息丰富订单数据并记录正文。
总之,大数据的解决方案,使用ProcessDirect adapter开发一个集成过程,作为外部应用程序数据源有以下几个优点:
准备XML格式的外部数据外部数据源可以使用任何通信协议,并且可以期望请求有效负载中的主体在将数据输入到内容丰富器之前,可以对数据执行额外的转换
[1]企业集成模式–内容丰富器。2018.企业集成模式-内容丰富器。[在线]网址https://www.enterpriseintegrationpatterns.com/patterns/messaging/DataEnricher.html。[2018年7月22日访问]。
[2]SAP帮助门户。2018.定义内容丰富器。[在线]网址:https://help.sap.com/viewer/fd940ad7e2034505a055f14e457c6d5b/Cloud/en-US/8827f9feb94e4264aaf42ac1c6ce11b7.html。[2018年7月22日访问]。
[3]https://services.odata.org/V2/Northwind/Northwind.svc
[4]SAP帮助门户。2018.使用ProcessDirect适配器配置通信通道。[在线]网址:https://help.sap.com/viewer/149e1c8f944645c79f7989e6ed7f5042/Cloud/en-US/74457187451f431298355fbbf807d086.html。【访问日期:2018年7月22日】.