请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

Eric.Liang 讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2022-1-5 17:56  /   查看:2849  /  回复:0
本帖最后由 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连接的连接信息
image.png739750365.png
连接信息包括
AppServerHost SystemNumberUser Password Client Language PoolSizeTrace


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

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

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

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

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

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

入参出参对象代码如下,详情代码见附件:
image.png665669555.png
上述代码中包含了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的目录下
image.png591165771.png

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

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

单条记录添加
image.png511797790.png

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

请求体
image.png780446471.png

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

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

多条记录添加(主子表记录)
image.png539321288.png

集成效果如下:
SAP Hana数据库_RFC函数接口对接.gif
C#源码和工程文件见附件
SAP连接_DEMO.fgcc (7.74 MB, 下载次数: 155)

评分

参与人数 1满意度 +5 收起 理由
tongki + 5

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部