sap与oa系统集成

上传人:F****n 文档编号:97969660 上传时间:2019-09-07 格式:DOC 页数:67 大小:725.50KB
返回 下载 相关 举报
sap与oa系统集成_第1页
第1页 / 共67页
sap与oa系统集成_第2页
第2页 / 共67页
sap与oa系统集成_第3页
第3页 / 共67页
sap与oa系统集成_第4页
第4页 / 共67页
sap与oa系统集成_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《sap与oa系统集成》由会员分享,可在线阅读,更多相关《sap与oa系统集成(67页珍藏版)》请在金锄头文库上搜索。

1、密级:密级: 工程硕士专业学位论文(设计)工程硕士专业学位论文(设计) 题题 目:目: SAP 与与 OA 系系统统集成集成 作作 者:者: 栾栾 为为 民民 完成日期:完成日期: 2011-9-26 培养培养单单位:位: 四四 川川 大大 学学 指指导导教教师师: : 张张 蕾蕾 工程工程领领域:域: 软软 件件 工工 程程 授予学位日期:授予学位日期: 年年 月月 日日 I SAPSAP 与与 OAOA 系统集成系统集成 软件工程 领域 研究生 栾为民 指导老师 张蕾 童增荣 当前,企业竞争愈发激烈,要求企业内部、合作的企业之间必须快速、实时的传 递、审批诸如生产、销售等商务信息,如果可以

2、共用一套信息系统,必然会带来巨大 的好处;但大多数情况下,我们必须整合各企业原有的、不同的信息系统,实现系统 间的信息交换。SAP 使用 Java Properties: Properties logonProperties = new Properties(); logonProperties.put(“jco.client.ashost“,“10.0.0.11“); logonProperties.put(“jco.client.client“,“000“); logonProperties.put(“jco.client.passwd“,“minisap“); logonProperti

3、es.put(“jco.client.sysnr“,“00“); logonProperties.put(“jco.client.user“,“DDIC“); JCO.Client myConnection = JCO.createClient( logonProperties ) 9. 10 第一种方式比较简单,所有的参数都直接写在代码中。相比之下,第二种方式使 用 Java Properties,它好处在于,除了硬编码这种方式之外,用户也可以将连接信 息保存在一个单独的.properties 文件中。这样即使连接信息改变也无需改变代码, 只需要修改.properties 文件中的数据即可。

4、关于.properties 文件的用法,请参考 相关的 Java 语言教程。 JCO.Client 提供方法 connect 方法来建立从当前 Java 进程到 SAP 服务器的连接。 this.myConnection.connect(); 可以使用 isAlive 方法来获取一个连接的状态,还可以使用 disconnect 方法来 关闭一个连接: if ( myConnection != null public static final int max_connection = 2; JCO.Pool pool = JCO.getClientPoolManager().getPool(PO

5、OL_NAME); if (pool = null) Properties logonProperties = new Properties(); logonProperties.put(“jco.client.ashost“,“10.0.0.11“); logonProperties.put(“jco.client.client“,“000“); logonProperties.put(“jco.client.passwd“,“minisap“); logonProperties.put(“jco.client.sysnr“,“00“); logonProperties.put(“jco.c

6、lient.user“,“DDIC“); JCO.addClientPool( POOL_NAME, / pool name max_connection, / max num of connections, 四川大学工程硕士学位论文 SAP 与 OA 系统集成 11 logonProperties); / properties 创建好连接池之后,可以通过如下代码来从连接池中获取一个连接: mConnection = JCO.getClient(POOL_NAME); 在连接使用完毕之后,不要忘记使用 releaseClient 方法释放当前连接: JCO.releaseClient( myC

7、onnection ). 如果需要移除连接池,则可以使用如下代码: JCO.removeClientPool(POOL_NAME); 移除连接池将导致其中所有的活动连接被强行关闭,所以必须在确保连接池中所 有的连接都不再被使用的时候才能执行该操作。 调用 Function Modules 为了演示如何使用 JCo 库来调用远程的 ABAP 函数,本文示例中使用 NetWeaver ABAP 试用版系统中的一个样例函数 BAPI_FLIGHT_GETLIST。 JCo 库使用 RFC 的方式来调用 ABAP 中的函数,所以被调用的函数必须已经勾选 “Remote-enabled”属性。 调用一个

8、函数之前,需要知道函数的元数据,比如函数名字,输入输出参数等等。 在 JCo 库中,必须通过类 JCO.Repository 来获取所有的 ABAP 函数的元数据,所以第 一步是创建一个 JCO.Repository 类的对象: JCO.Repository myRepository = new JCO.Repository(“Repository“, myConnection); JCO.Repository 类的构造函数有两个参数,第一个是可以任意指定的名字,第 二个是当前使用的连接。此处也可以直接指定一个连接池的名字,JCo 库将自动从该 连接池中获取连接。 此时,必须保证该连接使用的用

9、户名在目标 SAP 服务器上有足够的权限。 获得 JCO.Repository 类的实例之后,就可以通过该实例来获得函数的信息。如 下代码演示了如何获取函数 BAPI_FLIGHT_GETLIST 的信息以及如何设置简单类型的参 数: String strFunc = “BAPI_FLIGHT_GETLIST“; IFunctionTemplate ft = myRepository.getFunctionTemplate(strFunc.toUpperCase(); JCO.Function funGetList = ft.getFunction(); 12 / set up scalar

10、parameter JCO.ParameterList input = funGetList.getImportParameterList(); input.setValue(10, “MAX_ROWS“); JCO.Function 对象提供了对应的方法来获取 ABAP 函数的参数列表。例如,上例 中的 getImportParameterList 方法返回该函数的 Import 参数列表。 在上面的示例代码中,仅仅设置了一个最简单的 int 类型的参数。事实上, setValue 方法有许多重载形式,允许设置各种复杂类型的参数,比如 structure 类 型和 table 类型的参数。而

11、且,除了通过参数名字引用要设置的参数之外,还可以通 过参数的索引来引用一个参数。 在设置 structure 和 table 类型的参数之前,需要通过 JCO.Function 对象的方 法获取相应的 JCO.Structure 和 JCO.Table 对象,然后才可以使用对每个字段进行赋 值。 在我们使用的函数 BAPI_FLIGHT_GETLIST 中,Import 参数中的 DESTINATION_FROM 是一个 structure,其中包含一个 CITY 字段。如下代码演示了如 何将 CITY 字段赋值为“NEW YORK”: / set up structure parameter

12、 JCO.Structure sFrom = input.getStructure(“DESTINATION_FROM“); sFrom.setValue(“NEW YORK“, “CITY“); input.setValue(sFrom, “DESTINATION_FROM“); 类似地,可以使用 JCO.Function 对象的 getTableParameterList 方法拿到 Table 参数列表。下面的代码演示了如何拿到一个名为 DATE_RANGE 的 Table 参数并 且为它创建两行: / set up table parameter JCO.Table tDateRange

13、 = funGetList.getTableParameterList() .getTable(“DATE_RANGE“); tDateRange.appendRow(); tDateRange.setRow(0); tDateRange.setValue(“I“, “SIGN“); tDateRange.setValue(“EQ“, “OPTION“); tDateRange.setValue(“, “LOW“); 四川大学工程硕士学位论文 SAP 与 OA 系统集成 13 tDateRange.appendRow(); tDateRange.setRow(1); tDateRange.se

14、tValue(“I“, “SIGN“); tDateRange.setValue(“EQ“, “OPTION“); tDateRange.setValue(“, “LOW“); 参数设置完毕之后,可以通过 JCO.Client 对象的 execute 方法执行远程调用: myConnection.execute(funGetList); 获得输出参数的方法与输入参数完全一样。下面的代码演示了如何获取一个包含 返回值的 Table 参数,并且输出它的内容: JCO.Table flights = funGetList.getTableParameterList().getTable(“FLIGH

15、T_LIST“); for (int i = 0; i dwr 四川大学工程硕士学位论文 SAP 与 OA 系统集成 17 uk.ltd.getahead.dwr.DWRServlet debug true dwr /dwr/* 编写要使用的 java 类 编写 dwr.xml 文件 编写自定义的.js 将所需的.js 加入到网中 2.4 SAP 系统相关开发工具介绍 ABAP 开发语言简介 ABAP 是一种高级企业应用编程语言(Advanced Business Application Programming) ,起源于 20 世纪 80 年代。经过不断的发展,现在的版本为 ABAP/4,S

16、AP R/3 的应用程序就是用 ABAP/4 编写的。ABAP/4 是面向对象语言。它 支持封装性和继承性。封装性是面向对象的基础,而继承性则是建立在封装性基础上 的重要特性。ABAP/4 具有事件驱动的特性。ABAP/4 和 COBOL 具有类似之处。 ABAP/4 适合生成报表。ABAP/4 支持对数据库的操作。SAP 最初开发 ABAP/4(高 级商业应用程序设计)语言仅为内部使用,为应用程序员提供优化的工作环境。经过 不断的改进和修改以满足商业领域的需要。现在,ABAP/4 已成为 SAP 开发所有自己 的应用程序的仅有工具。SAP 客户用 ABAP/4 进行其自身开发。这样的开发对 R/3 标 准解决方案适应特殊问题非常重要。ABAP/4 开发工作平台包含所

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号