`
羽风之扬
  • 浏览: 86449 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java与SAP rfc建立数据传递

阅读更多

1:首先下载和SAP创建链接的jar包jco3.jar,然后跟指定SAP服务器建立连接,想要灵活性的话可以写个配置文件

package hfagro.mdm.core.utils;




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

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

/**
 * ��SAP��������
 * @author wy 
 */
public class SapConnect {
	private static final String ABAP_AS_POOLED = "ABAP_AS_WITH_POOL";
	static{
		Properties connectProperties = new Properties();

		
		//test
		connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "192.168.1.58");
		connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR,  "00");        
		connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "300");       
		connectProperties.setProperty(DestinationDataProvider.JCO_USER,   "OA_RFC");  
		connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "15235456");     
		connectProperties.setProperty(DestinationDataProvider.JCO_LANG,   "ZH");        
		//connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3");  
		//connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10");    
		connectProperties.setProperty(DestinationDataProvider.JCO_SAPROUTER,"/H/218.92.167.235/H/");  
 
		
		
		
		createDataFile(ABAP_AS_POOLED, "jcoDestination", connectProperties);
	}
	
	
	private static void createDataFile(String name, String suffix, Properties properties){
		File cfg = new File(name+"."+suffix);
		if(cfg.exists()){
			cfg.deleteOnExit();
		}
		try{
			FileOutputStream fos = new FileOutputStream(cfg, false);
			properties.store(fos, "for tests only !");
			fos.close();
		}catch (Exception e){
			System.out.println("Create Data file fault, error msg: " + e.toString());
			throw new RuntimeException("Unable to create the destination file " + cfg.getName(), e);
		}
	}
	
	
	public static JCoDestination connect(){
		JCoDestination destination =null;
		try {
			destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED);
		} catch (JCoException e) {
			System.out.println("Connect SAP fault, error msg: " + e.toString());
		}
		return destination;
	}
	
}

 2:进行数据传递

package hfagro.mdm.core.utils;

import java.util.ArrayList;
import java.util.List;

import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.JCoFunction;
import com.sap.conn.jco.JCoTable;

import hfagro.mdm.core.master.dto.AllViewInfo;

/**
 * ��sap��ȡ�ý�����
 * @author kmd
 * 2013-06-05
 *
 */
public class test1 {


	public static void Sapback(List list){
		JCoFunction function = null;

		JCoDestination destination = SapConnect.connect();
		AllViewInfo allViewInfo =null;
		try {
//			function = destination.getRepository().getFunction("ZFUN_QM_QMEL_INBOUND");
			function = destination.getRepository().getFunction("ZFUN_MDM_MATERIAL_CRT");

			JCoTable jtable = function.getTableParameterList().getTable("I_INPUT");
			allViewInfo = new AllViewInfo();
			jtable.setValue("MATERIAL", allViewInfo.getMaterial());
			jtable.setValue("MATL_TYPE", allViewInfo.getMatlType());
			jtable.setValue("MATL_DESC_ZH", allViewInfo.getMatlDescZh());
			List viewCodeList = new ArrayList();
			for(int i=0;i<viewCodeList.size();i++){
				if("K".equals(viewCodeList.get(i))){
					function.getImportParameterList().setValue("A_BASIC_VIEW", "X");
				}
				if("E".equals(viewCodeList.get(i))){
					function.getImportParameterList().setValue("A_BASIC_VIEW", "X");
				}
			}
			
			
			
			
			function.getImportParameterList().setValue("A_BASIC_VIEW", "X");
			for(int i=0;i<list.size();i++){
				jtable.appendRow();
				jtable.setRow(i);
				jtable.setValue("MATERIAL", list.get(i));
			}
			function.execute(destination);
		} catch (JCoException e) {
			e.printStackTrace();
		} 
	}
	public static void main(String[] args) {
		LoadBorrowMoneyBalance();
		List list = new ArrayList();
		list.add("000200000052");
		Sapback(list);
		list.add("0000000020");
		//Sapback(list);
		
		//System.out.println("12:34:56789".substring(0, 5));
		
		String a  = "12345_123";
		int b = a.lastIndexOf("_");
		System.out.println(a.substring(0,b));
		System.out.println(a.substring(b+1));
	}
}

 

分享到:
评论

相关推荐

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

    ### SAP ABAP与JAVA之间通过RFC传递数据实例详解 #### 需求概述 本文档主要介绍了如何在SAP ABAP系统与JAVA应用程序之间通过RFC(Remote Function Call远程函数调用)实现数据交互的具体实现方法。核心需求是在给定...

    spirngboot链接SAP RFC.都是最新版,看上传时间.7z

    SpringBoot与SAP RFC的整合是企业级应用中常见的需求,尤其在跨系统交互和数据同步的场景下。本文将详细介绍如何使用SpringBoot连接到SAP远程功能调用(Remote Function Call, RFC)并利用`sapjco30P`库进行开发。 ...

    SAP RFC基础知识

    2. **SAP系统作为调用系统与外部远程系统通信**:在这种情况下,SAP系统可能会调用非SAP系统(如Java应用程序或Web服务)的功能模块。 3. **外部系统作为调用系统与SAP系统通信**:这里指的是非SAP系统主动调用SAP...

    SAP RFC接口开发 32位操作系统

    RFC是一种标准化的、双向的通信机制,使得非SAP系统(如Java、.NET或Python应用)能够调用SAP系统中的函数模块,实现数据交换和服务集成。在RFC接口开发中,通常需要以下步骤: 1. **创建SAP函数模块**:在ABAP编程...

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

    总结,SAP jar包在Eclipse中Java使用JCO调用SAP中的RFC函数涉及到的知识点包括:SAP JCO接口、Eclipse项目配置、SAP系统连接、RFC函数调用、参数传递以及错误处理。通过这种方式,开发者可以利用Java的强大功能与SAP...

    java使用jco调用rfc案例

    Java使用JCO调用RFC(Remote...总结起来,Java通过JCO调用RFC是与SAP系统集成的关键技术,涵盖了从建立连接、调用函数模块到解析结果的全过程。理解这个过程对于任何希望整合Java和SAP系统的开发者来说都是至关重要的。

    SAP java 连接库

    JCO(Java Connector)是 SAP 提供的一种接口技术,它使得 Java 应用程序能够通过 RFC(Remote Function Call)协议与 SAP 系统进行通信。RFC 是 SAP 系统内部的一种通信机制,允许远程调用 SAP 功能模块。 压缩包...

    java、sap开发包

    Java SAP 开发包是用于Java应用程序...总之,Java SAP开发包提供了一整套工具和库,使得Java开发者能够高效地与SAP系统集成,实现数据交换和业务流程自动化。理解并熟练掌握JCo API和RFC协议是成功进行SAP集成的关键。

    sapjco最新资源包

    SAP JCo作为一个Java库,它提供了一组API,允许Java开发者创建与SAP系统交互的应用程序。通过使用SAP JCo,你可以实现以下功能: 1. **RFC通信**:RFC是SAP系统内部的一种通信机制,允许远程调用SAP的功能模块。SAP...

    java sapjco.jar dll

    2. librfc32.dll:这是一个动态链接库文件,它是SAP NetWeaver RFC库的实现,主要用于在非Java环境中(如C/C++)与SAP系统交互。在Java环境中,此DLL文件通过JCo库间接调用,提供与SAP R/3系统的通信支持。这个文件...

    SAP接口RFC

    JCO是一个用于Java应用程序和SAP系统之间通信的框架,它通过RFC库实现了与SAP系统的连接和数据传输。 #### 三、ALE/IDocs接口技术详解 ##### 1. ALE/IDocs概述 ALE(Application Link Enabling)是SAP为实现SAP...

    SAP Java Jco2.1 10 64bit Windows 平台

    最后,`sapjcorfc.dll` 是 SAP Java Connector 的 RFC 库,它作为 Java 代码与 `librfc32.dll` 之间的接口,处理 Java 和 C++ 之间的数据转换以及 RFC 调用的管理。 使用 SAP Java Connector,开发人员可以实现以下...

    最先进项目需要跟SAP进行交互

    不过,这只是一个基础验证,实际与SAP交互还需要编写Java代码来建立连接、调用RFC函数等。 在实际项目中,开发者会使用以下步骤与SAP交互: 1. **导入JCo库**:将SAP JCo的JAR文件添加到项目的类路径中,确保Java...

    jco 连接sap图文

    描述中的“相当详细”可能是指提供的PDF文档“SAP ABAP与JAVA之间通过RFC传递数据实例.pdf”。这份文档很可能会提供一个具体的示例,演示如何在ABAP(SAP的编程语言)和Java之间通过RFC进行数据交换。这通常会涉及...

    sap java connect sdk 30-31版本 JCO

    3. **创建RFC连接**: 使用JCO提供的API建立到SAP系统的连接。 4. **调用RFC函数**: 通过连接对象,可以调用SAP系统中的RFC函数模块,传递参数并接收返回值。 5. **处理结果**: 获取调用结果,解析数据,并在Java应用...

    SAP官网最新版本 sapjco3.jar

    SAP JCo(Java Connector)是SAP提供的一种软件组件,它允许Java应用程序与SAP系统进行交互,实现数据交换和功能调用。在本文中,我们将深入探讨SAP JCo3,它是SAP JCo的第三个主要版本,以及如何在不同的操作系统...

    sapjco3-17.rar

    SAP JCo(SAP Java Connector)是SAP公司开发的一款软件组件,用于在Java应用程序与SAP系统之间建立连接,实现数据交互。JCo提供了一种标准的接口,让Java开发者能够利用SAP RFC(Remote Function Call)技术,调用...

    java-sapSDK.zip

    2. **连接参数**:设置SAP系统的连接参数,如系统编号、客户端、用户、密码和RFC端点,是成功建立连接的关键。 3. **函数调用**:通过`SAPFunction`对象,可以找到并实例化SAP的ABAP函数模块。然后,设置输入参数,...

    SAP JCo Release 3.1.0

    SAP JCo(Java Connector)是SAP公司开发的一个组件,用于在Java应用程序与SAP R/3系统之间建立通信连接。SAP JCo Release 3.1.0是该组件的一个版本,它提供了对SAP系统的Java接口,使得开发者能够使用Java语言方便...

    jco3 window+linux.rar

    标题中的"jco3 window+linux.rar"表明这是一个与...理解以上知识点,开发者便能有效地利用JCo 3在Java项目中实现与SAP系统的交互,无论是数据同步、业务流程自动化还是报表提取等任务,都可以通过SAP RFC功能高效完成。

Global site tag (gtag.js) - Google Analytics