最近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云平台。
架构图如下所示。
下面是详细步骤介绍。
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应用的全部源代码在我的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函数执行结果。
将这个Java应用从Eclipse部署到SAP云平台。具体步骤参考我的知乎文章:
在微信里测试一下:
输出:
在ABAP系统的STFC_CONNECTION函数体内设置断点,在ABAP调试器里也能观察到从微信传进来的用户输入:
我在我的知乎专栏上写了很多关于SAP云平台的文章,欢迎关注。
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
相关推荐
9. 开发方式:On-Premise使用ABAP在GUI客户端开发,Cloud在SAP Cloud Platform上开发,支持UI5等现代技术。 10. 系统架构:On-Premise有多层环境,如开发、测试和生产环境,Cloud则简化为测试和生产系统。 对于期望...
SAP变式配置-相关性程序如何调用ABAP函数 SAP变式配置是一种复杂的系统配置,相关性程序是其中的一部分,主要用于实现一些简单的逻辑判断。然而,对于一些负责的算法,相关性程序无法直接实现,需要通过调用ABAP...
【SAP ABAP调用Java生成的Web Service手册】 在SAP系统中,与外部服务进行交互时,经常需要调用由Java等其他语言编写的Web Service。本手册详细介绍了如何在MyEclipse环境中生成Web Service,并在SAP ABAP环境中...
JCO的核心功能在于提供了一组API,使得Java开发者可以创建ABAP远程函数调用(RFC)客户端,这些函数调用在SAP系统中定义并可被外部系统调用。它还支持传输BAPI(Business Application Programming Interface)以及...
JCo3是该库的第三版,它支持Java SE和Java EE环境,允许开发者在Java应用中调用SAP的ABAP函数模块、BAPIs(Business Application Programming Interfaces)以及IDocs(Intermediate Documents)。 1. **安装与配置...
SAP Java Connector,通常简称为SAP JCo,是一种用于在Java应用程序与SAP系统之间建立连接的软件组件。这个2.1.9版本的JAR包是专门为Windows平台设计的,确保在system32和sys64x环境下能够顺利运行。在本文中,我们...
首先,SAP RFC是SAP NetWeaver ABAP平台提供的一种服务接口,它允许外部系统以远程调用的方式与SAP系统进行通信。RFC基于ABAP工作流,允许调用者执行SAP系统中的事务代码、函数模块等,从而实现数据交换和业务流程...
在本文中,我们将详细介绍如何使用 JAVA 调用 SAP SOAP webservice,包括配置 SAP 登录信息、创建 java 项目、添加 web 服务客户端、生成 JAVA 类、调用接口等步骤。 配置 SAP 登录信息 在使用 JAVA 调用 SAP SOAP...
在本文中,我们将了解如何使用 Java 程序远程调用 ABAP 函数,使用 SAP 提供的 RFC 针对 Java 程序的 API——JCo。 首先,需要安装 JCo,安装过程中需要三个文件:librfc32.dll、sapjcorfc.dll、sapjco.jar。首先,...
在SAP ABAP编程环境中,开发人员经常需要调用各种函数模块来实现特定的功能。"ABAP调用函数自动填充模式"是一种提高开发效率的工具,它允许在编写代码时快速填充函数调用的参数,并自动声明对应的变量。这个功能在...
ABAP 函数调用是 SAP 系统中的一种常用技术,用于实现业务逻辑的复杂处理。该技术可以实现同步调用和异步调用两种方式,本文将对这两种方式进行详细的介绍。 1. 异步调用 异步调用是指在主程序中调用函数模块,但...
在本项目中,我们使用了JCo3(Java Connector version 3)库,它是SAP提供的Java API,用于与SAP R/3系统进行集成。以下是关于"java + abap + rfc"的相关知识点: 1. **Java Connector (JCo)**: JCo是SAP为Java...
它支持与SAP R/2以及SAP R/3 3.1及后续版本的通信,无论是Java调用ABAP(即SAP内部的编程语言)还是ABAP调用Java,都得到了充分的支持。SAP JCo的设计理念在于将复杂的细节如代码页、数据类型转换、连接池管理等隐藏...
6. Java与SAP的集成(JCO):"Java_SAP_Integration.pdf"可能是关于如何使用Java进行SAP集成的指南,详细介绍了如何使用JCO库创建Java应用,以调用SAP系统的服务和功能。 总的来说,这个压缩包提供的资源是学习和...
Eclipse ABAP插件是开发SAP ABAP应用程序的一个强大工具,它允许开发人员在集成的开发环境中(IDE)编写、测试和调试ABAP代码。Eclipse作为一个高度可扩展的平台,通过添加特定的插件,如ABAP插件,可以支持多种编程...
10. SAP NetWeaver Gateway和Web服务:了解如何通过ABAP与外部系统交换数据,如使用OData服务进行RESTful通信。 11. ABAP Web Dynpro:学习使用ABAP Web Dynpro进行复杂用户界面的开发,提供更加丰富的交互体验。 ...
1500+页的abap图文教程+sap标准教程
ABAP(Advanced Business Application Programming)是SAP公司开发的一种编程语言,主要用于开发SAP系统中的业务应用程序。在SAP环境中,ABAP函数模块是ABAP编程的重要组成部分,它们提供了预定义的功能,允许开发者...
本文档主要介绍了如何在SAP ABAP系统与JAVA应用程序之间通过RFC(Remote Function Call远程函数调用)实现数据交互的具体实现方法。核心需求是在给定特定的选择条件下,从SAP系统的数据库表T001中提取数据,并将这些...
在SAP系统中,ABAP调用ABAP Proxy是一种常见的技术操作,用于在不同系统间或者同一系统内的组件之间实现通信。ABAP Proxy是SAP提供的一个强大的接口技术,它允许开发者创建安全、高效的远程调用机制。接下来,我们将...