概述
要通过 ODBC 访问 ABAP 系统中的 CDS 视图实体,这些实体首先需要在后端系统中公开,然后再通过 ODBC 应用程序中 ABAP 的 ODBC
驱动程序访问它们。ODBC 应用程序可以是任何能够加载 ODBC 驱动程序的客户端工具,也可以是用能够使用 ODBC 驱动程序的程序语言(例如
C、C++、python、node.js、PHP)编写的程序。在本教程中,我们将展示 Windows 上的 Microsoft Excel
使用案例。ABAP 本身的 ODBC 驱动程序在 Windows 和 Linux 上可用。
在 Windows 上安装 ODBC 驱动程序
1\. 要安装 ABAP 的 ODBC 驱动程序,您需要访问 https://support.sap.com/en/index.html
2\. 在此之后,您可能需要登录,然后才能搜索组件 ODBC DRIVER FOR ABAP 1.0
3\. 打开 ODBC Driver for ABAP:Initial delivery(适用于 ABAP 的 ODBC
驱动程序:初始交付),然后单击下一页中的下载图标。
4\. 现在根据 Windows 选择正确的下载选项
5\. 现在您需要下载 SAPCRYPTOLIB。点击此 链接 打开 COMMONCRYPTOLIB 8 并下载适用于 Windows 的最新版本。
6\. 此外,您可能需要在软件中心下载 SAPCAR 才能解压缩 SAP 文件。
7\. 在 Windows 开始菜单中打开命令提示符并使用此命令解压缩您的 SAP 文件,您需要对下载的 SAPCAR
文件进行寻找,然后选择一个目录作为您的 ODBC 驱动程序位置并在那里解压缩 SAR 文件。
C:\Users\D-number\Downloads\sapcar.exe -xvf C:\Users\D-number\Downloads\Your
downloaded ODBCforABAP.SAR file
C:\Users\D-number\Downloads\sapcar.exe -xvf C:\Users\D-number\Downloads\Your
downloaded SAPCRYPTOLIBP.SAR file
8\. 在此之后,您将在 ODBC 驱动程序目录中至少看到以下文件:
ODBC_driver_for_ABAP_x64u.msi sapcrypto.dll
9\. 启动 Windows 安装程序文件以安装适用于 ABAP 的 ODBC 驱动程序
10.已安装的文件位于 中。 :\Program Files\SAP\ODBC driver for ABAP
ODBC 驱动程序现在已准备好在 ODBC 数据源中使用。
创建测试数据表
1\. 打开 ADT 并登录您的 ABAP 系统环境,这里我登录是ABAP云环境。如果您没有包,请创建一个新包,例如
.Z_PACKAGE_SQL_0001
2\. 2.右键单击您的软件包,然后选择 New > Other ABAP Repository Object (新建其他 ABAP 存储库对象)。
3\. 选择 Dictionary > Database Table,然后单击 Next
4\. 输入以下名称和说明
5\. 选择传输请求,然后单击 Next,您创建的 Table 将被打开,并定义表的结构。
6\. 保存并激活您的更改。
7\. 继续创建测试表,并添加表结构字段,并保存激活。
为测试数据表添加测试数据
1\. 您需要用一些测试数据填充测试表。右键单击您的软件包,然后选择 New > ABAP Class。
2\. 输入以下名称和说明,点击Next
3\. 然后在类中添加相应的添加数据的代码
4\. 保存并激活类,F9运行该类填充数据库表。
5\. 返回您的表并右键单击每个表来检查它们 > Open With > Data Preview
为表创建CDS视图实体
1\. 右键单击第一个表,然后选择 New Data Definition
2\. 输入以下名称和说明:点击Next
3\. 选择传输请求,点击NEXT,并选择 Define View Entity,然后单击 Finish
4\. 选择另一个表创建数据实体,保存并激活数据实体。
创建 Service Definition 和 SQL 类型的 Service Binding
1\. 右键单击其中一个,然后选择 New Service Definition (新建服务定义 ZORDERSVIEW_001)。
2\. 输入以下信息。
3\. 点击传输请求,并完成,添加第二个视图并为两个视图实体添加别名。。
4\. 新创建的服务定义现在可以在服务绑定中使用。您需要 SQL - Web API 类型的服务绑定,以便稍后使用 ODBC
访问对象。右键单击服务定义,然后选择 New Service Binding
5\. 输入以下信息,点击NEXT.
6\. 选择传输请求,然后单击 Finish。正如您稍后将看到的,在您的情况下,服务绑定名称将充当外部 ODBC
使用者的架构名称。不要忘记激活服务绑定。ZORDERS_001
创建通信场景
1\. 要访问服务绑定,您需要 ABAP 系统中的技术用户。因此,您现在将在 SAP BTP ABAP
环境系统中创建通信方案和通信安排,右键单击您的包,然后选择 New > Other ABAP Repository Object >
Communication Scenario (通信方案中的其他 ABAP 存储库对象)
2\. 点击NEXT,输入以下信息。
3\. 点击NEXT,选择传输请求,并点击完成。
4\. 将打开通信方案。转到 Inbound 选项卡,由于您希望在 Windows Excel 测试用例中使用用户/密码身份验证,因此请选择 Basic
作为 Supported Authentication Methods。
5\. 在 Inbound Services 部分中,选择 Add... 按钮并输入 Inbound Service ID,然后单击
Finish。S_PRIVILEGED_SQL1
入站服务是用于对 CDS 视图实体进行特权访问的预配置服务,即不应用 DCL。(DCL 代表数据控制语言。它提供了一种访问控制机制,以根据条件限制 CDS
视图从数据库中返回的结果)S_PRIVILEGED_SQL1
6\. 添加其他授权才能启用对服务绑定的访问。转到选项卡授权.在Authorization
Objects下,按Insert按钮,在Authorization Object字段中输入,然后单击OK。S_SQL_VIEW
7\. 选择添加的授权对象,并在详细信息中填写授权:
SQL_SCHEMA必须包含要授予访问权限的服务绑定的名称。
值 * for 表示您允许访问附加到服务绑定 ZORDERS
的服务定义中的所有视图。SQL_VIEW由于当前仅允许只读访问权限,因此是强制性的。SQL_VIEWOP=SELECT
8\. 保存您的条目,然后按Publish Locally按钮将其发布到当前开发系统中。
创建通信系统
1\. ABAP 系统中的最终准备任务无法在 ADT 中执行,需要在系统的管理 UI 中完成。右键单击您的项目,打开 Properties
(属性)。在弹出窗口中,选择ABAP开发,然后选择系统 URL,在网页打开。
2\. 使用您的用户名和密码登录。在 Communication Manag
...