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

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章