- 浏览: 42041 次
- 性别:
- 来自: 北京
最新评论
-
resunly:
抽点时间解决问题,实在找不到原因,就去springboot官网 ...
springBoot+spring data jpa 由于版本不同一起的问题
SAPService.java
package com.resunly.sap; /** * Created by IntelliJ IDEA. * User: resunly * Date: 11-12-22 * Time: 下午4:24 * To change this template use File | Settings | File Templates. */ import com.sap.mw.jco.IFunctionTemplate; import com.sap.mw.jco.JCO; import java.util.List; import java.util.Properties; abstract public class SAPService { //連接创建對象 abstract protected JCO.Client getConnection(); //释放连接对象 abstract protected void releaseConnection(JCO.Client myConnection); //连接参数 protected Properties getSAPProperties() { Properties logonProperties = new Properties(); logonProperties.put("jco.client.ashost", "10.134.99.100"); //SAP系統的IP位址 logonProperties.put("jco.client.client", "810"); //要登錄的用戶端 logonProperties.put("jco.client.sysnr", "02"); //系統編號 00 logonProperties.put("jco.client.user", "userName"); //登錄用戶名 logonProperties.put("jco.client.passwd","password"); //用戶登錄口令 return logonProperties; } public String sendDataToSAP(String mesCode,String holdFlag,List<String []> list){ String result = ""; JCO.Client myConnection = getConnection(); myConnection.connect(); //進行實際連接 try { //如果連接不為null並且處於活動狀態 if (myConnection != null && myConnection.isAlive()) { //從連接獲得一個邏輯意義上的“倉庫”物件(Repository) JCO.Repository myRepository = new JCO.Repository("Repository", //只是一個名字 myConnection); //活動的連接 //要調用的SAP函數名稱 String strFunc = "ZRFC_SD_PCE_0109"; //從“倉庫”中獲得一個指定函數名的函數範本 IFunctionTemplate ft = myRepository.getFunctionTemplate(strFunc.toUpperCase()); //從這個函數範本獲得該SAP函數的物件 JCO.Function function = ft.getFunction(); //獲得函數的import參數列表 JCO.ParameterList input = function.getImportParameterList(); //JCO.Structure sFrom = input.getStructure("DESTINATION_FROM"); input.setValue("PNK1","PLANT"); input.setValue("O","SEND_FLAG"); input.setValue(mesCode,"MSG_CODE"); input.setValue(holdFlag,"HOLD_FLAG"); //设置table参数 JCO.Table tDateRange = function.getTableParameterList().getTable("CMSHOLD"); for(int i = 0; i<list.size(); i++){ String [] tempStr = list.get(i); tDateRange.appendRow(); //添加行 tDateRange.setRow(i); //定位行位 tDateRange.setValue(tempStr[0], "PO_NUM"); tDateRange.setValue(tempStr[1], "PO_TIE"); tDateRange.setValue(tempStr[2], "MSG_TEXT"); } //執行函數 myConnection.execute(function); //在執行函數後可用相同方式獲得輸出結果 JCO.ParameterList output = function.getExportParameterList(); result = (String)output.getValue("ZRETURN"); releaseConnection(myConnection); } else { throw new Exception("No connection!"); } } catch (Exception e) { e.printStackTrace(); } finally { //斷開連接 try { releaseConnection(myConnection); } catch (Exception e) { e.printStackTrace(); } } return result; } }
SAPServiceImpl.java
package com.resunly.sap; /** * Created by IntelliJ IDEA. * User: resunly * Date: 11-12-22 * Time: 下午4:24 * To change this template use File | Settings | File Templates. */ import com.sap.mw.jco.JCO; import java.util.List; public class SAPServiceImpl extends SAPService { protected JCO.Client getConnection() { System.out.println("=====SAPServiceImpl.getconnect====="); //用上述條件創建一個連接物件 JCO.Client myConnection = JCO.createClient(this.getSAPProperties()); /*獲得一個到SAP系統的連接 END */ return myConnection; } protected void releaseConnection(JCO.Client myConnection) { System.out.println("=====SAPServiceImpl.releaseConnection====="); //斷開連接 myConnection.disconnect(); } public String callSAPMeth(String mesCode,String holdFlag,List<String []> list) { SAPService service = new SAPServiceImpl(); String result = ""; try { result = service.sendDataToSAP(mesCode, holdFlag,list); System.out.println(result); } catch (Exception e) { e.printStackTrace(); } return result; } }
test.java
package com.resunly.sap; import java.util.ArrayList; import java.util.List; /** * Created by IntelliJ IDEA. * User: Administrator * Date: 11-12-22 * Time: 下午4:24 * To change this template use File | Settings | File Templates. */ public class test { public static void main(String args[]) { SAPServiceImpl sapser = new SAPServiceImpl(); //SAPServicePoolImpl sp = new SAPServicePoolImpl(); List<String[]> list = new ArrayList<String[]>(); String[] array = new String[3]; array[0] = "20101215001"; array[1] = "1"; array[2] = "666666"; list.add(array); System.out.println(sapser.callSAPMeth("D05", "N", list)); } }
- sap.zip (3.6 KB)
- 下载次数: 14
发表评论
-
springBoot+spring data jpa 由于版本不同一起的问题
2017-08-31 09:02 0前几天看见springDataJpa不用先建立table , ... -
springBoot+spring data jpa 由于版本不同一起的问题
2017-08-31 09:02 4413前几天看见springDataJpa不用先建立table ... -
java 集合之List
2016-06-26 19:18 0Connection 接口下面有两个接口 Set ,Li ... -
java 集合之Connection
2016-06-26 17:29 1196废话不多说 直接代码 ... -
java JVM 学习笔记一虚拟机的体系结构
2016-06-13 16:25 1067JVM java 的虚拟机.从来没有深入的研究过。这几天有时 ... -
java 常量池
2016-06-02 15:42 0逛论坛发现一个面试题,发现错了,于是才发现有了常量池的概念, ... -
设计模式-工厂模式
2016-05-26 15:05 560工厂模式,顾名思义就是一个工厂要能根据不同原料来生产不同的 ... -
qita
2011-03-01 16:01 850jingshancipa -
linux shell
2011-01-11 17:43 0linux 整的我好惨哦 ! 那会去学学去 shell ... -
测试环境wt
2010-10-19 18:45 790自己的测试 -
axis-bin-1_4.tar.gz
2010-10-17 18:08 1182留着自己用的 -
axis 1.4教程及必备包
2010-10-17 18:05 1480找的很辛苦 ,留存 -
double类型相除的小数位数保留问题
2010-06-23 16:30 7721今天让小数位数的保留问题折磨了半天,自己搞定是搞定,但很不理想 ... -
简单的jxl导出Excel文档
2010-06-03 02:08 0这里看到有个最简单的方法 ,收藏了! public sta ... -
jxl导出excel 文档
2010-06-03 02:05 1132刚工作就碰到让转个excel 文档,当时贴了别人的.后来有时间 ...
相关推荐
JCo连接池可以在Java应用程序中实现连接池的功能,用于连接SAP R3系统。 在Java应用程序中使用JCo连接池需要首先创建JCo连接池对象,然后使用该对象来连接SAP R3系统。在连接SAP R3系统时,需要提供SAP系统的连接...
在这个主题中,我们将深入探讨Java JCO连接SAP的相关插件和jar包,以及如何使用它们来实现数据交换。 首先,我们需要了解JCO的核心组件——`jco.jar`。这是一个包含SAP JCO接口和实现的Java库,它是所有Java JCO...
同时,对于大型项目,还需要考虑性能优化,如连接池的使用,以减少创建和销毁连接的开销。 总之,SAP Java Jco3.0为Java开发者提供了一个强大且灵活的工具,使他们能够在Java环境中无缝地集成和操作SAP系统,从而...
SAP Java Connector (SAP JCo) 是JAVA与SAP相互通信的...直接连接需要开发者来控制连接的创建和释放,使用连接池方式可以让池来管理连接的分配、管理和释放,可以最大限度的节省系统开销,相比直接方式优势也是明显的。
同时,还需要理解如何处理异常和错误,以及如何优化性能,比如通过连接池管理多个连接。 总之,SAP Java Connector 3.1.1是Java开发者连接SAP系统的重要工具,通过它的使用,开发者能够构建各种集成解决方案,实现...
SAP Java Connector (JCo) 3.0 是一个关键组件,它允许Java应用程序与SAP系统进行通信,实现数据交换和业务流程集成。JCo3.0支持多种操作系统平台,包括Windows(32位和64位)、Mac OS(64位)以及Linux(64位),...
总的来说,Java通过JCo连接SAP是一个涉及网络通信、数据交换和业务逻辑调用的复杂过程。理解JCo的工作原理和使用方法,对于开发与SAP系统集成的应用程序至关重要。在实际项目中,还需要结合具体的业务需求和SAP系统...
标题中的“jco连接sap图文”指的是使用Java Connector (JCO) 这一技术来实现Java应用程序与SAP系统的交互。JCO是SAP提供的一个API库,它允许非SAP系统(例如Java应用程序)与SAP R/3系统进行通信,主要通过Remote ...
此外,JCo还支持连接池,这对于提高系统性能和减少资源消耗非常有帮助。开发者可以通过配置文件设置连接池的大小,从而在多线程环境下更好地管理与SAP的连接。 在使用JCo时,开发人员需要遵循一些最佳实践。例如,...
7. **性能优化**:在大量调用SAP系统时,考虑使用连接池来复用连接,减少每次连接建立的时间开销。此外,合理安排并发调用,避免对SAP系统造成过大的压力。 8. **IDoc交互**:除了直接调用函数模块,JCo3还支持处理...
10. **最佳实践**: 使用 JCo 进行开发时,遵循最佳实践,比如使用连接池来管理 SAP 连接,确保及时关闭资源,以及在设计时充分考虑可扩展性和维护性。 综上所述,SAP Java Connector 3.0.13 是一个强大的工具,它使...
1. **选择连接池实现**:根据项目需求和性能考虑,选择合适的连接池库。例如,HikariCP以其高性能和低资源占用而广受欢迎,而C3P0则提供更多的配置选项。 2. **下载JDBC驱动**:连接数据库需要相应的JDBC驱动,例如...
在实际开发中,还可能涉及到错误处理、连接池管理、多线程处理等高级主题。"插件jar包"可能包含了对这些复杂情况的支持,或者提供了额外的工具和实用程序,以简化开发过程。 总之,JCo3是Java开发者与SAP系统集成的...
确保遵循最佳实践,例如在高并发场景下,使用连接池来复用JCoDestination对象,以减少创建和销毁连接的开销。 总的来说,Java与SAP的交互涉及JCO包的使用,包括jar包的导入和dll文件的正确配置。通过这个接口,Java...
JCo提供了两种连接方式:直接连接(Direct Connections)和连接池(Connection Pools)。 - **直接连接**:这种方式适用于简单且短时间的连接需求。示例代码如下: ```java import com.sap.mw.jco.*; public ...
TutorialConnect2方法展示了如何使用JCo连接池。首先通过JCO.ClientPoolManager获取指定名称的连接池,如果池不存在,则需要加载配置文件(如logon.properties)并创建连接池。配置文件中可以定义连接池的名称、最大...