Eric.Liang 发表于 2022-1-5 17:56:45

帮你打开活字格更神奇的功能:九十九、活字格对接SAP Hana实现数据集成

本帖最后由 Eric.Liang 于 2022-1-5 17:56 编辑

众所周知,SAP作为老牌的ERP系统与企业管理解决方案提供商,在市场上有着不可撼动的地位。但是随着业务的不断发展,越来越多的企业都在考虑如何实现最大化的数字赋能。
本节,会针对企业级低代码开发平台-活字格与SAP的数据集成进行深入探究

在进行数据集成之前,我们首先要了解,SAP的数据源都分为哪几种?
SAP的数据源主要分为两种,一种是传统的SQL Server数据源,另一种则是SAP 目前主打的Hana数据源。

1.SQL Server数据源
传统的关系型数据库的数据源连接,在活字格面前,相当的简单,活字格支持连接多种关系型数据源
可以快速的集成SAP数据动态展示在活字格页面中,具体教程可参考这里:连接到SQL Server

如果您自身对于SAP底层的数据结构相当的了解,那么这种直连的方式,更有助于您针对业务进行定制化开发

2.Hana数据源
SAP目前主要推荐的数据源方式。Hana数据源无法通过直连的方式进行数据的获取和写入,这个时候,就需要使用SAP提供的接口进行实现
针对活字格与SAP的数据集成,给大家推荐一个第三方开源的C# SDK:C# SDK
基于这个SDK的方法,我们可以实现通过接口调用的方式,调用SAP的RFC函数,实现数据的读写

前期准备如下:
活字格设计器中
1.创建一个SAPConfig配置表,用来存储SAP连接的连接信息

连接信息包括

AppServerHost SystemNumberUser Password Client Language PoolSizeTrace


2.创建服务端命令,用来拼接连接字符串


SAP系统
1.由于SAP的RFC函数调用,需要引用7.5版本SAP NetWeaver RFC SDK,需要客户自行下载
下载地址:SAP NetWeaver RFC SDK
下载后的文件如下(红框中是后续需要使用的dll):


服务器机器
1.需要在服务器机器的环境变量中将添加对应的环境变量(地址为SAP NetWeaver RFC SDK的lib目录)


具体的操作步骤
当前期的准备都准备完毕了之后,我们就要开始在活字格端调用SAP的RFC函数去读取数据了。
由于SAP RFC函数调用的独特性,我们需要在活字格中开发后端的SeverAPI去进行集成。SeverAPI的开发教程,可以参考这里:SeverAPI开发教程
1.在C#工程文件中引用SapNwRfc NuGet包


2.同时引用SAP NetWeaver RFC SDK目录下的sapnwrfc.dll


3.标准的调用RFC函数的代码已经完成,直接复用即可
调用函数的方法如下:


入参出参对象代码如下,详情代码见附件:

上述代码中包含了3个方法(ZLIFNR_CREATE,ZLIFNR_SEARCH,Z_OI_MM_PR_CREATE),如果有新的函数需要调用,可以自行在代码中进行扩展
需要注意的点有2个
1)函数名
2)对应函数方法的DataSchema需要自行构建

4.编译代码,在编译结束后,将SAP NetWeaver RFC SDK lib目录下的icudt50.dll,icuin50.dll,icuuc50.dll拷贝至ServerAPI的目录下


5.活字格端调用服务端SeverAPI,上传ServerAPI编译的dll文件,注意:sapnwrfc.dll,SapNwRfcDotNet.dll引用的dll需要同时上传。


6.设计器中通过发送HTTP请求命令,调用服务端ServerAPI,

单条记录添加


在此要注意发送HTTP请求命令中的设置,请求头包含了SAP连接字符串和调用的RFC函数名,请求体包含了RFC函数的入参,勾选JSON序列化
请求头


请求体


返回值Result为JSON对象,可直接通过Result.ZFLAG,获取返回代码,判断是否成功


获取多行数据展示,配合导入JSON到表格命令,将多行数据回写页面表格


多条记录添加(主子表记录)


集成效果如下:

C#源码和工程文件见附件




页: [1]
查看完整版本: 帮你打开活字格更神奇的功能:九十九、活字格对接SAP Hana实现数据集成