`
JerryWang_SAP
  • 浏览: 1032615 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数

阅读更多

最近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应用的全部源代码在我的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云平台。具体步骤参考我的知乎文章:

使用Eclipse开发Java应用并部署到SAP云平台

在微信里测试一下:

 

输出:

 

 

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

 

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

 

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

 
 
0
0
分享到:
评论

相关推荐

    SAP S4 HANA On-Premise和S4 HANA Cloud

    9. 开发方式:On-Premise使用ABAP在GUI客户端开发,Cloud在SAP Cloud Platform上开发,支持UI5等现代技术。 10. 系统架构:On-Premise有多层环境,如开发、测试和生产环境,Cloud则简化为测试和生产系统。 对于期望...

    SAP变式配置-相关性程序如何调用ABAP函数[参照].pdf

    SAP变式配置-相关性程序如何调用ABAP函数 SAP变式配置是一种复杂的系统配置,相关性程序是其中的一部分,主要用于实现一些简单的逻辑判断。然而,对于一些负责的算法,相关性程序无法直接实现,需要通过调用ABAP...

    sap abap调用java生成的webservice手册

    【SAP ABAP调用Java生成的Web Service手册】 在SAP系统中,与外部服务进行交互时,经常需要调用由Java等其他语言编写的Web Service。本手册详细介绍了如何在MyEclipse环境中生成Web Service,并在SAP ABAP环境中...

    JAVA连接SAP的官方接口文档

    JCo3是该库的第三版,它支持Java SE和Java EE环境,允许开发者在Java应用中调用SAP的ABAP函数模块、BAPIs(Business Application Programming Interfaces)以及IDocs(Intermediate Documents)。 1. **安装与配置...

    SAP Java connector SAP JCon (2.1.9) jar 包 Windows 平台

    SAP Java Connector,通常简称为SAP JCo,是一种用于在Java应用程序与SAP系统之间建立连接的软件组件。这个2.1.9版本的JAR包是专门为Windows平台设计的,确保在system32和sys64x环境下能够顺利运行。在本文中,我们...

    Java 调用 SAP RFC 案例

    首先,SAP RFC是SAP NetWeaver ABAP平台提供的一种服务接口,它允许外部系统以远程调用的方式与SAP系统进行通信。RFC基于ABAP工作流,允许调用者执行SAP系统中的事务代码、函数模块等,从而实现数据交换和业务流程...

    使用JCo远程调用SAP系统函数

    在本文中,我们将了解如何使用 Java 程序远程调用 ABAP 函数,使用 SAP 提供的 RFC 针对 Java 程序的 API——JCo。 首先,需要安装 JCo,安装过程中需要三个文件:librfc32.dll、sapjcorfc.dll、sapjco.jar。首先,...

    sap java connector jco 3.1.1.7z

    JCO的核心功能在于提供了一组API,使得Java开发者可以创建ABAP远程函数调用(RFC)客户端,这些函数调用在SAP系统中定义并可被外部系统调用。它还支持传输BAPI(Business Application Programming Interface)以及...

    ABAP调用函数自动填充模式

    在SAP ABAP编程环境中,开发人员经常需要调用各种函数模块来实现特定的功能。"ABAP调用函数自动填充模式"是一种提高开发效率的工具,它允许在编写代码时快速填充函数调用的参数,并自动声明对应的变量。这个功能在...

    JAVA 调用SAP SOAP webservice.docx

    在本文中,我们将详细介绍如何使用 JAVA 调用 SAP SOAP webservice,包括配置 SAP 登录信息、创建 java 项目、添加 web 服务客户端、生成 JAVA 类、调用接口等步骤。 配置 SAP 登录信息 在使用 JAVA 调用 SAP SOAP...

    java +abap+rfc

    在本项目中,我们使用了JCo3(Java Connector version 3)库,它是SAP提供的Java API,用于与SAP R/3系统进行集成。以下是关于"java + abap + rfc"的相关知识点: 1. **Java Connector (JCo)**: JCo是SAP为Java...

    JAVA调用SAP函数指南.pdf

    它支持与SAP R/2以及SAP R/3 3.1及后续版本的通信,无论是Java调用ABAP(即SAP内部的编程语言)还是ABAP调用Java,都得到了充分的支持。SAP JCo的设计理念在于将复杂的细节如代码页、数据类型转换、连接池管理等隐藏...

    SAP资料集有ABAP-PP-MM-RFC-BAPI-JCO等.rar

    6. Java与SAP的集成(JCO):"Java_SAP_Integration.pdf"可能是关于如何使用Java进行SAP集成的指南,详细介绍了如何使用JCO库创建Java应用,以调用SAP系统的服务和功能。 总的来说,这个压缩包提供的资源是学习和...

    ABAP 函数介绍

    ABAP 函数调用是 SAP 系统中的一种常用技术,用于实现业务逻辑的复杂处理。该技术可以实现同步调用和异步调用两种方式,本文将对这两种方式进行详细的介绍。 1. 异步调用 异步调用是指在主程序中调用函数模块,但...

    abap plug-in eclipse

    Eclipse ABAP插件是开发SAP ABAP应用程序的一个强大工具,它允许开发人员在集成的开发环境中(IDE)编写、测试和调试ABAP代码。Eclipse作为一个高度可扩展的平台,通过添加特定的插件,如ABAP插件,可以支持多种编程...

    1500+页的ABAP图文教程+SAP标准教程

    10. SAP NetWeaver Gateway和Web服务:了解如何通过ABAP与外部系统交换数据,如使用OData服务进行RESTful通信。 11. ABAP Web Dynpro:学习使用ABAP Web Dynpro进行复杂用户界面的开发,提供更加丰富的交互体验。 ...

    1500+页的abap图文教程+sap标准教程

    1500+页的abap图文教程+sap标准教程 

    abap 函数大全 abap function

    ABAP(Advanced Business Application Programming)是SAP公司开发的一种编程语言,主要用于开发SAP系统中的业务应用程序。在SAP环境中,ABAP函数模块是ABAP编程的重要组成部分,它们提供了预定义的功能,允许开发者...

    SAP ABAP与JAVA之间通过RFC传递数据实例

    本文档主要介绍了如何在SAP ABAP系统与JAVA应用程序之间通过RFC(Remote Function Call远程函数调用)实现数据交互的具体实现方法。核心需求是在给定特定的选择条件下,从SAP系统的数据库表T001中提取数据,并将这些...

    SAP Java Connector3.0

    SAP Java Connector 3.0(简称JCo3)是SAP公司开发的一款用于Java应用程序与SAP系统间通信的接口库。它提供了一种标准的、基于Java的API,使得开发者可以方便地在Java环境中集成SAP业务逻辑,实现数据交换和功能调用...

Global site tag (gtag.js) - Google Analytics