springboot链接sap传递数据

参考: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;
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值