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));
}
}