日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java调用sap接口_(二)通过JAVA调用SAP接口 (增加一二级参数)

發布時間:2024/10/12 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java调用sap接口_(二)通过JAVA调用SAP接口 (增加一二级参数) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/*** Created by gang.xu01@hand-china.com on 2018/12/4*/

public classMultiFromSAP {/*** description: 從sap獲取數據的工具類

*

* @date 2018/12/6 10:17 AM

*@authorgang.xu01@hand-china.com

*@paramsapConn sap連接

*@paraminterfaceName 接口名稱

*@paramfirstParamKey 一級參數key 用逗號分隔

*@paramfirstParamValue 一級參數value 用逗號分隔

*@paramsecondParamKey 二級參數key 用逗號分隔

*@paramsecondParamValue 二級參數value 用逗號分隔

*

*@returnList*/

public static ListgetSapData(SapConn sapConn, String interfaceName,

String firstParamKey, String firstParamValue,

String secondParamKey, String secondParamValue) {

List returnList = new ArrayList();

JCoFunction function;

JCoDestination destination=SAPConnUtils.connect(sapConn);

System.out.println("正在從SAP獲取數據");try{//調用interface函數

function =destination.getRepository().getFunction(interfaceName);//遍歷全部得到的table并處理

for(JCoField field : function.getTableParameterList()) {//按照需求可以整理出一條一條的數據以便插入數據庫

JCoTable responseTable =field.getTable();//一級參數

if("".equals(firstParamKey) || "".equals(firstParamValue)) {//不需要參數

}else{

String[] paramKeys= firstParamKey.split(",");

String[] paramValues= firstParamValue.split(",");for (int i = 0; i < paramKeys.length; i++) {

function.getImportParameterList().setValue(paramKeys[i],"null".equals(paramValues[i]) ? "": paramValues[i]);

}

}//二級參數

if("".equals(secondParamKey) || "".equals(secondParamValue)) {//不需要參數

}else{

responseTable.appendRow();

String[] paramKeys= secondParamKey.split(",");

String[] paramValues= secondParamValue.split(",");for (int i = 0; i < paramKeys.length; i++) {

responseTable.setValue(paramKeys[i],"null".equals(paramValues[i]) ? "": paramValues[i]);

}

}//調用函數得到返回結果(調用接口把值放到function中)

function.execute(destination);//獲取metaData(包含表的關鍵信息)

JCoRecordMetaData metaData =responseTable.getRecordMetaData();

SapData sapData= newSapData();

sapData.setFieldCount(metaData.getFieldCount());

String[] name= newString[sapData.getFieldCount()];

List> sapList = new ArrayList>();//獲取全部名稱

for (int j = 0; j < sapData.getFieldCount(); j++) {

name[j]=metaData.getName(j);

}

sapData.setFieldNames(name);//獲取全部數據

for (int i = 0; i < responseTable.getNumRows(); i++) {

responseTable.setRow(i);

Map sapMap = new HashMap();for(String fieldName : sapData.getFieldNames()) {

sapMap.put(fieldName, responseTable.getString (fieldName));

}

sapList.add(sapMap);

}

sapData.setData(sapList);

returnList.add(sapData);

}

}catch(Exception e) {

e.printStackTrace();return null;

}

System.out.println("獲取成功");returnreturnList;

}

}

總結

以上是生活随笔為你收集整理的java调用sap接口_(二)通过JAVA调用SAP接口 (增加一二级参数)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。