使用 Graph

学习目标

  • 开发 SAP Graph。

在本课中,我们将涵盖以下主题:

  • 什么是 Graph?

  • Graph 如何工作?

  • 开发 Graph

什么是 Graph?

CLD900_21_U3_SAPGraph_01 CLD900_21_U3_SAPGraph_02 CLD900_21_U3_SAPGraph_03

Graph(原 SAP Graph)是一个强大的、单一且互联的 API,可简化跨 SAP 生态系统对业务数据的访问。它提供统一的、基于图的 API,使开发者能够以一致且直观的方式与来自多个 SAP 系统(例如 SAP S/4HANA、SAP SuccessFactors 等)的数据交互,无论数据存储在何处。Graph 引入了经过策展的、语义互联的业务数据图,通过单一 API 访问所有业务数据。它代表你访问数据,自身不存储或缓存任何数据。你只需与数据的简单视图交互。该视图在所有系统间是统一的。

Graph 如何工作?

业务数据图支持强大而全面的查询(导航、展开),以探索数据及其关系。它们由 SAP 现有的 API 提供者自动创建,并可以进行自定义扩展。

Graph 使开发者能够使用单一 API 以及 ODatav4GraphQL 等现代协议,高效地访问跨系统的所有业务数据。

在图中,实体(例如客户、销售订单、产品等)表示为节点。每个实体由属性(数据字段,例如 CustomerID、ProductName 等)组成。实体之间的关系(例如客户下订单,或产品属于某个订单)表示为边。这使用户能够以更直观、更灵活的方式可视化和交互数据,尤其适用于复杂且相互关联的数据集。

示例:

一个名为 Product、使用命名空间 sap.graph 的 Graph API,链接到来自 SAP S/4HANA*(第 2 项)和来自 SAP Sales Cloud(第 3 项)的产品实体。因此,这个新的 API 提供了对存储在各种 SAP 系统中的产品数据的扩展视图。

开发 Graph

作为开发者,你希望构建消费业务数据图数据的应用。在可以使用 Graph 之前,租户管理员必须在 SAP Integration Suite 中将 Graph 配置为 API Management 的一项能力,并分配以下角色集合:

  1. Integration_Provisioner: 你必须分配此角色,以便在 Integration Suite 主页上添加 API Management 和 Graph 等能力。

  2. 在 Integration Suite 主页上激活 Graph 后,必须为你的用户分配以下 Graph 角色集合 Graph.KeyUser 。使用该角色集合,你将自动被分配以下角色:

  • Graph_Key_User

  • Graph_Navigator_Viewer

在开发 Graph 应用之前,有两个重要的考量因素:

  1. 你计划开发什么类型的应用?用例是什么?关于此问题所涉及影响的更多信息,请参阅 Application Archetypes 。

  2. 你的身份验证策略是什么,你计划如何获取与 Graph 通信所需的访问令牌?关于可能选项的更多信息,请参阅 Authentication 。

创建 Graph API 有两种方式:

  • 你可以通过使用 Node.js 中的 Graph 模块进行实现,直接创建 API。在 Source 下,你可以找到 26 个视频教程,详细展示所有开发步骤。

  • 第二种方式来自低代码领域,通过 API Management 提供。

有一个 Graph 教程使用沙盒环境,通过简单示例向开发者介绍 Graph。

如前所述,Graph Navigator 为超过 2,200 个根实体提供详细信息。

总结:

为什么要使用 Graph?

  • 通过强大的图查询提升应用开发者的生产力。

  • 开发者可以使用 SAP Build(低代码)、SAP Build Pro 和 CAP,或他们自己的工具。

  • 开箱即用,从完全互联的 SAP 数据模型开始(最多 4,500+ 个实体,4,000+ 个连接)。

  • 自定义、扩展并简化数据图,使其符合你自己的自定义模型和 API 的“形态”。

  • 开发者通过一个 API 安全控制即可高效访问(OData、GraphQL)你的所有数据。

  • 保护你的 API 免遭未授权使用、DoS 和其他内容攻击。

  • 通过统一身份验证、身份传播和可撤销凭证来管理访问。

  • 控制每个用例中可选择性地可见哪些数据。

  • 对开发者或合作伙伴抽象并隐藏你的环境格局和数据源详细信息。

  • 通过创建专用的 BDG,避免为新用例进行数据复制/ETL。

  • 与 API Management 集成

  • 添加灵活且细粒度的流量与配额管理。

  • 创建触发器、事件和日志。

  • 收集使用分析数据并实现 API 变现。