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(Remote Function Call)是将Java应用程序与SAP系统进行集成的常见方式。在本文中,我们将深入探讨这个过程,包括如何传递不同类型的参数以及解析返回的格式。 首先,JCO(Java Connector)是...
标签中的“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"涉及到的是利用SAP JCo 3版本的API来调用远程功能调用(RFC)的代码实践。在本篇中,我们将深入探讨SAP JCo 3、RFC以及如何编写调用RFC的Java代码。 SAP JCo 3是SAP提供的一种Java库,它...
JCO提供了一种标准的方法,使得开发者能够从Java代码中调用SAP ABAP模块,这些模块通常表现为RFC函数模块。 在Eclipse中设置SAP JCO环境需要以下步骤: 1. 下载并安装SAP JCO库:通常可以从SAP官方网站获取最新版本...
7. **示例代码**:为了帮助开发者快速上手,通常在压缩包中会包含一些示例代码,这些代码展示了如何初始化JCo连接、创建RFC连接、调用ABAP函数模块以及处理返回结果等基本操作。 在实际开发中,使用SAP JCo3可能...
3. **导入SAP元数据**: 使用JCO提供的工具,如`jco@RepositoryAdmin`,导入SAP系统中的函数模块或表的元数据到Repository。 4. **配置连接参数**: 设置SAP系统的连接参数,如系统ID、客户ID、用户名、密码和主机等。...
- 编写Java代码,利用SAP JCo提供的API来实现与SAP系统的交互,如创建`SAPConnection`对象,调用`SAPFunction`进行RFC调用。 总之,Sapjco2.1.8是Java开发者与SAP系统进行集成的重要工具,它提供了一个方便、高效的...
9. **安全性**:使用JCO进行连接时,应考虑安全措施,如使用SSL加密通信、定期更新凭证和监控访问日志,以防止未授权访问。 10. **SAP NetWeaver Gateway**:JCO 3.0在SAP NetWeaver Gateway环境中尤为重要,因为...
JCO允许开发人员使用Java编程语言来访问和操作SAP系统的业务数据和功能,从而实现跨平台的数据交换和集成。 在【SAPJCo_Doku_3.0_EN.pdf】文档中,我们可能找到关于JCO 3.0版本的详细技术指南。这个文档通常会涵盖...
在Java代码中,开发者需要创建JCO的客户端实例,通过`JCoDestinationManager.getDestination()`方法获取目的地对象,然后通过目的地对象来访问SAP系统。 4. RFC调用: RFC是SAP中的一种远程调用机制,允许跨系统...
JCO库允许开发人员使用Java语言来访问和操作SAP系统的业务数据和功能,从而实现跨平台的集成。JCO 3.0是这个连接器的一个重要版本,提供了对不同操作系统,如Linux和Windows的支持。 JCO 3.0的主要特点和功能包括:...
"examples"目录可能包含了一些示例代码,帮助开发者理解如何使用SAP JCO进行开发。"javadoc"则是SAP JCO的API文档,详细说明了每个类和方法的功能,是开发者查阅和学习的重要参考资料。 使用SAP JCO进行开发时,...
5. 测试连接:使用JCo3提供的示例代码或自己的代码,测试与SAP系统的连接。 在Linux环境下配置SAP JCo3的流程类似,但有几点不同: 1. 环境变量:在Linux中,除了`PATH`,可能还需要设置`LD_LIBRARY_PATH`来包含JCo...
5. **调用SAP功能**:使用SAP JCO API执行RFC调用或BAPI操作。 6. **测试和优化**:确保所有功能正常工作,并根据需要调整性能参数。 在实际应用中,开发者还需要熟悉SAP的ABAP编程语言,以便理解SAP系统中的函数...
JCo 实现了 RFC 协议,使得 Java 开发者可以通过编写简单的代码来调用 SAP 的 RFC 函数。 3. **JCo3 0 13**: 这是 SAP Java Connector 的一个特定版本,编号为 3.0.13。每个版本都有可能包含性能优化、新功能、错误...
通过使用 SAP JCo3,开发者可以在 Java 应用中调用 SAP RFC(Remote Function Call)函数模块,实现数据交换和业务流程集成。 然而,`sapjco3.dll` 文件是 SAP JCo3 的 Windows 版本的本地库,它提供了 JCo3 需要的...
考虑到安全性,建议使用加密的网络连接(如SSL/TLS),并且限制对SAP系统的访问权限,只允许必要的RFC调用。 总结,SAP JCo 3.0.14版本是Java与SAP系统集成的关键工具,其多平台支持和持续优化为开发者提供了更...
这个jar包提供了对SAP RFC功能的访问,如创建连接、定义数据类型、调用RFC函数模块等。 2. sapjco3.dll:这是一个动态链接库文件,主要服务于Windows操作系统。它是JCo在Java层与SAP的RFC库之间的桥梁,负责处理与...
JCo提供了两种主要的接口:Remote Function Module (RFM)调用和RFC(Remote Function Call)编程模型,使得开发者可以轻松地访问SAP业务逻辑。 2. sapjco3.jar: 这是SAP JCo的Java库文件,包含了运行在Java环境中...