最近Jerry接到一个原型开发的任务,需要在微信里调用ABAP On Premise系统(SAP CRM On-Premise)里的某些函数。具体场景和我之前的公众号文章 Cloud for Customer和微信集成系列教程 描述的场景类似。
区别之处在于Cloud for Customer(C4C)是一个云解决方案,其OData Service/Web Service能够直接被Internet网络上的其他应用消费。而我最近要做的原型开发,需要消费的函数位于部署在Corporate Network里的ABAP On-Premise系统里,无法直接被Internet应用消费。
为了确保Internet应用能够访问Corporate Network系统里的服务,我们需要用到SAP Cloud Connector, 作为一个沟通桥梁。
这篇文章我假设的场景是:开发一个Java Web应用,部署在SAP Cloud Platform(云平台)上。用户在手机微信里访问该应用,调用ABAP On-Premise系统里的函数。
这个场景的主要实现步骤:
-
下载安装并配置Cloud Connector。Cloud Connector需要和ABAP On-Premise系统同样位于Corporate Network。
-
在SAP云平台上完成必要配置,同Cloud Connector建立连接。
-
开发Java Web应用,部署到SAP云平台。
架构图如下所示。
![700](https://i-blog.csdnimg.cn/blog_migrate/ea22e8fd1141b5acaa96021676b6afb4.webp?x-image-process=image/format,png)
下面是详细步骤介绍。
1. Cloud Connector的安装与配置
![700](https://i-blog.csdnimg.cn/blog_migrate/51f4f46371aadbcfe22ed98179ef8f44.webp?x-image-process=image/format,png)
安装完成后启动Cloud Connector,确保在操作系统的服务列表里看到Cloud Connector对应的服务:
![700](https://i-blog.csdnimg.cn/blog_migrate/511bdfa0ac42c8ed6a92b3139c94e4d9.webp?x-image-process=image/format,png)
Cloud Connector的登录界面:
![700](https://i-blog.csdnimg.cn/blog_migrate/0240cf5d35a08f3cfa51160c48353322.webp?x-image-process=image/format,png)
新建一个Connector实例,我命名为Jerry_SCC。Region和Subaccount需要指定成需要连接的SAP云平台的对应字段,这样才能将该Connector实例同对应的SAP云平台建立关联关系。
![700](https://i-blog.csdnimg.cn/blog_migrate/29976a0b547dc54a4f577e3faaf98588.webp?x-image-process=image/format,png)
Connector实例创建并保存后,如下图所示。点击下图左边Jerry_SCC下面的菜单"Cloud To On-Premise":
![700](https://i-blog.csdnimg.cn/blog_migrate/8c16644d285e6690874d504d7421d666.webp?x-image-process=image/format,png)
在这个界面创建从虚拟系统(virtual system)到ABAP On-Premise系统的一个映射关系。我创建的虚拟系统名称为my-backend-system, 映射到一个SAP内部ABAP系统AG3。访问协议(Protocol)指定为RFC。点击检查按钮,如果ABAP系统的信息维护无误,该ABAP系统的状态会被标记为Reachable(可访问)。
Function Name为STFC,Naming Policy为Prefix,意为AG3系统里所有以STFC开头的函数均能通过该Connector实例被访问。
![700](https://i-blog.csdnimg.cn/blog_migrate/060eb0a23fcab26252a30330eb1d2677.webp?x-image-process=image/format,png)
至此Cloud Connector配置完成。
2. SAP云平台上的配置
前一步Cloud Connector配置完成后,在SAP云平台的Cloud Connectors标签页就能看到配置好的实例了。
这一步需要在SAP云平台上创建一个Destination以便Java程序使用。这个Destination和ABAP Netweaver事务码SM59创建的Destination作用相似。
![700](https://i-blog.csdnimg.cn/blog_migrate/f8135d01f671a1485ea7705c5208493c.webp?x-image-process=image/format,png)
仿照下图的设置创建一个Destination。我的Destination名称为my-backend-system-destination, 这个Destination会在下一步被Java应用消费。注意User和Password需要维护成ABAP On-Premise系统对应的用户名和密码。
![700](https://i-blog.csdnimg.cn/blog_migrate/44450317914db40b4635714bd448138c.webp?x-image-process=image/format,png)
点击按钮Check Connection,确保该Destination工作正常。
![602](https://i-blog.csdnimg.cn/blog_migrate/94511a645885675b718095bc434d8ff5.webp?x-image-process=image/format,png)
3. 开发Java应用,使用第2步创建的Destination
该Java应用的全部源代码在我的github上:
这里只讲解核心代码:
(1) 第28行根据Destination名称拿到其实例,名称在第2步SAP云平台的配置里指定。
(2) 第31行,拿到ABAP函数STFC_CONNECTION的句柄。
(3) 第35行,拿到用户从浏览器url里传进来的输入值。
(4) 第38行,将从第35行拿到的用户输入赋给STFC_CONNECTION的输入参数REQUTEXT。
(5) 第42行,执行ABAP函数。
(6) 第45, 46行,得到ABAP函数执行结果。
![700](https://i-blog.csdnimg.cn/blog_migrate/2df6b6a5fa47778f8e96dcdb54a91da1.webp?x-image-process=image/format,png)
将这个Java应用从Eclipse部署到SAP云平台。具体步骤参考我的知乎文章:
在微信里测试一下:
![700](https://i-blog.csdnimg.cn/blog_migrate/634a0c8ffc4e150ea17e664354dc8a2d.webp?x-image-process=image/format,png)
输出:
![700](https://i-blog.csdnimg.cn/blog_migrate/52a7563efff1738dd081411ee305d3ab.webp?x-image-process=image/format,png)
在ABAP系统的STFC_CONNECTION函数体内设置断点,在ABAP调试器里也能观察到从微信传进来的用户输入:
![700](https://i-blog.csdnimg.cn/blog_migrate/4a65c73d666e2411862a79cfeafe9c60.webp?x-image-process=image/format,png)
我在我的知乎专栏上写了很多关于SAP云平台的文章,欢迎关注。
![700](https://i-blog.csdnimg.cn/blog_migrate/5b15fc8e9fbfeec3eb78ce654b272430.webp?x-image-process=image/format,png)
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
![321](https://i-blog.csdnimg.cn/blog_migrate/8f78ecbe9f820e292e3b16fcdde8272c.webp?x-image-process=image/format,png)
![531](https://i-blog.csdnimg.cn/blog_migrate/28f78a91dd8ac113576a15d113fccd06.webp?x-image-process=image/format,png)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24475491/viewspace-2154719/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24475491/viewspace-2154719/