本篇博文将向您介绍如何设置多步操作的 HTTP API 步骤来实现SAP分析云与外部应用程序(不仅包括 SAP 的产品,还包括非 SAP 的应用程序)的集成,对于广大SAP分析云的使用者来说,本文将为您在不同APP的数据集成带来详细的指导。

API 步骤的新功能无需修改原始应用程序,集成到 SAP 分析云的多步操作中。API 步骤创建客户出口。您可以将自己的附加功能挂在这些挂钩上。

在我们开始在多步操作中构建 API 步骤之前,您需要创建一个专门用于 API 集成的连接。创建连接:

  • 点击连接>添加连接。

%u6DFB%u52A0%u8FDE%u63A5

添加连接

  • 连接到公共 API下,选择HTTP API 连接

%u9009%u62E9%20HTTP%20API%20%u8FDE%u63A5

选择 HTTP API 连接

 

然后您需要设置连接的必填信息。多步操作中的API 步骤是为了集成后端服务,因此HTTP API连接支持基本认证和OAuth2.0的客户端凭证。因此,客户应提供至少支持上述身份验证的公共 API。

简单来说,一个响应为JSON MINE类型的GET方法URL  ,需要基本认证/OAuth2.0的客户端凭证,必须返回HTTP code 200才可以用在这里保存连接。对于本地连接,由于 SCC 限制,需要明确指定端口。

%u914D%u7F6E%20HTTP%20API%20%u8FDE%u63A5

配置 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 类型。

%u6307%u5B9A%u8FDE%u63A5

指定连接

如果需要,您可以添加额外的请求头字段。 附加请求头 字段仅允许 ‘Prefer’:’respond-async’ 和键以 ‘X-‘ 开头的自定义标头,’x-forwarded-host’ 除外。

要为标题字段设置多个值,您可以使用逗号分隔值或使用相同的键输入多个标题字段。

%u6307%u5B9A%u8BF7%u6C42%u6807%u5934

指定请求标头

现在您需要指定 POST 请求的主体。如果默认编辑器太小而无法编辑,您还可以单击编辑 JSON按钮打开编辑对话框。

%u89E6%u53D1%u65F6

触发时

根据 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对于查询状态应该是有效的。

%u8F6E%u8BE2%u65F6

轮询时

API 步骤例子

我们的目标是集成尽可能多的协议,包括 OData 和普通 REST API。因此,如果触发响应遵循 OData 标准,它期望 202 用于 HTTP 代码和标头中的相应位置。请参考以下示例:

%u89E6%u53D1%u2014%u2014OData%20%u6807%u51C6

触发——OData 标准

如果轮询响应遵循 OData 标准,如果任务仍在处理中,则 HTTP 代码预计为 202,如果任务已完成,则预计为 200。

%u8F6E%u8BE2%u2014%u2014OData%20%u6807%u51C6

轮询——OData 标准

如果 API 是非 OData 接口,它接受 200/202 作为 HTTP 代码,在响应正文中创建指示任务状态的信息。

%u89E6%u53D1%u2014%u2014%u975E%20OData%20%u6807%u51C6

触发——非 OData 标准

如果任务仍在进行中,则非 OData 的相应轮询响应接受 202 或 200;注意:有正文中的详细信息才能判断工作是否完成。

%u8F6E%u8BE2%20--%20%u975EOData%u6807%u51C6

轮询 —— 非OData标准

最后,API 步骤还提供了仅通过代码判断API状态的选项。如果选择此选项,正文将被忽略。欢迎在评论部分分享您的反馈或想法,并参考以下 SAP 社区资源了解更多信息。

结论:

使用此博文的说明,您将能够设置 HTTP API 连接并将外部 API 与 多步操作中的 API 步骤集成。希望这篇博文可以帮助您的团队更快地完成相同的实施。如果您觉得这篇博文有帮助,请点赞关注我。

Sara Sampaio

Sara Sampaio

Author Since: March 10, 2022

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x