博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数
阅读量:6258 次
发布时间:2019-06-22

本文共 2072 字,大约阅读时间需要 6 分钟。

hot3.png

最近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系统里的函数。

这个场景的主要实现步骤:

  1. 下载安装并配置Cloud Connector。Cloud Connector需要和ABAP On-Premise系统同样位于Corporate Network。

  2. 在SAP云平台上完成必要配置,同Cloud Connector建立连接。

  3. 开发Java Web应用,部署到SAP云平台。

架构图如下所示。

下面是详细步骤介绍。

1. Cloud Connector的安装与配置

安装完成后启动Cloud Connector,确保在操作系统的服务列表里看到Cloud Connector对应的服务:

Cloud Connector的登录界面:

新建一个Connector实例,我命名为Jerry_SCC。Region和Subaccount需要指定成需要连接的SAP云平台的对应字段,这样才能将该Connector实例同对应的SAP云平台建立关联关系。

Connector实例创建并保存后,如下图所示。点击下图左边Jerry_SCC下面的菜单"Cloud To On-Premise":

在这个界面创建从虚拟系统(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实例被访问。

至此Cloud Connector配置完成。

2. SAP云平台上的配置

前一步Cloud Connector配置完成后,在SAP云平台的Cloud Connectors标签页就能看到配置好的实例了。 这一步需要在SAP云平台上创建一个Destination以便Java程序使用。这个Destination和ABAP Netweaver事务码SM59创建的Destination作用相似。

仿照下图的设置创建一个Destination。我的Destination名称为my-backend-system-destination, 这个Destination会在下一步被Java应用消费。注意User和Password需要维护成ABAP On-Premise系统对应的用户名和密码。

点击按钮Check Connection,确保该Destination工作正常。

3. 开发Java应用,使用第2步创建的Destination

该Java应用的全部源代码在我的上:

这里只讲解核心代码:

(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函数执行结果。

将这个Java应用从Eclipse部署到SAP云平台。具体步骤参考我的知乎文章:

在微信里测试一下:

输出:

在ABAP系统的STFC_CONNECTION函数体内设置断点,在ABAP调试器里也能观察到从微信传进来的用户输入:

我在我的知乎专栏上写了很多关于SAP云平台的文章,欢迎关注。

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

转载于:https://my.oschina.net/u/3771578/blog/1815421

你可能感兴趣的文章
Http Servlet详解及学习地址
查看>>
ORACLE数据库学习之备份与恢复
查看>>
秋季学期学习总结
查看>>
Linux含交互的自动登录脚本
查看>>
Java使用内存映射实现大文件的上传
查看>>
【转】《Unity Shader入门精要》冯乐乐著 书中彩图
查看>>
React学习,搭建项目,入门
查看>>
Spring Tool Suite 使用自带maven速度慢---修改settings.xml更新mirror方法
查看>>
图片转成base64, base64转成图片
查看>>
css改变背景透明度.html
查看>>
easyui表单校验
查看>>
LeetCode – Refresh – Gray Code
查看>>
ZYN砍树
查看>>
曹冲养猪
查看>>
Color Length UVALive - 5841
查看>>
asp.net连接SQL SERVER 2012的方法
查看>>
Electron开发环境部署
查看>>
MAC下安装MAMP的PHPredis扩展
查看>>
通过函数指针调用函数
查看>>
苹果虚拟机显示卡顿
查看>>