`
夜是天堂
  • 浏览: 5116 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

代码:用JCO访问RFC

阅读更多
package com.demo;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

import com.sap.conn.jco.AbapException;
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoDestinationManager;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.JCoFunction;
import com.sap.conn.jco.ext.DestinationDataProvider;

public class JCOClientDemo {
	static String ABAP_AS = "ABAP_AS_WITHOUT_POOL";
	static String ABAP_AS_POOLED = "ABAP_AS_WITH_POOL";
	static {
		Properties connectProperties = new Properties();
		connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "10.57.1.144");
		connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "10");
//		connectProperties.setProperty(DestinationDataProvider.JCO_R3NAME, "C01");
		connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "700");
		connectProperties.setProperty(DestinationDataProvider.JCO_USER, "AC_CHENTH");
		connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "accentu1");
		connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "en");
		createDataFile(ABAP_AS, "jcoDestination", connectProperties);

		connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3");
		connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "5");
		createDataFile(ABAP_AS_POOLED, "jcoDestination", connectProperties);
	}

	static void createDataFile(String name, String suffix, Properties properties) {
		File cfg = new File(name + "." + suffix);
		if (!cfg.exists()) {
			FileOutputStream fos = null;
			try {
				fos = new FileOutputStream(cfg, false);
				properties.store(fos, "for tests only !");
				fos.close();
			} catch (Exception e) {
				throw new RuntimeException("Unable to create the destination file " + cfg.getName(), e);
			} finally {
				try {
					fos.close();
				} catch (IOException e) {
				}
			}
		}
	}

	public static void call() throws JCoException {
		JCoDestination destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED);
		JCoFunction function = destination.getRepository().getFunction("STFC_CONNECTION");
		if (function == null)
			throw new RuntimeException("STFC_CONNECTION not found in SAP.");

		function.getImportParameterList().setValue("REQUTEXT", "Hello SAP");

		try {
			function.execute(destination);
		} catch (AbapException e) {
			System.out.println(e.toString());
			return;
		}

		System.out.println("STFC_CONNECTION finished:");
		System.out.println(" Echo: " + function.getExportParameterList().getString("ECHOTEXT"));
		System.out.println(" Response: " + function.getExportParameterList().getString("RESPTEXT"));
		System.out.println();
	}

	public static void main(String[] args) {
		try {
			JCOClientDemo.call();
		} catch (JCoException e) {
			e.printStackTrace();
		}
	}
}
分享到:
评论

相关推荐

    java使用jco调用rfc案例

    Java使用JCO调用RFC(Remote Function Call)是将Java应用程序与SAP系统进行集成的常见方式。在本文中,我们将深入探讨这个过程,包括如何传递不同类型的参数以及解析返回的格式。 首先,JCO(Java Connector)是...

    sapjco.jar.rar_java rfc_rfc sap_sap rfc_sapjco jar_sapjco.j

    标签中的“java_rfc”指的是使用Java语言实现的RFC功能,"rfc_sap"和"sap_rfc"都是指SAP的RFC功能,而"sapjco_jar"和"sapjco.j"可能是指SAP Java Connector的特定版本或组件。SAP Java Connector (SAPJCO)是SAP提供...

    sapjco3-call RFC-code

    "sapjco3-call RFC-code"涉及到的是利用SAP JCo 3版本的API来调用远程功能调用(RFC)的代码实践。在本篇中,我们将深入探讨SAP JCo 3、RFC以及如何编写调用RFC的Java代码。 SAP JCo 3是SAP提供的一种Java库,它...

    SAPjar包(eclipse中Java使用JCO调用SAP中的RFC函数).zip

    JCO提供了一种标准的方法,使得开发者能够从Java代码中调用SAP ABAP模块,这些模块通常表现为RFC函数模块。 在Eclipse中设置SAP JCO环境需要以下步骤: 1. 下载并安装SAP JCO库:通常可以从SAP官方网站获取最新版本...

    sapjco3最新版

    7. **示例代码**:为了帮助开发者快速上手,通常在压缩包中会包含一些示例代码,这些代码展示了如何初始化JCo连接、创建RFC连接、调用ABAP函数模块以及处理返回结果等基本操作。 在实际开发中,使用SAP JCo3可能...

    SAP JCOAPI服务配置与程序编写

    3. **导入SAP元数据**: 使用JCO提供的工具,如`jco@RepositoryAdmin`,导入SAP系统中的函数模块或表的元数据到Repository。 4. **配置连接参数**: 设置SAP系统的连接参数,如系统ID、客户ID、用户名、密码和主机等。...

    Sapjco2.1.8 X86&X64版

    - 编写Java代码,利用SAP JCo提供的API来实现与SAP系统的交互,如创建`SAPConnection`对象,调用`SAPFunction`进行RFC调用。 总之,Sapjco2.1.8是Java开发者与SAP系统进行集成的重要工具,它提供了一个方便、高效的...

    JCO3.0安装包 SAP ABAP

    9. **安全性**:使用JCO进行连接时,应考虑安全措施,如使用SSL加密通信、定期更新凭证和监控访问日志,以防止未授权访问。 10. **SAP NetWeaver Gateway**:JCO 3.0在SAP NetWeaver Gateway环境中尤为重要,因为...

    JCO for sap

    JCO允许开发人员使用Java编程语言来访问和操作SAP系统的业务数据和功能,从而实现跨平台的数据交换和集成。 在【SAPJCo_Doku_3.0_EN.pdf】文档中,我们可能找到关于JCO 3.0版本的详细技术指南。这个文档通常会涵盖...

    JCO调用SAP 包

    在Java代码中,开发者需要创建JCO的客户端实例,通过`JCoDestinationManager.getDestination()`方法获取目的地对象,然后通过目的地对象来访问SAP系统。 4. RFC调用: RFC是SAP中的一种远程调用机制,允许跨系统...

    JCO3.0.zip

    JCO库允许开发人员使用Java语言来访问和操作SAP系统的业务数据和功能,从而实现跨平台的集成。JCO 3.0是这个连接器的一个重要版本,提供了对不同操作系统,如Linux和Windows的支持。 JCO 3.0的主要特点和功能包括:...

    sap jco rfc abap bapi java jar sapjco3.dll

    "examples"目录可能包含了一些示例代码,帮助开发者理解如何使用SAP JCO进行开发。"javadoc"则是SAP JCO的API文档,详细说明了每个类和方法的功能,是开发者查阅和学习的重要参考资料。 使用SAP JCO进行开发时,...

    sapjco3配置和测试源码

    5. 测试连接:使用JCo3提供的示例代码或自己的代码,测试与SAP系统的连接。 在Linux环境下配置SAP JCo3的流程类似,但有几点不同: 1. 环境变量:在Linux中,除了`PATH`,可能还需要设置`LD_LIBRARY_PATH`来包含JCo...

    SAPJCO V3 64bit AMD

    5. **调用SAP功能**:使用SAP JCO API执行RFC调用或BAPI操作。 6. **测试和优化**:确保所有功能正常工作,并根据需要调整性能参数。 在实际应用中,开发者还需要熟悉SAP的ABAP编程语言,以便理解SAP系统中的函数...

    SAP Java Jco3 0 13 Windows 全平台 32bit 64bit

    JCo 实现了 RFC 协议,使得 Java 开发者可以通过编写简单的代码来调用 SAP 的 RFC 函数。 3. **JCo3 0 13**: 这是 SAP Java Connector 的一个特定版本,编号为 3.0.13。每个版本都有可能包含性能优化、新功能、错误...

    sapjco3.jar下载

    通过使用 SAP JCo3,开发者可以在 Java 应用中调用 SAP RFC(Remote Function Call)函数模块,实现数据交换和业务流程集成。 然而,`sapjco3.dll` 文件是 SAP JCo3 的 Windows 版本的本地库,它提供了 JCo3 需要的...

    sapjco3.0.14

    考虑到安全性,建议使用加密的网络连接(如SSL/TLS),并且限制对SAP系统的访问权限,只允许必要的RFC调用。 总结,SAP JCo 3.0.14版本是Java与SAP系统集成的关键工具,其多平台支持和持续优化为开发者提供了更...

    jco所用jar包及相关配置文件

    这个jar包提供了对SAP RFC功能的访问,如创建连接、定义数据类型、调用RFC函数模块等。 2. sapjco3.dll:这是一个动态链接库文件,主要服务于Windows操作系统。它是JCo在Java层与SAP的RFC库之间的桥梁,负责处理与...

    sapjco linux

    JCo提供了两种主要的接口:Remote Function Module (RFM)调用和RFC(Remote Function Call)编程模型,使得开发者可以轻松地访问SAP业务逻辑。 2. sapjco3.jar: 这是SAP JCo的Java库文件,包含了运行在Java环境中...

Global site tag (gtag.js) - Google Analytics