参考:https://blog.csdn.net/wenfeifang/article/details/88675998
sap那需要传递两个参数,返回结构
package com.shengquan.sapcode.util;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Properties;
import com.alibaba.fastjson.JSON;
import com.sap.conn.jco.*;
import com.sap.conn.jco.ext.DestinationDataProvider;
// 连接池
public class SapConnect {
static final String ABAP_AS_POOLED = "ABAP5_WITHOUT_POOL";//配置文件名
static final String ABAP_T = "ABAP5_WITHOUT_POOL";
static{
Properties connectProperties = new Properties();
//test
connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "");// IP
connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "");// 系统编号
connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, ""); // 客户端编号
connectProperties.setProperty(DestinationDataProvider.JCO_USER, "");// 用户名
connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "");// 密码
connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "ZH");// 语言
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 void main(String[] args) {
String bapiFunctionName = "WC_NM_ZJD";
JCoFunction function = null;
//JCoFunction是一个接口,代表SAP系统的函数库
JCoDestination destination = null;
try {
//连接SAP,获取一个连接对象
destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED);
System.out.println("链接成功");
//获取到SAP的函数
function = destination.getRepository().getFunction(bapiFunctionName);
System.out.println("function=="+function);
JCoParameterList input = function.getImportParameterList(); // 获得函数的import参数列表
input.setValue("I_MONI","模拟数据");
input.setValue("I_MONE", "名称");
function.execute(destination);
JCoParameterList output = function.getExportParameterList(); // 获得Export变量列表。
JCoStructure jiegou=output.getStructure("E_NM");//获取结构
System.out.println("变量=="+jiegou);
String bb=jiegou.getString("TYPE");//返回结构中的某一个字段
System.out.println("变量=="+bb);
} catch (JCoException e) {
System.out.println("链接失败");
e.printStackTrace();
}
}
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;
}
}