- 浏览: 1990410 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (509)
- JavaEE (122)
- Oracle数据库 (29)
- JavaScript (37)
- SAP (5)
- MySql数据库 (7)
- JavaSE (4)
- Ajax (1)
- jQuery (13)
- SSH框架 (36)
- Web Service (10)
- JSF框架 (2)
- JBPM (0)
- ireport报表 (2)
- ibatis (5)
- Hibernate (31)
- JSP (11)
- Tomcat 服务器 (20)
- Other (19)
- JavaWeb (4)
- Maven (11)
- OSWorkFlow (10)
- HTML (13)
- Exception汇总 (7)
- SVN (2)
- 笑话 (1)
- JSTL (1)
- WebSphere Message Broker (13)
- ANT命令 (3)
- Liunx (12)
- Struts2 (26)
- Eclipse (6)
- DOS (3)
- Flex (11)
- WebSphere (1)
- 开发常用工具 (3)
- Junit (2)
- EJB (4)
- Struts1.2 (2)
- Jboss (1)
- Android (2)
- Java框架源码解析 (1)
- Spring (4)
- MyBatis (6)
- SpringMVC (4)
- Jetty (2)
- 数据库表设计 (1)
- SSO (4)
最新评论
-
贝塔ZQ:
也可以试试PageOffice插件,觉得更简单点
Jxl操作Excel设置背景、字体颜色、对齐方式、列的宽度 -
jia1208:
...
Could not publish server configuration for Tomcat v6.0 Server at localhost. -
u011274527:
赞
java.io.EOFException java.io.ObjectInputStream$PeekInputStream.readFully 错误 -
旭旭小牛啦:
怎么没哟了,继续赛
jQuery 选择器 -
wzw3919:
100行会报空指针
Java 解压缩zip文件
package pack.java.jsf.connsapserver; import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Properties; import com.sap.conn.jco.AbapException; import com.sap.conn.jco.JCoAttributes; import com.sap.conn.jco.JCoDestination; import com.sap.conn.jco.JCoDestinationManager; import com.sap.conn.jco.JCoException; import com.sap.conn.jco.JCoField; import com.sap.conn.jco.JCoFunction; import com.sap.conn.jco.JCoListMetaData; import com.sap.conn.jco.JCoMetaData; import com.sap.conn.jco.JCoStructure; import com.sap.conn.jco.JCoTable; import com.sap.conn.jco.ext.DestinationDataProvider; /** * Java调用SAP服务类; * @author Administrator * */ public class CallSapService { private static String ABAP_AS_POOLED = "ABAP_AS_WITH_POOL"; private JCoDestination destination=null; JCoFunction function = null; static { Properties connectProperties = new Properties(); connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "192.168.12.2"); connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "00"); connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "800"); connectProperties.setProperty(DestinationDataProvider.JCO_USER, "admin"); connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "testUser"); connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "en"); //设置连接池容量; connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3"); //最多的连接数; connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10"); //创建数据文件;使用连接池文件; createDataFile(ABAP_AS_POOLED, "jcoDestination", connectProperties); } /** * 创建数据文件; * @param name * @param suffix * @param properties */ private static void createDataFile(String name, String suffix, Properties properties) { //文件名+.jcoDestination后缀; File cfg = new File(name+"."+suffix); //如果文件不存在; if(!cfg.exists()) { try { FileOutputStream fos = new FileOutputStream(cfg, false); //在属性文件存放; properties.store(fos, "This Is Config File !"); fos.close(); } catch (Exception e) { throw new RuntimeException("Unable to create the destination file " + cfg.getName(), e); } } } /*** * 使用连接池获得连接对象; * @throws JCoException */ public String connectUsingPool() throws JCoException { //通过连接池获得连接; JCoDestination destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED); destination.ping(); //获得SAP系统中所有的属性值; JCoAttributes jCoAttributes=destination.getAttributes(); System.out.println("Attributes:"); System.out.println(jCoAttributes.toString()); return jCoAttributes.toString(); } /** * 简单的调用Function Module. * @throws JCoException */ public String simpleCall(String functionName,Map<String,Object> importMap,List<String> exportList) throws JCoException { //通过ABAP_AS_POOLED(连接池)来获得JCoDestination对象; JCoDestination destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED); //通过destination目的地对象,取回function module. 返回一个function 对象;"ZHT_HELLOWORLD_FUNCTION" JCoFunction function = destination.getRepository().getFunction(functionName); if(function == null) //抛出运行时异常;方法,不存在SAP系统中. throw new RuntimeException("BAPI_COMPANYCODE_GETLIST not found in SAP."); //为function module中的导入的参数设置值;REQUTEXT ->代表导入参数名称,->Hello SAP代表导入参数的值; if(importMap!=null && importMap.size()>0){ for(Iterator<String> iterator=importMap.keySet().iterator();iterator.hasNext();){ String key=iterator.next(); //为Function Module中的import导入参数,设置值; function.getImportParameterList().setValue(key,importMap.get(key)); } } try { //执行此destination目的地对象; function.execute(destination); } catch(AbapException e) { System.out.println(e.toString()); return null; } String result=null; //调用Function Module中 Export 返回参数(Z_RESULT).;进行输出; for(String exportName:exportList){ //输出; result=function.getExportParameterList().getString(exportName); } return result; } /** * 调用SAP系统中Function Module结构Structure; * @throws JCoException */ public Map<String,String> workWithStructure(String functionName,String structure) throws JCoException { Map<String,String> map =new HashMap<String, String>(); //通过ABAP_AS_POOLED(连接池)来获得JCoDestination对象; JCoDestination destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED); //通过destination目的地对象,取回function module. 返回一个function 对象;"RFC_SYSTEM_INFO" JCoFunction function = destination.getRepository().getFunction(functionName); if(function == null){ throw new RuntimeException("function not found in SAP."); } try { //远程执行function module. function.execute(destination); } catch(AbapException e) { throw new RuntimeException(e); } //根据export中的结构名获得Structure.-->"RFCSI_EXPORT" JCoStructure exportStructure = function.getExportParameterList().getStructure(structure); //destination.getAttributes().getSystemID() -> RD1系统标识符; System.out.println("System info for " + destination.getAttributes().getSystemID() + ":\n"); //exportStructure.getMetaData() 获得对应的Structure中的,Structure Name; for(int i = 0; i < exportStructure.getMetaData().getFieldCount(); i++) { //为Structure设置值; exportStructure.setValue("NAME", "Admin"); exportStructure.setValue("AGE", 20); exportStructure.setValue("ADDRESS", "湖南株洲"); exportStructure.setValue("PHONE", "95599"); //获取Structre 中Field Name的名称 和值; System.out.println(exportStructure.getMetaData().getName(i) + ":\t" + exportStructure.getString(i)); } //JCo still supports the JCoFields, but direct access via getXX is more efficient as field iterator for(JCoField field : exportStructure) { //输出Structture中field name 和 field value; map.put(field.getName(),field.getString()); } return map; } /** * 调用SAP系统中Function Module的Table->InnerTable; * 方法一; * @throws JCoException */ public List<String> workWithTable() throws JCoException { List<String> list= new ArrayList<String>(); JCoDestination destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED); //根据Function Module中的返回 Table Name,获得JCOFunction对象;-->BAPI_COMPANYCODE_GETLIST; JCoFunction function = destination.getRepository().getFunction("BAPI_COMPANYCODE_GETLIST"); if(function == null){ throw new RuntimeException("BAPI_COMPANYCODE_GETLIST not found in SAP."); } try { //远程执行; function.execute(destination); } catch(AbapException e) { System.out.println(e.toString()); return null; } //获得结构Structure; JCoStructure returnStructure = function.getExportParameterList().getStructure("RETURN"); //判断type不等于空; if (! (returnStructure.getString("TYPE").equals("")||returnStructure.getString("TYPE").equals("S")) ) { throw new RuntimeException(returnStructure.getString("MESSAGE")); } //获得Function Module->Tables中的->COMPANYCODE_LIST 内表; JCoTable codes = function.getTableParameterList().getTable("COMPANYCODE_LIST"); //循环内表里面所以的行; for (int i = 0; i < codes.getNumRows(); i++) { //为行设置值; codes.setRow(i); //输出内表中的COMP_CODE 字段 和 COMP_Name字段的值; System.out.println(codes.getString("COMP_CODE") + '\t' + codes.getString("COMP_NAME")); } //循环为 codes.firstRow(); for (int i = 0; i < codes.getNumRows(); i++, codes.nextRow()) { //获得 名称为:BAPI_COMPANYCODE_GETDETAIL的function; function = destination.getRepository().getFunction("BAPI_COMPANYCODE_GETDETAIL"); if (function == null) throw new RuntimeException("BAPI_COMPANYCODE_GETDETAIL not found in SAP."); //为BAPI_COMPANYCODE_GETDETAIL->Import->COMPANYCODEID 字段设置值; function.getImportParameterList().setValue("COMPANYCODEID", codes.getString("COMP_CODE")); //为BAPI_COMPANYCODE_GETDETAIL->Export->COMPANYCODEID 字段设置值; function.getExportParameterList().setActive("COMPANYCODE_ADDRESS",false); try { //远程执行; function.execute(destination); } catch (AbapException e) { System.out.println(e.toString()); return null; } //获得 名称为:BAPI_COMPANYCODE_GETDETAIL Function中->Export->RETURN Field 的Structure; returnStructure = function.getExportParameterList().getStructure("RETURN"); //判断是否是系统类型;S,W,""; if (! (returnStructure.getString("TYPE").equals("") || returnStructure.getString("TYPE").equals("S") || returnStructure.getString("TYPE").equals("W")) ) { throw new RuntimeException(returnStructure.getString("MESSAGE")); } //获得名称为 COMPANYCODE_DETAIL 的Structure 结构; JCoStructure detail = function.getExportParameterList().getStructure("COMPANYCODE_DETAIL"); //输出结构中的字段; System.out.println(detail.getString("COMP_CODE") + '\t' + detail.getString("COUNTRY") + '\t' + detail.getString("CITY")); list.add(detail.getString("COMP_CODE") + '\t' +detail.getString("COUNTRY") + '\t' +detail.getString("CITY")); } return list; } /** * 处理内表,方法二; * @return * @throws JCoException */ public List<String> workInnerTable() throws JCoException{ List<String> list=new ArrayList<String>(); JCoDestination jcoDestination=JCoDestinationManager.getDestination(ABAP_AS_POOLED); JCoFunction function = jcoDestination.getRepository().getFunction("ZHT_INNERTABLE_FUNCTION"); if(function == null){ throw new RuntimeException("方法不存在SAP系统中."); } function.execute(jcoDestination); function.getImportParameterList().setValue("PARAMETER", "SELECT"); String str=function.getExportParameterList().getString("ZHOBBIES"); System.out.println("我的爱好是:"+str); JCoTable table = function.getTableParameterList().getTable("Z_DATA_LISTTABLE"); JCoTable infoTable=function.getTableParameterList().getTable("Z_DATA_INFOTABLE"); System.out.println("循环输出第一个(Z_DATA_LISTTABLE)内表:"); infoTable.deleteAllRows(); for(int i = 0 ;i <table.getNumRows();i++){ table.setRow(i); System.out.println(table.getRow()+"\t"+table.getString("NAME")+"\t"+table.getString("AGE")+"\t"+table.getString("ADDRESS")+"\t"+table.getString("PHONE")); list.add(table.getString("NAME")+" \t"+table.getString("AGE")+" \t"+table.getString("ADDRESS")+" \t"+table.getString("PHONE")); } System.out.println("\n循环输出第二个(Z_DATA_INFOTABLE)内表:"); for(int i = 0 ;i<infoTable.getNumRows();i++){ infoTable.setRow(i); System.out.println(infoTable.getRow()+"\t"+infoTable.getString("NAME")+"\t"+infoTable.getString("AGE")+"\t"+infoTable.getString("ADDRESS")+"\t"+infoTable.getString("PHONE")); } function.execute(jcoDestination); return list; } /*** * 插入数据到SAP系统中; * @param functionName * @param tableName * @param dataList * @return * @throws JCoException */ public List<Object[]> insertDATATOSAPTable(String functionName,String tableName,List<Object[]> dataList) throws JCoException{ //获得连接池连接;返回目标对象; JCoDestination destination=JCoDestinationManager.getDestination(ABAP_AS_POOLED); //从目标对象中的仓库,获得function Info. JCoFunction function=destination.getRepository().getFunctionTemplate(functionName).getFunction(); if(function == null){ throw new RuntimeException(functionName+"此方法不存在SAP系统中!!"); } function.execute(destination); function.getImportParameterList().setValue("PARAMETER", "INSERT"); JCoTable infoTable =function.getTableParameterList().getTable(tableName); if(infoTable == null){ throw new RuntimeException(tableName+"内表不存在"+functionName+"中!!"); } int i=0; for (Object[] obj :dataList) { infoTable.insertRow(i); infoTable.setValue("NAME", obj[0]); infoTable.setValue("AGE", obj[1]!=null?Integer.parseInt(obj[1].toString()):obj[1]); infoTable.setValue("ADDRESS", obj[2]); infoTable.setValue("PHONE", obj[3]); i+=1; } function.execute(destination); return dataList; } /** * 查询SAP透明表中的所有数据; * @param functionName * @param tableName * @return * @throws JCoException */ public List<Object[]> searchSAPDATA(String functionName,String tableName) throws JCoException{ JCoDestination destination=JCoDestinationManager.getDestination(ABAP_AS_POOLED); JCoFunction function=destination.getRepository().getFunctionTemplate(functionName).getFunction(); if(function == null){ throw new RuntimeException(functionName+"function not find in SAP!!"); } List<Object[]> list=new ArrayList<Object[]>(); JCoTable table=function.getTableParameterList().getTable(tableName); function.getImportParameterList().setValue("PARAMETER", "SELECT"); try{ //远程执行; function.execute(destination); }catch(AbapException e){ System.out.println(e.toString()); return null; } if(table!=null){ //获得内表中的所有记录; for(int i=0;i<table.getNumRows();i++){ Object[] obj=new Object[4]; table.setRow(i); //获得内表中所有的字段; for(int x=0;x<table.getNumColumns();x++){ obj[x]=table.getString(table.getMetaData().getName(x)); } list.add(obj); } } return list; } /*** * 整合import,export,table中设置值和取值的方法; * @param functionName * @throws JCoException */ public Object[] getBapi_All_Data(String functionName,Map<String,List<Object>> setImportMap,Map<String,Map<String,List<Object>>> setBapiTable) throws JCoException{ //通过连接池获得连接; this.destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED); //获得JcoFunction; this.function=destination.getRepository().getFunctionTemplate(functionName).getFunction(); if(function == null){ throw new RuntimeException(functionName+" function module not find in sap!"); } //初始化返回值数组; Object[] objArray =new Object[2]; //第一步,设置Import值; this.setBapiImport(setImportMap); //第二步,设置Table的值; this.setBapiTable(setBapiTable); //第三步远程执行; function.execute(destination); //第四步,取出table的值; Map<String,List<Object>> bapiTableMap=this.getBapiTable(); objArray[0] = bapiTableMap; //第五步,取出export的值; Map<String,List<Object>> bapiExportMap = this.getBapiExport(); objArray[1] = bapiExportMap; return objArray; } /*** * 调用BAPI_PR_CREATE Function Module Data,import; * @return * @throws JCoException */ public void setBapiImport(Map<String,List<Object>> map) throws JCoException{ JCoListMetaData metaDataList=this.function.getImportParameterList().getListMetaData(); if(metaDataList!=null && metaDataList.getFieldCount()>0){ //get PRHEADER,PRHEADERX,TESTRUN Name. for(int i=0;i<metaDataList.getFieldCount();i++){ int type = metaDataList.getType(metaDataList.getName(i)); JCoStructure structure = null; if(type!=0){ structure = this.function.getImportParameterList().getStructure(i); } String FiledName = metaDataList.getName(i); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~FiledName~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); if(map!=null && map.size()>0){ for(Iterator<String> iterator=map.keySet().iterator();iterator.hasNext();){ String key = iterator.next(); List<Object> listValue=map.get(key); if(FiledName.equals(key)){ try { if(structure!=null && structure.getFieldCount()>0){ for(int x = 0;x<listValue.size();x++){ System.out.println(structure.getMetaData().getName(x)+","+listValue.get(x)); structure.setValue(structure.getMetaData().getName(x),listValue.get(x)); } } if(type==0){ System.out.println(FiledName+","+listValue.get(0)); function.getImportParameterList().setValue(metaDataList.getName(i),listValue.get(0)); } } catch (Exception e) { function.getImportParameterList().setValue(metaDataList.getName(i),listValue.get(0)); String str=function.getImportParameterList().getString(metaDataList.getName(i)); System.out.println(metaDataList.getName(i)+":"+str+"\n"); } } } } System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~END~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n"); } } } /*** * 调用ZBAPI_PR_CREATE Function Module Data,export; * @return * @throws JCoException * @throws JCoException */ public Map<String,List<Object>> getBapiExport() throws JCoException{ Map<String,List<Object>> map =new HashMap<String,List<Object>>(); JCoListMetaData listMetaData=this.function.getExportParameterList().getListMetaData(); if(listMetaData != null && listMetaData.getFieldCount()>0){ for(int i = 0;i<listMetaData.getFieldCount();i++){ //获得Export里面Filed的字段的名称; String filedName=listMetaData.getName(i); System.out.println("Export里面的字段名称:"+filedName); JCoStructure structure = null; try { int type=listMetaData.getType(filedName); if(type!=0){ structure = this.function.getExportParameterList().getStructure(filedName); } if(structure!=null && structure.getFieldCount()>0){ List<Object> list=new ArrayList<Object>(); for(int x=0;x<structure.getFieldCount();x++){ list.add(structure.getValue(x)); } map.put(filedName, list); } if(type==0){ List<Object> list=new ArrayList<Object>(); String export_result=this.function.getExportParameterList().getString(filedName); list.add(export_result); map.put(filedName, list); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); List<Object> list=new ArrayList<Object>(); String str=this.function.getExportParameterList().getString(filedName); list.add(str); map.put(filedName, list); } } } return map; } /*** * 调用ZBAPI_PR_CREATE Function Module Data,Table;设置值; * @return * @throws JCoException */ public Map<String,Map<String,List<Object>>> setBapiTable(Map<String,Map<String,List<Object>>> tableMap){ JCoListMetaData listMetaData=this.function.getTableParameterList().getListMetaData(); if(listMetaData!=null && listMetaData.getFieldCount()>0){ //要设置值的 table名称有:PRITEM,PRITEMX,PRACCOUNT,PRACCOUNTX, for(int i = 0;i<listMetaData.getFieldCount();i++){ //获得所有tableName; String tableName=listMetaData.getName(i); JCoTable table=this.function.getTableParameterList().getTable(tableName); if(table!=null && table.getFieldCount()>0){ //System.out.println("表的名称:"+tableName+"字段总数:"+table.getFieldCount()); for(Iterator<String> iterator=tableMap.keySet().iterator();iterator.hasNext();){ String key=iterator.next(); Map<String,List<Object>> map2=tableMap.get(key); int y = 0; for(Iterator<String> iterator2=map2.keySet().iterator();iterator2.hasNext();){ String key2=iterator2.next(); List<Object> listObjValue=map2.get(key2); if(key2!=null && !"".equals(key2)){ //example:PRITEM1,PRITEM2 -> PRITEM,PRITEM,PRITEMX1,PRITEMX2->PRITEMX,PRITEMX. key2=key2.substring(0, key2.length()-1); } if(listObjValue!=null && listObjValue.size()>0 && tableName.equals(key2)){ System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"+tableName+"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); table.insertRow(y); for(int x = 0 ;x<listObjValue.size();x++){ //set value. table.setValue(table.getMetaData().getName(x),listObjValue.get(x)); System.out.println("y:"+y+","+table.getMetaData().getName(x)+":"+listObjValue.get(x)); } y +=1; System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"+tableName+"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); } } } } } } return tableMap; } /*** * 调用ZBAPI_PR_CREATE Function Module Data,export; * @return * @throws JCoException */ public Map<String,List<Object>> getBapiTable(){ Map<String,List<Object>> map = new HashMap<String, List<Object>>(); JCoListMetaData listMetaData=this.function.getTableParameterList().getListMetaData(); if(listMetaData!=null && listMetaData.getFieldCount()>0){ //要设置值的 table名称:PRITEM,PRITEMX,PRACCOUNT,PRACCOUNTX, for(int i = 0;i<listMetaData.getFieldCount();i++){ //获得所有tableName; String tableName=listMetaData.getName(i); JCoTable table=this.function.getTableParameterList().getTable(tableName); if(table!=null && table.getFieldCount()>0){ List<Object> list=new ArrayList<Object>(); System.out.println("表的名称:"+tableName+"字段总数:"+table.getFieldCount()); if(tableName .equals("RETURN")){ for(int x = 0;x<table.getNumRows();x++){ table.setRow(x); //table.getMetaData().getName(x)获得字段名;getValue() //获得值; //table.setValue(table.getMetaData().getName(x),121212); //设置值; list.add(table.getValue("MESSAGE")); } } map.put(tableName, list); } } } return map; } }
发表评论
-
SAP常用系统函数归纳
2011-03-01 15:01 2028SAP常用系统函数归纳 函数名 描述 CONVERSIO ... -
SAP ABAP PA certification 培训笔记
2010-11-20 20:39 3247Table key 由三部分构成 1. ... -
ABAP 对透明表的添加,修改,删除,查询等操作
2010-11-18 13:07 3666--建立一个structure. DATA: BEGIN O ... -
一个完整的SAP的Abap例子(idoc,edi文件的相互转换)
2010-11-15 13:24 6717*&------------------------- ...
相关推荐
【SAP Java Connector (JCO) 3.1.1】是SAP提供的一款用于Java应用程序与SAP系统间通信的接口库。JCO允许Java开发者通过编程方式访问和交互SAP R/3或ABAP系统,实现了SAP与Java环境的无缝集成。 JCO的核心功能在于...
提供sapjco3.dll和sapjco3.jar还有sapjco3.so包下载 64位 SAP Java Connector(JCo) JCo是一个高性能的,基于JNI的中间件,它实现了SAP的RFC(Remote Function Call)协议
标题中的"SAPJCO3.dll SAPJCO3.jar"指的是SAP Java Connector 3的动态链接库(.dll)和Java档案(.jar),这是连接SAP系统与Java应用程序的关键组件。版本号"7210,1120,28,55042"代表了该软件的具体更新迭代,其中...
这时,就需要使用到SAP提供的Java连接器,即JCo(Java Connector)。本文将详细介绍如何使用JAVA链接SAP的相关jar包,包括sapjco3.jar、sapjco3.dll和libsapjco3.so,并指导如何将它们导入到Maven项目中。 首先,...
在这种场景下,SAP提供了Java Connector (简称JCo),它是一个用于在Java应用程序和SAP系统之间建立通信的库。JCo允许Java开发者通过编程的方式调用SAP的ABAP函数模块,实现跨系统的数据交换。本篇将详细讲解如何使用...
为了与其他系统集成,SAP提供了多种接口技术,其中之一就是通过Java Connector(简称JCo)进行通信。本文将详细介绍“Sapjco3.jar”和“Sapjco3.dll 64位”这两个关键组件,以及如何在64位系统中使用它们。 首先,`...
SAP JCo(Java Connector)是SAP公司提供的一种软件组件,用于在Java应用程序与SAP系统之间建立连接,实现数据交换和交互。`sapjco3.jar`是这个组件的核心库文件,它包含了运行SAP Java连接器所需的类和方法。在本...
2. **sapjco-1.1.jar 和 sapjco-2.1.jar**:这两个文件代表SAP Java Connector的不同旧版本。它们提供了与早期SAP系统交互的接口。尽管现在可能已经不再推荐使用这些较旧的版本,但在某些情况下,为了兼容性或特定...
SAP JCo (Java Connector) 是一款用于连接Java应用程序与SAP系统的关键组件,它提供了在Java环境中访问SAP R/3系统或者SAP NetWeaver应用服务器的能力。"sapjco30"指的是SAP JCo的第三版,这个版本对应于JCo 3.0,是...
标签中的“java_rfc”指的是使用Java语言实现的RFC功能,"rfc_sap"和"sap_rfc"都是指SAP的RFC功能,而"sapjco_jar"和"sapjco.j"可能是指SAP Java Connector的特定版本或组件。SAP Java Connector (SAPJCO)是SAP提供...
SAP Java Connector(简称JCo)是SAP提供的一种用于Java应用程序与SAP系统之间通信的中间件。它基于JNI(Java Native Interface),实现了SAP的Remote Function Call(RFC)协议,使得Java开发者能够调用SAP R/3系统...
标题中的"libsapjco3.so", "sapjco3.dll", 和 "sapjco3.jar" 是SAP Java Connector (SAP JCo) 的关键组件,用于在Java应用程序和SAP系统之间建立通信。这些文件是不同操作系统平台上的实现,它们提供了与SAP Remote ...
标题中的“sapjco3.dll 32位 64位”指的是SAP Java Connector (简称JCo)的动态链接库文件,它在Windows操作系统环境下提供了32位和64位两种版本。SAP JCo是SAP公司推出的一个软件组件,它允许Java应用程序与SAP系统...
SAP JCo (Java Connector) 是 SAP AG 开发的一个软件组件,它允许 Java 应用程序与 SAP 系统进行无缝通信。SAP JCo 提供了一种接口,通过这个接口,开发者可以利用 Java 语言编写应用程序来访问和操作 SAP R/3 或...
标题 "sapjco3.zip sapjco3.dll" 提供了关于SAP Java Connector (SAP JCo)的关键信息,这是一个用于Java应用程序与SAP系统间集成的重要组件。SAP JCo允许开发者通过Java代码与SAP NetWeaver应用服务器进行通信,执行...
SAP Java Connector(通常缩写为JCo)是SAP公司提供的一种用于Java应用程序与SAP系统间交互的API。这个连接器允许开发者使用Java语言编写应用,与SAP R/3或SAP NetWeaver系统进行数据交换,实现集成和自动化任务。...
要与SAP系统进行交互,开发者通常会使用SAP提供的Java Connector,也就是JCo(Java Connector)来实现。标题和描述中提到的"sapjco3.dll"和"libsapjco3.so"是SAP JCo的关键组件,它们是Java Connector的动态链接库...
【标题】"sapjco3.zip" 是一个包含Java连接SAP所需库的压缩文件,主要提供了SAP Java Connector(简称JCo)的版本3。这个工具包使得Java应用程序能够与SAP系统进行通信,利用SAP的远程功能调用(RFC)技术。 【描述...
JAVA访问SAP R3系统RFC接口所需类库 SAP JAVA CONNECTOR 3.1.2 2019年10月6日发布版本