pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/org/jeecg/config/sap/CustomDestinationDataProvider.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/org/jeecg/config/sap/SapRfcConnectionManager.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/org/jeecg/modules/sap/controller/SAPTestController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/org/jeecg/modules/sap/service/SAPService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/org/jeecg/modules/sap/service/impl/SAPServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application-dev.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/lib/libsapjco3.so | 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/lib/sapjco3.dll | 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/lib/sapjco3.jar | 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/lib/sapjco3.pdb | 补丁 | 查看 | 原始文档 | blame | 历史 |
pom.xml
@@ -521,6 +521,15 @@ <artifactId>xercesImpl</artifactId> <version>2.12.0</version> </dependency> <!--å¼å ¥sapä¾èµ--> <dependency> <groupId>com.sap</groupId> <artifactId>sapjco3</artifactId> <version>3.1.0</version> <scope>system</scope> <systemPath>${project.basedir}/src/main/resources/lib/sapjco3.jar</systemPath> </dependency> </dependencies> <build> src/main/java/org/jeecg/config/sap/CustomDestinationDataProvider.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ 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; } } src/main/java/org/jeecg/config/sap/SapRfcConnectionManager.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,88 @@ package org.jeecg.config.sap; import com.sap.conn.jco.*; import com.sap.conn.jco.ext.DestinationDataProvider; import com.sap.conn.jco.ext.Environment; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import java.util.Properties; @Component public class SapRfcConnectionManager { @Value("${sap.rfc.destination}") private String destinationName; @Value("${sap.rfc.ashost}") private String ashost; @Value("${sap.rfc.sysnr}") private String sysnr; @Value("${sap.rfc.client}") private String client; @Value("${sap.rfc.user}") private String user; @Value("${sap.rfc.passwd}") private String passwd; @Value("${sap.rfc.lang}") private String lang; private String poolSize = "5"; private String idleTimeout = "10000"; private String peekLimit = "10"; private JCoDestination destination; /** * * @throws JCoException */ @PostConstruct public void init() throws JCoException { Properties connectProperties = new Properties(); connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, ashost); connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, sysnr); connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, client); connectProperties.setProperty(DestinationDataProvider.JCO_USER, user); connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, passwd); 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); // åå»ºå¨æç®çå°ï¼é¿å ä¾èµ SM59 é ç½®ï¼ CustomDestinationDataProvider provider = new CustomDestinationDataProvider(); provider.addDestination(destinationName, connectProperties); // è®¾ç½®å ¨å±ç®çå°æä¾è Environment.registerDestinationDataProvider(provider); // è·åç®çå° this.destination = JCoDestinationManager.getDestination(destinationName); } /** * * @return */ public JCoDestination getDestination() { return destination; } /** * */ public void destroy() { if (destination != null) { // destination; } } } src/main/java/org/jeecg/modules/sap/controller/SAPTestController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,27 @@ package org.jeecg.modules.sap.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.sap.service.SAPService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @Api(tags = "SAPéææµè¯") @RestController @RequestMapping("/sap/client") @Slf4j public class SAPTestController { @Autowired private SAPService sapService; @ApiOperation(value = "SAPéææµè¯-æµè¯æ¥å£", notes = "SAPéææµè¯-æµè¯æ¥å£") @GetMapping("/test") public Result<?> test() { String test = sapService.test(); return Result.ok(test); } } src/main/java/org/jeecg/modules/sap/service/SAPService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,5 @@ package org.jeecg.modules.sap.service; public interface SAPService { String test(); } src/main/java/org/jeecg/modules/sap/service/impl/SAPServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,42 @@ package org.jeecg.modules.sap.service.impl; import com.sap.conn.jco.JCoDestination; import com.sap.conn.jco.JCoFunction; import com.sap.conn.jco.JCoParameterList; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.jeecg.config.sap.SapRfcConnectionManager; import org.jeecg.modules.sap.service.SAPService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service @Slf4j public class SAPServiceImpl implements SAPService { @Autowired private SapRfcConnectionManager connectionManager; @SneakyThrows @Override public String test() { JCoDestination destination = connectionManager.getDestination(); JCoFunction function = destination.getRepository().getFunction("ZPPF_022"); if (function == null) { throw new RuntimeException("RFC 彿°æ¨¡å Z_GET_MATERIAL_INFO æªæ¾å°ï¼"); } // 设置è¾å ¥åæ° // JCoParameterList input = function.getImportParameterList(); // input.setValue("MATERIAL_ID", materialId); // åæ°åéä¸ SAP 彿°å®ä¹ä¸è´ // function.getImportParameterList().setValue("MATERIAL_ID", 0); // æ§è¡è°ç¨ function.execute(destination); // è·åè¾åºåæ° JCoParameterList output = function.getExportParameterList(); // String materialName = output.getString("MATERIAL_NAME"); // åæ°åéä¸ SAP 彿°å®ä¹ä¸è´ return ""; } } src/main/resources/application-dev.yml
@@ -315,3 +315,12 @@ secretFolder: D:\\hy_test\\a #å·¥æ§ç½çæ§ncæä»¶å¤¹ workFolder: D:\\hy_test\\b sap: rfc: destination: ZPPF_022 # SM59 ä¸é ç½®ç RFC ç®æ åç§° ashost: 10.101.0.188 # SAP 主æºå°å sysnr: 00 # ç³»ç»ç¼å· client: 800 # 客æ·ç«¯ç¼å· user: SLSAP_JK # ç¨æ·å passwd: 112233 # å¯ç lang: ZH # è¯è¨ src/main/resources/lib/libsapjco3.soBinary files differ
src/main/resources/lib/sapjco3.dllBinary files differ
src/main/resources/lib/sapjco3.jarBinary files differ
src/main/resources/lib/sapjco3.pdbBinary files differ