From 0ecd8b8c158436b23298b66b64eaef0438b6425b Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期二, 17 六月 2025 09:36:53 +0800 Subject: [PATCH] art: SAP集成测试代码修改 --- src/main/java/org/jeecg/config/sap/CustomDestinationDataProvider.java | 66 +++++++++++---------- src/main/java/org/jeecg/modules/sap/service/impl/SAPServiceImpl.java | 8 +- src/main/resources/application-dev.yml | 7 + src/main/java/org/jeecg/config/sap/SapRfcConnectionManager.java | 59 ++++--------------- 4 files changed, 58 insertions(+), 82 deletions(-) diff --git a/src/main/java/org/jeecg/config/sap/CustomDestinationDataProvider.java b/src/main/java/org/jeecg/config/sap/CustomDestinationDataProvider.java index 3263bc1..2af713a 100644 --- a/src/main/java/org/jeecg/config/sap/CustomDestinationDataProvider.java +++ b/src/main/java/org/jeecg/config/sap/CustomDestinationDataProvider.java @@ -1,31 +1,35 @@ -//package org.jeecg.config.sap; -// -//import com.sap.conn.jco.ext.*; -// -//import java.util.Properties; -// -//public class CustomDestinationDataProvider implements DestinationDataProvider { -// -// private final Properties properties = new Properties(); -// -// public void addDestination(String destinationName, Properties connectProperties) { -// properties.put(destinationName, connectProperties); -// } -// -// @Override -// public boolean supportsEvents() { -// return false; -// } -// -// @Override -// public void setDestinationDataEventListener(DestinationDataEventListener destinationDataEventListener) { -// -// } -// -// @Override -// public Properties getDestinationProperties(String destinationName) { -// return properties.getProperty(destinationName) != null -// ? (Properties) properties.get(destinationName) -// : null; -// } -//} +package org.jeecg.config.sap; + +import com.sap.conn.jco.ext.*; + +import java.util.Properties; + +public class CustomDestinationDataProvider implements DestinationDataProvider { + + private final String destName; + private final Properties properties; + + public CustomDestinationDataProvider(String destName, Properties props) { + this.destName = destName; + this.properties = props; + } + + + @Override + public boolean supportsEvents() { + return false; + } + + @Override + public void setDestinationDataEventListener(DestinationDataEventListener destinationDataEventListener) { + + } + + @Override + public Properties getDestinationProperties(String destinationName) { + if (destName.equals(destinationName)) { + return properties; + } + return null; + } +} diff --git a/src/main/java/org/jeecg/config/sap/SapRfcConnectionManager.java b/src/main/java/org/jeecg/config/sap/SapRfcConnectionManager.java index 5463389..876add9 100644 --- a/src/main/java/org/jeecg/config/sap/SapRfcConnectionManager.java +++ b/src/main/java/org/jeecg/config/sap/SapRfcConnectionManager.java @@ -1,19 +1,21 @@ package org.jeecg.config.sap; -import com.sap.conn.jco.*; +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; import com.sap.conn.jco.ext.Environment; +import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; -import java.io.File; -import java.io.FileOutputStream; import java.util.Properties; @Component @Slf4j +@Getter public class SapRfcConnectionManager { @Value("${sap.rfc.destination}") @@ -37,10 +39,13 @@ @Value("${sap.rfc.lang}") private String lang; - private String poolSize = "5"; + @Value("${sap.rfc.poolSize}") + private String poolSize; - private String idleTimeout = "10000"; + @Value("${sap.rfc.expirationTime}") + private String expirationTime; + @Value("${sap.rfc.peekLimit}") private String peekLimit = "10"; private JCoDestination destination; @@ -60,53 +65,15 @@ connectProperties.setProperty(DestinationDataProvider.JCO_LANG, lang); connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, peekLimit); connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, poolSize); - connectProperties.setProperty(DestinationDataProvider.JCO_EXPIRATION_TIME, idleTimeout); + connectProperties.setProperty(DestinationDataProvider.JCO_EXPIRATION_TIME, expirationTime); // 鍒涘缓鍔ㄦ�佺洰鐨勫湴锛堥伩鍏嶄緷璧� SM59 閰嶇疆锛� -// CustomDestinationDataProvider provider = new CustomDestinationDataProvider(); -// provider.addDestination(destinationName, connectProperties); + CustomDestinationDataProvider provider = new CustomDestinationDataProvider(destinationName, connectProperties); // 璁剧疆鍏ㄥ眬鐩殑鍦版彁渚涜�� -// Environment.registerDestinationDataProvider(provider); - - log.info("properties = " + connectProperties); - - //鐢熸垚閰嶇疆鏂囦欢锛孞CoDestinationManager.getDestination()璋冪敤鏃朵細闇�瑕佽杩炴帴閰嶇疆鏂囦欢锛屽悗缂�鍚嶉渶瑕佷负jcoDestination - FileOutputStream fos = null; - String suffix = "jcoDestination"; - File cfg = new File(destinationName + "." + suffix); - if (!cfg.exists()) { - try { - fos = new FileOutputStream(cfg, false); - connectProperties.store(fos, "for tests only !"); - fos.close(); - } catch (Exception var9) { - throw new Exception("Unable to create the destination file " + cfg.getName(), var9); - } finally { - if (null != fos) { - fos.close(); - } - } - } + Environment.registerDestinationDataProvider(provider); // 鑾峰彇鐩殑鍦� this.destination = JCoDestinationManager.getDestination(destinationName); - } - - /** - * - * @return - */ - public JCoDestination getDestination() { - return destination; - } - - /** - * - */ - public void destroy() { - if (destination != null) { -// destination; - } } } \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/sap/service/impl/SAPServiceImpl.java b/src/main/java/org/jeecg/modules/sap/service/impl/SAPServiceImpl.java index 4bcd205..665b844 100644 --- a/src/main/java/org/jeecg/modules/sap/service/impl/SAPServiceImpl.java +++ b/src/main/java/org/jeecg/modules/sap/service/impl/SAPServiceImpl.java @@ -11,6 +11,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Arrays; +import java.util.Collections; + @Service @Slf4j public class SAPServiceImpl implements SAPService { @@ -28,9 +31,8 @@ } // 璁剧疆杈撳叆鍙傛暟 -// JCoParameterList input = function.getImportParameterList(); -// input.setValue("MATERIAL_ID", materialId); // 鍙傛暟鍚嶉渶涓� SAP 鍑芥暟瀹氫箟涓�鑷� -// function.getImportParameterList().setValue("MATERIAL_ID", 0); + JCoParameterList input = function.getImportParameterList(); + input.setValue("ZTAB_WERKS", Collections.singletonList("2301")); //鍙傛暟鍚嶉渶涓� SAP 鍑芥暟瀹氫箟涓�鑷� // 鎵ц璋冪敤 function.execute(destination); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 2dc1942..6a86568 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -317,10 +317,13 @@ workFolder: D:\\hy_test\\b sap: rfc: - destination: ZPPF_022 # SM59 涓厤缃殑 RFC 鐩爣鍚嶇О + destination: SAP_RFC_DEST # 鑷畾涔夌殑鐩爣鍦板潃 RFC 鐩爣鍚嶇О ashost: 10.101.0.188 # SAP 涓绘満鍦板潃 sysnr: '00' # 绯荤粺缂栧彿 client: 800 # 瀹㈡埛绔紪鍙� user: SLSAP_JK # 鐢ㄦ埛鍚� passwd: 112233 # 瀵嗙爜 - lang: ZH # 璇█ \ No newline at end of file + lang: ZH # 璇█ + poolSize: 5 # 绾跨▼姹犳暟閲� + expirationTime: 10000 # 杩囨湡鏃堕棿 + peekLimit: 10 # 宄板�� -- Gitblit v1.9.3