BIEE如何同SOA集成

OTN的这篇文章描述了BIEE如何SOA集成,对于在BIEE中使用到Webservice的朋友很有帮助

集成 Oracle 业务智能企业增强版和 SOA

作者:Mark Rittman 和 Joel Crisp
探讨 Oracle SOA 套件与 Oracle 业务智能企业增强版的集成可能性。

到目前为止,您可能已经了解到面向服务的体系结构 (SOA) 是一种设计方法,开发人员可以通过这一方法将各分散应用程序提供的松散耦合的独立服务构建为业务应用程序和业务流程。通过将您的应用程序基础架构基于支持 SOA 的产品(如 Oracle 融合中间件、Oracle JDeveloper 和 Oracle 数据库 11g)上,您可以开发重用机构中现有功能的应用程序,快速适应不断变化的优先业务事项,为用户提供具吸引力的 Web 2.0 风格界面,这些界面是使用事件、服务、业务规则和应用程序逻辑的框架构建而成。
同样,业务智能 (BI) 为希望更好地了解其运营和财务绩效的机构提供众多的好处。互动式信息板和图形报表可快速提供关于企业绩效的信息,侦测和提醒程序可让您快速关注到出现的问题和商机。最终它们将转化为企业的竞争优势。更为重要的是,Oracle 业务智能企业增强版等工具提供的业务元数据层在您企业的整个数据集上创建了一个语义模型,这将帮助您制定兼顾全局的决策,通盘考虑业务的众多因素。
但是,如果能将 SOA 和 BI 合而为一,使您的业务流程可以利用 BI 工具提供的语义业务模型,并将整个企业的信息纳入业务规则中,那将如何呢?如果您的业务流程可以基于某一位财务分析员建立的财务模型来估算合同的未来价值,那会怎么样呢?如果您的应用程序可以利用 Oracle 下一代互动式信息板工具的图形和信息板功能,使您能够在 Java 应用程序中嵌入图形、表和其他 BI 表示,那又将如何呢?
在本文中,我们将探讨 Oracle 融合中间件产品系列的两个重要产品(Oracle SOA 套件和 Oracle 业务智能企业增强版)的集成可能性。我们将特别讨论 Oracle 业务智能企业增强版的一个新 Web 服务 API 示例(在 OTN 上提供),它有望简化 BI 技术与业务流程和应用程序的集成过程。
面向服务的领域

我们都知道,SOA 对应用程序构架师的主要吸引力在于,它提供了利用机构中的现有应用程序功能快速创建新业务流程的机会。利用 SOA,可以通过采用 Web 服务这一主要集成方式轻松地集成不同的业务流程。
典型的 SOA 包含以下几个要素:


  • 业务流程 — 声明式流程,通常使用 BPEL 创建,可编排服务,并可从应用程序、警报和其他流程中调用。
  • 业务规则 — 声明式业务策略,具体形式为单独的规则库,可从应用程序和业务流程中访问。
  • 业务事件 — 包含应用程序和业务流程生成的声明式事件定义、变换和例程。
  • 业务活动监控 — 提供业务流程和活动效率的“即时”监控

所有这些元素都由 Oracle SOA 套件提供,它是 Oracle 融合中间件的一部分,该套件提供了 Oracle BPEL Process Manager、Oracle Business Rules、Oracle Enterprise Service Bus 和 Oracle Web Services Manager 等工具。

结合使用 Oracle SOA 套件和 Oracle 应用服务器以及 Oracle 融合中间件的其他重要组成部分,您可以开发基于标准、松散耦合的业务应用程序和流程,它们可以轻松地与企业内外的应用程序进行集成。
添加强大的分析功能
除了 Oracle SOA 套件,Oracle 融合中间件的另一个重要部分是 Oracle 业务智能套件企业增强版。Oracle 业务智能企业增强版是 Oracle 最新一代的 BI 和分析工具,它提供了互动式信息板、报表和图形、警报、高品质发布品和您所有数据的元数据层,通过这一元数据层,可使创建报表就像从数据字典中选择业务术语一样简单。
从应用程序开发人员的角度来看,绝佳之处在于 Oracle 业务智能企业增强版完全支持 Web 服务并提供有 SOAP API,这使它可以连接至 BI 元数据层、运行报表、使用业务术语检索数据、执行分析查询以及执行称为“iBot”的 BI 工作流任务。由于典型的 BI 元数据层可覆盖机构的多个主题区,采用集成、经清理的数据;包含计算和关键绩效指标 (KPI);由专为快速检索数据而调整的数据库支持,这为有意在业务流程和应用程序中添加分析功能的开发人员提供了一个令人感兴趣的机会。
例如,在编排一个业务流程时,您希望引用业务流程中多个业务领域的数据,集合来自销售、营销和人力资源和库存部门的数据。在定义业务规则或计算通过向长期客户退费是否可让企业长远受益时,您可能希望引用盈利或客户服务 KPI。所有这些都要求企业 BI 应用程序中获有信息,通过 Oracle 业务智能企业增强版的 Web 服务界面,可以轻松地将这些系统的馈送信息合并到基于 SOA 的应用程序中。
集成带来的另一机会是,可以解决单独 BI 应用程序由来以久的缺点。企业中大多数据员工在完成日常工作时需要使用业务线应用程序,如 HR、库存管理、销售自动化或库存管理应用程序,他们没有时间或必需的培训来使用不同的报表和分析工具。在使用查询工具来分析业务时,他们面临着在查询工具和业务线工具之间进行“上下文切换”,这将对他们造成一定的影响,最好的情况是降低工作效率,最差的情况是造成洞察与利用洞察采取相应措施间的脱节。
但是,如果您能通过可以访问集成数据和 KPI 的应用程序,或通过直接与 BI 警报和工作流集成,或者只是通过将 BI 工具生成的信息板和图形报表嵌入应用程序的方式,将 BI 洞察直接构建到业务线应用程序中,就可以将 BI 直接嵌入应用程序并注入企业中的每个业务流程中。
Oracle 业务智能企业增强版简介

Oracle 业务智能企业增强版是 Oracle 最新一代的 BI 和分析工具,它提供了互动式信息板、报表、高品质输出、警报、集成(与其他广泛的关系和在线分析处理 (OLAP) 数据源集成)以及元数据层(提供所有企业数据的业务数据字典)。Oracle 业务智能企业增强版是 Oracle 融合中间件的一部分,可从 OTN 下载,它提供了一个完整的平台,从而为企业各类用户提供报表、警报、图形和基于角色的信息板。

Oracle 业务智能企业增强版包括一系列产品,它基于四个服务器产品和基于 Microsoft Windows 的管理工具:


  • Oracle BI Server — 连接到一系列关系和 OLAP 数据源,通过业务元数据层提供到集成数据集的访问,包括计算、聚合和 KPI
  • Oracle BI Presentation Server — 通过 ODBC 连接到 Oracle BI Server,通过一致、动态的 HTML 界面提供交互式信息板、报表和数据可视化
  • Oracle BI Delivers — 与 Oracle BI Presentation Server 协同工作,规划报表并创建根据警报和用户定义的阈值执行动作的工作流
  • Oracle BI Publisher — 使用源自关系数据库、Oracle BI Answers 请求、Oracle BI Discoverer 工作表和 Oracle 业务智能企业版元数据层的数据提供“董事会级”报表

与这些服务器应用程序协同工作的是 Oracle BI Administration,它是一个基于 Microsoft Windows 的工具,用于管理元数据层、安全性、缓存和其他 Oracle BI Server 特性。
Web 服务集成
Oracle 业务智能企业版最令人感兴趣的特性之一是 Oracle BI Presentation Server 提供的 SOAP 接口。该接口提供了一些 Web 服务方法,可使用 Oracle JDeveloper 10g 等工具从业务流程和应用程序中调用它们。
Oracle 业务智能企业增强版 10.1.3.3 中的 SOAP 接口提供以下服务:


  • XmlViewService — 将报表结果作为 XML 格式的结果集返回,与 Microsoft XML 结果集格式兼容。这是通过 SOA 公开 OBI:EE 内容的重要服务,而且还是一个状态服务,可使用同一会话密钥对其进行多次调用。
  • SAWSessionService — 管理 OBI:EE 表示服务(以前称为 SAW)Web 服务会话。在使用其他服务前,应当调用这一服务,以创建可供其他服务使用的会话密钥。
  • SecurityService — 允许在 OBI:EE Presentation Server 目录中读取和设置访问控制列表 (ACL)。
  • IBotService — 允许立即执行 OBI:EE iBot。
  • WebCatalogService — 在 OBI:EE Presentation Server 目录中公开报表、过滤器和 iBot。
  • ReplicationService — 未用于 OBI:EE 10.1.3.2,这是一个旧式接口。
  • MetadataService — 公开 OBI:EE Analytics Server 元数据模型。
  • ReportEditingService — 允许从其他报表和过滤器中组合报表。
  • HtmlViewService — 允许通过执行报表来生成 HTML 代码段。注意,这一服务可立即返回包含对完成的报表进行轮询的脚本的 HTML 代码段,随后将把它代入得到的 HTML 中。这一服务仅限于门户使用。
  • JobManagementService — 允许控制 OBI:EE iBot 和 OBI:EE 计划程序执行的其他计划作业。

尽管这些“细粒度”的 Web 服务向调用程序公开了许多 Oracle 业务智能企业增强版功能,但在“原始”状态下使用它们将十分耗费时间,因为您要管理认证、跨多步实现连接信息的持久、检索数据,以及在一个相当低的级别操作结果。为了简化这一过程,该 Web 服务功能的幕后开发团队在 OTN 上提供了一些示例代码,名为 Easy BI Bridge。
EasyBI Bridge

为了简化 Oracle 业务智能企业增强版 SOAP 接口的使用,Easy BI Bridge 是一个“粗粒度的”Java Web 服务示例,它公开了整个 Oracle 业务智能企业增强版 Web 服务功能中有限的一部分。
Easy BI 服务仅公开了四个易于理解的方法,而不是原有 Oracle 业务智能企业增强版 SOAP 接口公开的众多低级方法。除了提供一组简化的服务外,它还管理 Oracle BI Presentation Server 和调用应用程序间要求的登入/登出过程,从而减少访问该功能所需的工作。但是要注意的是,尽管代码可以简化这些服务的使用,但它只是示例代码,简化是在隐hide了许多功能和降低性能的情况下才实现的。
安装 Easy BI Bridge
Easy BI Bridge 和本文中的示例需要以下版本的 Oracle 软件,现在可从 OTN 上下载它们:


  • Oracle 业务智能企业增强版 10.1.3.3
  • Oracle JDeveloper Studio Edition 10.1.3.3
  • Oracle 应用服务器 SOA 套件 10.1.3.1.0

此外,本文中的示例还使用以下版本的 Oracle 数据库:


  • Oracle 数据库 10.2.0.3 企业版

在此处下载 Easy BI Bridge 的源代码。使用保留全路径名的选项将 ZIP 文件展开至“d:/workspace”目录。(注:本教程假设您使用的是 Microsoft Windows,但 Easy BI Bridge 服务也在可其他操作系统下工作。)
Easy BI Bridge 内幕
Oracle JDeveloper 项目包含三个关键组件:


  • Java Web 服务 BusinessIntelligence,BPEL 流程将使用它。该服务符合 SOAP 1.1。
  • 一组生成的 Java 代理,它们使用 OBI:EE Web 服务 IBotService、SAWSessionServiceXMLViewService。这些代理是使用 Oracle JDeveloper 生成的。
  • Java 类 EasyBIBridge.java,它包含两者间的“连接”代码。

除了这些组件外,还有一些支持文件:


  • BridgeNamespaceContext.java 提供通过 Microsoft Rowset URN 初始化的 XML NamespaceContext。
  • RequestSpecificationRequestParameter 是包含用于 BusinessIntelligence Web 服务调用的参数的值类。

Java 包命名空间为 oracle.bi.soa,它还包括生成的 OBI:EE Web 服务代理的命名空间 oracle.bi.soa.proxy。
BusinessIntelligence Web 服务公开以下方法:


  • evaluateCondition(RequestSpecification) — 执行 OBI:EE 报表,如果报表结果中有任何行,则返回 true
  • executeRequest(RequestSpecification) — 执行 OBI:EE 报表,并返回包含报表结果的 XML 行集
  • getDataValue(RequestSpecification) — 执行 OBI:EE 报表,并从报表结果的左上角单元格中返回一个值。这是一个方便的方法,可用于轻松访问报表结果,如 KPI。
  • invokeiBot(RequestSpecification) — 计划 iBot 以立即执行并返回。

为求简化,这些方法都使用同一 RequestSpecification 结构,它包含对 Oracle BI Presentation Server 中报表路径的引用,以及一系列可选的报表参数。
要为您的环境配置 Easy BI Bridge,启动 Oracle JDeveloper 并选择 File/Open...浏览至代码的解压缩目录,打开文件 BISOABridge.jws
Oracle JDeveloper 将打开项目,如以下屏幕截图所示。在项目中,找到 EasyBIBridge.java 源文件,双击打开它。

在文件中,找到 public class EasyBIBridge,修改 biServer、administratoradminPW 的值,以反映 Oracle 业务智能企业增强版安装的值。在该示例代码中,始终使用 Oracle BI Server 管理员帐户连接 Web 服务。注意该示例代码,它只应在可信环境中使用,仅限于演示目的。
保存您作出的更改,然后右击 WebServices.deploy 文件并选择 Deploy to EAR file。随后,Oracle JDeveloper 将 Easy BI Service 重新编译并部署到 EAR 文件,然后将这一文件部署到 Oracle 应用服务器 10.1.3.1.0 的本地安装中。
要安装本文引用的数据和 Oracle BI Server 库,按下载中提供的说明安装数据,并使用提供的 OTN_SOA_BI.rpd 库文件提供已构建好的业务模型,您能在这一模型上建立所需的请求。
将 BI 功能添加到订购演示

现在您已经成功安装了 Easy BI Bridge,可以使用它提供的特性将 BI 功能添加到您的业务应用程序和流程中。为了演示如何添加,您将使用 Oracle SOA Suite Order Bookings 演示中提供的一个现有业务流程,对它进行修改以利用 Oracle 业务智能企业增强版提供的功能。这样做,您将了解现有流程如何使用 Oracle 融合中间的分析功能,并了解结合使用 Easy BI Bridge 与 Oracle JDeveloper 10g 提供的 Web 服务和 PPEL 功能是多么简单。
下图概述了 Order Bookings 演示,它展示了 Oracle SOA 套件 10.1.3.1.0 的功能,演示始于通过 Web 服务接受订单。然后通过 Enterprise Service Bus 将订单传送给 BPEL 流程,然后注册订单,然后通过 DBAdapter 从数据库检索用户信息。检索完客户信息后,将调用信用检查服务以验证客户的状态,然后根据客户的状态和订单的价值来完成订单或不完成。

如果您还未这样做,请下载和安装 Order Bookings SOA 套件演示,针对您的环境对它进行配置,完成最初的下订单流程和然后使用 Oracle BPEL 控制台完成工作流程。本文中的示例假定您对 Order Bookings 演示和 Oracle JDeveloper 中的 BPEL 功能有一个基本了解,并且您已经使用 Oracle Answers(Oracle 业务智能企业增强版 10.1.3.2 或 10.1.3.3. 提供的报表编写组件)创建了请求。
在本文使用的两个示例中,首先您要将检索客户信息的数据库现有调用替换为对 Oracle 业务智能企业增强版的请求以针对同一客户返回报表,但这次针对一个包含 KPI 和客户分析的集成公司数据仓库运行。其次,您将把对外部信用检查代理的现有调用替换为另一个对 Oracle 业务智能企业增强版的调用,这次对条件进行评估,以决定客户是否有效或是欺骗性的。尽管这些是很小的示例,但它们将演示通过使用 Oracle BI Answers 创建的请求从 Oracle 业务智能通用企业信息模型检索数据的过程,并将引导您沿着正确的方向将分析功能加入您自己的应用程序和流程中。
安装 Oracle SOA 套件 10.1.3.1.0 之后,安装和配置 Order Bookings 演示,使用 Applications 选项卡找到 SOAOrderBooking 项和其中的 SOAOrderBooking.bpel 文件。双击文件打开 Order Bookings BPEL 主流程。

BPEL 流程始于自客户端的调用,将订单的详细信息插入数据库。然后使用一些服务(这些服务显示 BPEL 流程左右侧的“泳道”)从数据库检索客户的详细信息,然后使用外部信用检查服务检查验证客户的信用度。
根据信用检查服务的结果,将拒绝这一订单,或根据客户的状态和订单的价值,将订单传送至业务规则即刻对它进行处理,或将它转交给操作员以进行审核。

在这一,您要将对 DBAdapter 的调用替换 executeRequest Easy BI 服务的调用,把对 CreditValidatingService 的调用替换为 evaluateCondition Easy BI 服务的调用。
执行 Oracle BI Answers 请求
您的第一个任务是打开 Order Bookings BPEL 流程,然后通过将 Easy BI Bridge 注册一个合作伙伴服务,以使其可用。要达到这一目的,在 Oracle JDeveloper 中打开 Component Palette,使用下拉菜单选择 Services 视图,拖拽合作伙伴服务到 BPEL 流程中的右泳道。使用 Create Partner Link 对话框,将合作伙伴服务命名为 BusinessIntelligence,按下 Browse WSDL Files from Local File System... 按钮从先前安装的 Easy BI Bridge 示例代码中选择文件
/bisoabridge/public_html/WEB-INF/wsdl/BusinessIntelligence.wsdl。
接受所有提示,然后选择 BusinessIntelligence_Role 作为合作伙伴角色。单击 OK 保存 Partner Link 定义。现在,您已经注册了 Easy BI Bridge,并将其服务提供给您的 BPEL 流程。

现在已加入了合作伙伴链接,返回到 Component Palette,使用下拉菜单选择 Process Activities。活动列表代表您的业务流程可以采取的动作,您现在应当选择“Invoke”活动,指示业务流程使用特定的 Web 服务。
将 Invoke 活动拖放至您的业务流程,置于现有的 GetCustInfo Invoke 活动后面。稍后,在您确定对 Oracle Business Intelligence Enterprise Edition 的调用如预期工作前,您将移除 GetCustInfo Invoke 活动,以及它之前的初始化其参数的 Assign 活动。

添加新 Invoke 活动后,将它连接至 BusinessIntelligence 合作伙伴连接,然后选择 ExecuteRequest 服务,如以下屏幕截图所示:

将 Invoke 活动命名为 GetCustInfoFromBI,使用Edit Invoke 对话框提供的 Magic Wand 按钮,使用默认名字创建全局输入输出变量。最 OK 保存活动。您马上将使用这些输入输出变量向 Answers 请求传送值或回传值。
添加完新活动后,您的业务流程将类似以下内容:

下一步是向活动传送要执行的 Oracle BI Answers 请求的名称,和请求所要求的参数的值和名字。在完成它前,您首先需要在 Oracle BI Answers 中为要执行的活动创建报表。这一报表将把客户 ID 作为参数,在 Microsoft XML 结果集格式返回客户的详细信息,您稍后将对格式进行转换,以匹配其他业务流程中使用的变量。
使用 Oracle BI Answers,创建返回一个简单栏列表的请求,如以下屏幕截图所示。

下一步,在 CUSTID 栏上创建过滤器,过滤器使用一个 Presentation Server 变量,默认值为 10。最后将 Web Catalog 的 Shared 区域中的报表保存到新目录 EasyBI 中。
现在,返回到 Order Bookings BPEL 流程,使用 Process Activities 列表添加新 Assign 活动,置于刚添加的 Invoke 活动前。这一活动将分配 Invoke 活动所需的变量,并设定请求名称、参数名称和参数值。一旦添加了 Assign 活动,双击它打开编辑,调用活动 AssignRequestForBI,使用 Copy From 分配以下变量:

From To
类型 类型
表达式 '/Shared/Easy BI/Customer Details' 流程变量 GetCustInfoFromBI_executeRequest_InputVariable
/ns32:executeRequestElement/ns32:reportPath
表达式 'CUSTID' 流程变量 GetCustInfoFromBI_executeRequest_InputVariable
/ns32:executeRequestElement/ns32:params/ns32:name
ProcessVariable InputVariable/payload//client:SOAOrderBookingProcessRequest
/ns4:PurchaseOrder/ns4:CustID
流程变量 GetCustInfoFromBI_executeRequest_InputVariable
/ns32:executeRequestElement/ns32:params/ns32:value

复制了所有变量值后,Edit Invoke 活动对话框如下所示:

单击 OK 保存 Assign 活动详细信息。
下面,将第二个 Assign 活动添加至 BPEL 项目,置于 GetCustInfoFromBI Invoke 活动后,将其命名为 DecodeCustInfo,如以下屏幕截图所示。

双击 DecodeCustInfo Assign 活动,打开活动对话框。
现在,单击 Copy Operation 选项卡,在对话框的左边,选择 Expression 作为类型,然后使用 Expression Editor 按钮首次添加以下表达式:
ora:parseEscapedXML()将鼠标置于括号之间,使用变量选择程序选择 Oracle BI Answers 请求输出的 executeRequestResponseElement 部分,如下所示:

单击 OK 保存表达式,返回至 Copy Operation 对话框。
Copy OperationTo 端,在变量中右击, 右击 Process Variables 节点,选择 Create Variable。命名变量 DecodedResults,选择 Element 作为变更类型。

您现在要创建的变量是定制类型的,rowsets.xsd 文件中定义了模式该类型的模式,作为 Easy BI Bridge 项目的一部分提供。这一模式包含一系列元素类型,如
<xsd:element name="rowset1" type="rowset1t"/><xsd:complexType name="rowset1t"><xsd:sequence><xsd:element name="Row">  <xsd:complexType><xsd:sequence><xsd:element name="Column0" type="xsd:string"/></xsd:sequence></xsd:complexType></xsd:element></xsd:sequence></xsd:complexType>要将模式导入 Order Bookings 项目,选择变量浏览器中 Element 域旁边的 Flashlight 徽标,打开 Type Chooser,如以下屏幕截图所示:

Type Chooser 对话框显示时,单击类似于带绿箭头的结构图的徽标,导入新模式。

现在浏览 Easy BI 项目中 rowsets.xsd 文件,路径为 /bisoabridge/public_html/rowsets.xsd,然后单击 OK 导入它。在名称为 Imported Schemas 的 Type Explorer 树型结构中出现一个新节点。展开这一树形结构查看所有元素。
您使用的 XML Schema 有一些元素,其数量对应于请求输出中列的数量。因为您使用的报表,当 Type Chooser 对话框显示时选择 rowset7 元素。

单击 OK,然后再单击 OK,选择 BusinessIntelligence 合作伙伴链接保存 XSD Schema 文件。现在,将 Copy Operation 对话框的 To 部分设置为这个新变量提供的 rowset7 元素。完成这一步后,对话框应如以下屏幕截图所示:

单击 OK 保存 Assign 活动详细信息。现在您已经获取了 Oracle BI Answers 的输出,并将它复制入使用 XML Schema 的“普通”变量中,最后一步是将其从这一变量中复制入处理客户订单的其他 BPEL 流程使用的现有的流程变量中。
这里将不创建另一个 Assign 活动跨每个变量元素依次复制,而是使用 Transform. 活动,使用 XSL 转换图一步转换所有元素。
要完成这一步,使用 Component Palette 将 Transform. 活动添加至您添加的最后一个 Assign 活动后,将活动命名为 TransformDecodedtoCVariable。
您的 BPEL 流程应如以下屏幕截图所示:

现在您要提供 DecodedResults XML 行集中的元素如何转化为正确的流程变量元素的详细信息。要实现这一目标,双击 Transform. 活动显示 Transform 对话框,在 Source and Target 区域中,选择 DecodedResults 作为源,选择 CustomerServiceResponse 作为目标。

然后,按下 Create Mapping 按钮将两个变量映射到一起。
注意您先前创建的请求中的各列的定义,将结果集中的每一列映射到转换中的目标元素。比如,Answers 请求中的列 0 包含 CUSTID,因此它映射到目标区域中的 tns:custid 元素。

返回到原始 Answers 请求中查看剩下的行集元素的意义,将这些元素映射到转换目标中的相应元素。
一旦您完成转换映射后,保存所作工作,保存获得的 .xsl 文件。
部署更新的 BPEL 流程
现在,您已经做好准备,可以部署和测试修改后的 BPEL 流程了。目前来说,从数据库检索客户详细信息的原始步骤仍然在业务流程中,但如确定活动如预期运行时,您将移除这一步。注意以下步骤假定您以前安装和部署了全部 Order Bookings 演示,且通过经由演示 Web 接口提交了一个订单,确定已正确安装和部署 Order Bookings BPEL 流程。如未完成这此步骤,请先完成再继续下一步。
在 Oracle JDeveloper 中,找到 System Navigator 窗格和 SOAOrderBooking.jpr 文件夹。在这一文件夹中,查找 build.xml 文件,右键单击它然后选择 Run Ant。使用 Properties 选项卡,确保安装 Order Bookings 演示时选择的属性文件仍然处于选中状态,然后单击 OK 构建并安装更新的 Order Bookings BPEL 流程。

查看 Apache ANT 日志确定已成功完成构建和部署(您应当在日志末尾看到 BUILD SUCCESSFUL 项),然后启动 Order Bookings Web 客户端和 Oracle BPEL Console,以确定更新后的业务流程正常工作。
使用 Web 客户端,以 [email protected] 身份登入,下一个 Treo 650 Phone/PDA 订单,价格为 US$650,该订单将传送入 Order Bookings 业务流程,无需人员审批。一旦订单提交后,打开 Oracle BPEL Console 和找到经修改的 SOA Order Bookings BPEL 流程的最后一个实例。如果所有都已正确设置,您应当查看经更新的业务流程,以及为查看客户数据对 Answers 报表的调用。

如单击 BPEL 流程的新活动,您可以检查每一活动所使用的数据。比如,单击 DecodeCustInfo Assign 活动,查看载入您先前所创建变量中的 Answers 请求结果。

成功完成第一阶段后,将进入第二阶段,使用 Easy BI Bridge 提供的另一个方法,这一次评估条件。
评估 BI 条件
在原 BPEL 流程检索客户数据后,立即调用信用检查服务验证客户信用卡的有效性。现在将它替换为 Answers 请求,如果判断客户值得信任,则返回行,如果客户是欺骗性的,则不返回。使用这个方法,您将能够替换 Order Bookings BPEL 流程中现有的验证服务调用,但稍后需要使用同一交换逻辑来接受或拒绝订单。
返回至 Oracle JDeveloper,首先删除 AssignRequest 和 GetCustInfo 活动,您现在已经用 BI 功能调用替换了这些活动。您的 BPEL 流程应如以下屏幕截图所示:

现在转至 Oracle BI Answers,并创建一个报表以返回给定的有效客户的行。在本示例中,本文下载中提供了一个数据集,Customer Attributes 逻辑表包含一个 Fraud Alert 列,用于确定客户的有效性。在实际情况中,您的 Answers 报表可以使用整个企业的数据,加上 BI 分析创建的量度和分析来确定客户的状态,但在本例中,您将使用一个返回 Y 或 N 值的简单列。创建一个该值的过滤器,如以下屏幕截图所示,然后使用 Presentation Server 来创建 Customer ID 参数,并将请求保存到业务流程所使用的其他请求所在的同一 Web Catalog 目录中。

返回至 Oracle JDeveloper,使用 Component Palette 将新的 Invoke 活动添加到 InvokeCreditService 活动后面,将其链接至 BusinessIntelligence 合作伙伴服务,然后调用活动 InvokeCreditServiceFromBI。选择 evaluateCondition 服务,使用 Magic Wand 按钮,使用默认名称创建两个变量。

使用与前面相同的步骤,添加 Assign 活动至该新 Invoke 活动前,分配客户 ID、演示变量名称、InvokeCreditServiceFromBI 输入变量的报表名称。

以下屏幕截图展示了经修改后的 BPEL 流程。再次保留 Assign 和 Invoke 活动原位不同,直至经检查确定新逻辑正常工作后。

如果在请求调用后您立即查看活动,您会发现它是一个切换活动,如果您单击 <case> 条目边上的 Edit 链接,将检查现有现有对信用验证服务的调用所返回的值。

如果您单击条件表达式右手边的 Edit 链接,您可以修改条件转而使用 evaluateCondition Invoke 活动返回的值,再一次检查它是否为 false,如请求没有返回行则表示为 false。

现在,保存和重新部署业务流程,作为不能通过验证测试的客户提交订单,然后使用 BPEL Control 应用程序进行检查(经修改的流程已经正确纳入了更改)。对于不能通过评估(即,欺骗性)的客户,Answers Web 服务将返回“false”响应,这一过程将失败,如以下 BPEL Console 输出所示:

单击新 InvokeCreditServiceFromBI Invoke 活动,显示已完成条件的评估,返回“false”响应。

您已经完成了这一练习。您可以返回到 Oracle JDeveloper,移除对信用检查服务的引用,进一步添加对 Oracle BI Answers 请求的调用,检索数据集和单个数据元素,评估其他条件,或甚至使用 invokeIbot 服务分发报表或检查警告。
总结

在本文中,您已了解了 Oracle 业务智能企业增强版提供的 Web 服务 SOAP 接口带来的一些可能性。通过使用 Easy BI Bridge 示例代码加快应用程序开发,您修改了现有的业务流程以从数据仓库检索客户数据,并使用了数据仓库中的数据基于 Oracle BI Answers 请求的结果来评估条件。
以这一方法使用基于标准的接口,您的应用程序和业务流程可以利用 Oracle BI 工具的数据集成、分析和元数据功能,这一方法对调用应用程序是透明的,并且可使用熟悉的工具,如 Oracle JDeveloper。要了解 Easy BI Bridge 示例代码和 Oracle 业务智能企业增强版提供的 SOAP 接口的进一步信息,请参见 Easy BI Bridge 下载中的文档和 OTN 上提供的产品文档。
Mark Rittman 是 Oracle ACE 主管以及 Rittman Mead Consulting 的创建人之一,Rittman Mead Consulting 是位于英国的一家提供专业 BI 和数据仓库解决方案的公司,同时还是 Oracle 合作伙伴。他是 Oracle User Group Business Intelligence & Reporting Tools SIG 的主席以及 ODTUG BI&DW SIG 的联席主席,并拥有博客 www.rittmanmead.com/blog。
Joel Crisp 是 Oracle 在 Oracle 业务智能套件产品方面的首席工程师。他是 British Computer Society (BCS) 的特许 IT 专家,曾就职于美国的 Trilogy 公司,并担任过 Sun Microsystems Professional Services 的 Java 架构师。

你可能感兴趣的:(oracle,活动,Microsoft,BI,SOA,报表)