`
羽风之扬
  • 浏览: 83684 次
  • 性别: 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));
	}
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics