之前都是讨论如何使用SMP3.0集成SAP Netweaver
Gateway暴露出来的OData服务。对于非OData数据源,可以使用Integration
Gateway将其转换为SMP可以消费的OData服务。Integration Gateway的作用就是SMP用来适配各种非SAP
OData数据源的组件。通过下面的图可以了解Integration Gateway在SMP中位置:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124549-42.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
另外,我还会使用到SAP
Netweaver Gateway Productivity
Accelerator(GWPA)。有关GWPA,可以参考:<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-38.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
b)其他一些针对Integration
Gateway和各种移动平台的Toolkit.
例如使用Integration Gateway的Toolkit,可以将OData
Modeler开发的OData服务与非SAP后端进行邦定,例如JDBC、SOAP、JPA数据源等。
下面的例子尝试使用Integration
Gateway将后端MySQL的一张table暴露为OData服务,并且使用SMP3.0进行消费。这个例子将会使用到上面提到的Integration
Gateway,GWPA OData Modeler以及GWPA Toolkit for Integration
Gateway.
1.MySQL中创建一张表模拟后端数据源。
表名: airlines
字段: AirlineID和Name,均是Char类型
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-52.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
然后向airlines中插入若干行记录,我这里插入1行:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-93.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
2.Eclipse中安装SAP
Netweaver Gateway Productivity Accelerator(GWPA)插件:
使用的URL是:<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-12.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
3. 在Eclipse中创建一个Service Implementation
Project
名字叫做FirstODataService:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-18.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
在FirstODataService工程中增加一个OData Model:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-62.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
Entity 名字:Airline. EntitySet名字:Airlines.
在该Entity中增加两个Properties:AirlineID和Name,类型是Edm.String.
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-77.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
4. 实现该OData Model:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-19.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
并选择数据源:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-35.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
选择数据源时,选择JDBC:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-94.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
5. 修改Eclipse中有关SMP Integration Gateway的配置,使得我们可以将上面设计的OData
Service部署到SMP的Integration Gateway:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-9.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
6.
将OData Service部属到Integration
Gateway:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-88.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
7.配置SMP Integration Gateway Cockpit
登录到SMP Integration Gateway Cockpit:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-56.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
配置OData Service(FirstODataService)的Destination为MySQL:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-82.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
8.配置SMP的Security Profile
所有的Integration Gateway的OData Service都使用SMP中名为sap的Security
Profile。因此新建一个”sap”的Security Profile,为简单起见配置其Authentication
Providers为:”No Authentication Challenge”.
9. 激活Integration Gateway中的OData Service
在Integration Gateway
Cockpit中激活上面第6步发布的OData服务.此时点击该OData服务的 Open Service
Document可以看到刚刚发布的OData Service的Metadata:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-3.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
还可以查看Airlines的数据:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-58.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
10.测试
a) 在SMP中新建一个Application,名字叫做com.sap.myig.test. 其URL指向上面Integration
Gateway将MySQL Table转换成的OData服务的URL。
b) 使用postman创建一个连接,并获取APPCID:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-67.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
c) 使用上面创建的APPCID获取Airlines数据:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124550-22.jpg" alt="SMP3.0学习笔记之十六与非SAP后端系统集成之数据库篇” />
上面就是使用Integration Gateway将后台数据库的表发布为OData
Service并且通过SMP进行消费的例子。后续我会尝试使用Integration Gateway将一个SOAP
Webservice发布为SMP可以消费的OData服务。