本篇博文将向您介绍如何设置多步操作的 HTTP API 步骤来实现SAP分析云与外部应用程序(不仅包括 SAP 的产品,还包括非 SAP 的应用程序)的集成,对于广大SAP分析云的使用者来说,本文将为您在不同APP的数据集成带来详细的指导。
API 步骤的新功能无需修改原始应用程序,集成到 SAP 分析云的多步操作中。API 步骤创建客户出口。您可以将自己的附加功能挂在这些挂钩上。
在我们开始在多步操作中构建 API 步骤之前,您需要创建一个专门用于 API 集成的连接。创建连接:
添加连接
- 在连接到公共 API下,选择HTTP API 连接。
选择 HTTP API 连接
然后您需要设置连接的必填信息。多步操作中的API 步骤是为了集成后端服务,因此HTTP API连接支持基本认证和OAuth2.0的客户端凭证。因此,客户应提供至少支持上述身份验证的公共 API。
简单来说,一个响应为
JSON MINE类型的GET方法URL ,需要基本认证/OAuth2.0的客户端凭证,必须返回HTTP code
200才可以用在这里保存连接。对于本地连接,由于 SCC 限制,需要明确指定端口。
配置 HTTP API 连接
该连接也支持本地环境。如果 HTTP API 留在 SAP 分析云无法访问的网络中,则有必须要在客户的网络中设置 SAP Cloud Connector,因为它扮演着在 SAP 分析云和用户的本地服务之间创建桥梁的角色。如何设置和配置SAP Cloud Connector,请参考博客
SAP Cloud Connector的安装和配置。
创建 API 步骤
如果完成上述先决条件,您可以转到多步操作并从工具栏或弹出菜单创建 API 步骤。现在您将在列表中看到您创建的连接。选择您要使用的连接。
其次,指定 HTTP API 的 API URL 以与 SAP 分析云集成。API 步骤仅支持 POST 方法和仅在默认请求头中预定义的 JSON MIME 类型。
指定连接
如果需要,您可以添加额外的请求头字段。
附加请求头 字段仅允许 'Prefer':'respond-async' 和键以 'X-' 开头的自定义标头,'x-forwarded-host' 除外。
要为标题字段设置多个值,您可以使用逗号分隔值或使用相同的键输入多个标题字段。
指定请求标头
现在您需要指定 POST 请求的主体。如果默认编辑器太小而无法编辑,您还可以单击
编辑 JSON按钮打开编辑对话框。
触发时
根据 API 的不同,您可以选择通过 HTTP 代码或 HTTP 代码和响应正文的组合来确定触发状态。按照通用设计标准:
如果成功触发异步活动,则 HTTP 代码返回 202,这表示远程 API 开始处理远程系统中的后端任务。如果返回 40x/50x,则 HTTP API 无法处理远程系统中的后端任务,从而导致 API 步骤在多步操作中失败。
如果HTTP API的状态是由HTTP代码和响应正文共同决定的,则在响应正文中需要有2个必填属性(status、jobId)和1个可选属性(message)。
对于 表示异步活动状态的
状态 ,其可接受的值可以是“DONE”、“FAILED”或“IN_PROCESS”。另一个名为
jobId 的属性代表异步活动,它的值可用于远程查询正在运行的任务的状态。
Message字段用于 HTTP API 触发器的详细警告/错误消息。
如上所述,为了获取异步活动实时状态,系统假设应该有相应的查询API可用于查询。您应该在
Get API Execution Result部分设置 URL 。但是,如果这些 API完全遵循 OData 标准,则用户不必在此处设置 URL,因为触发响应标头中的LOCATION对于查询状态应该是有效的。
轮询时
API 步骤例子
我们的目标是集成尽可能多的协议,包括 OData 和普通 REST API。因此,如果触发响应遵循 OData 标准,它期望 202 用于 HTTP 代码和标头中的相应位置。请参考以下示例:
触发——OData 标准
如果轮询响应遵循 OData 标准,如果任务仍在处理中,则 HTTP 代码预计为 202,如果任务已完成,则预计为 200。
轮询——OData 标准
如果 API 是非 OData 接口,它接受 200/202 作为 HTTP 代码,在响应正文中创建指示任务状态的信息。
触发——非 OData 标准
如果任务仍在进行中,则非 OData 的相应轮询响应接受 202 或 200;注意:有正文中的详细信息才能判断工作是否完成。
轮询 —— 非OData标准
最后,API 步骤还提供了仅通过代码判断API状态的选项。如果选择此选项,正文将被忽略。欢迎在评论部分分享您的反馈或想法,并参考以下 SAP 社区资源了解更多信息。
结论:
使用此博文的说明,您将能够设置 HTTP API 连接并将外部 API 与 多步操作中的 API 步骤集成。希望这篇博文可以帮助您的团队更快地完成相同的实施。如果您觉得这篇博文有帮助,请点赞关注我。