From c10a845e0cf71bc1861feba99052d7822dffbd7d Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期一, 16 六月 2025 14:13:43 +0800
Subject: [PATCH] art: SAP集成测试代码修改

---
 src/main/java/org/jeecg/modules/sap/service/impl/SAPServiceImpl.java |    6 ++++--
 src/main/java/org/jeecg/config/sap/SapRfcConnectionManager.java      |   28 ++++++++++++++++++++++++++--
 2 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/jeecg/config/sap/SapRfcConnectionManager.java b/src/main/java/org/jeecg/config/sap/SapRfcConnectionManager.java
index e120d4f..9d115cc 100644
--- a/src/main/java/org/jeecg/config/sap/SapRfcConnectionManager.java
+++ b/src/main/java/org/jeecg/config/sap/SapRfcConnectionManager.java
@@ -3,13 +3,17 @@
 import com.sap.conn.jco.*;
 import com.sap.conn.jco.ext.DestinationDataProvider;
 import com.sap.conn.jco.ext.Environment;
+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
 public class SapRfcConnectionManager {
 
     @Value("${sap.rfc.destination}")
@@ -46,7 +50,7 @@
      * @throws JCoException
      */
     @PostConstruct
-    public void init() throws JCoException {
+    public void init() throws Exception {
         Properties connectProperties = new Properties();
         connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, ashost);
         connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, sysnr);
@@ -63,7 +67,27 @@
         provider.addDestination(destinationName, connectProperties);
 
         // 璁剧疆鍏ㄥ眬鐩殑鍦版彁渚涜��
-        Environment.registerDestinationDataProvider(provider);
+//        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();
+                }
+            }
+        }
 
         // 鑾峰彇鐩殑鍦�
         this.destination = JCoDestinationManager.getDestination(destinationName);
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 d87e15f..4bcd205 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
@@ -3,6 +3,7 @@
 import com.sap.conn.jco.JCoDestination;
 import com.sap.conn.jco.JCoFunction;
 import com.sap.conn.jco.JCoParameterList;
+import com.sap.conn.jco.JCoRepository;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.config.sap.SapRfcConnectionManager;
@@ -19,10 +20,11 @@
     @Override
     public String test() {
         JCoDestination destination = connectionManager.getDestination();
-        JCoFunction function = destination.getRepository().getFunction("ZPPF_022");
+        JCoRepository repository = destination.getRepository();
+        JCoFunction function = repository.getFunction("ZPPF_022");
 
         if (function == null) {
-            throw new RuntimeException("RFC 鍑芥暟妯″潡 Z_GET_MATERIAL_INFO 鏈壘鍒帮紒");
+            throw new RuntimeException("RFC 鍑芥暟妯″潡 ZPPF_022 鏈壘鍒帮紒");
         }
 
         // 璁剧疆杈撳叆鍙傛暟

--
Gitblit v1.9.3