本帖最后由 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 | SystemNumber | User | Password | Client | Language | PoolSize | Trace |
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#源码和工程文件见附件
SAP连接_DEMO.fgcc
(7.74 MB, 下载次数: 397)
|