简介

本教程介绍 Groovy 脚本语言,并介绍如何在 Oracle EPM Enterprise Cloud 服务中为 Planning 创建 Groovy 脚本。

背景信息

Groovy 是一种适用于 Java 平台的敏捷动态语言,它将流畅的 Java 集成与 Java 性能的优势相结合。Groovy 的许多功能都受到 Python、Ruby 和 Smalltalk 等语言的启发,使 Java 开发人员可以使用类似 Java 的语法。Groovy 被包括 Oracle、IBM 和 SAP 在内的许多大公司和小公司采用,因为它具有静态和动态语言的强大功能、云环境的安全性和特定于域的语言。

先决条件

Cloud EPM 实操教程可能需要您将快照导入 Cloud EPM Enterprise Service 实例。在导入教程快照之前,必须请求另一个 Cloud EPM Enterprise Service 实例或删除当前应用程序和业务流程。教程快照不会通过现有应用程序或业务流程导入,也不会自动替换或恢复您当前使用的应用程序或业务流程。

在开始本教程之前,您必须:

  • 具有服务管理员对 Cloud EPM Enterprise Service 实例的访问权限。
  • 将此快照上载并导入到 Planning 实例中。

注意:

如果导入快照时遇到迁移错误,请重新运行迁移(不包括 HSS-Shared Services 组件),以及核心组件中的“安全性”和“用户首选项”对象。有关上载和导入快照的更多信息,请参阅 Administering Migration for Oracle Enterprise Performance Management Cloud 文档。

为什么 Groovy?

了解计算脚本的限制

Planning 使用基于计算脚本的业务规则来执行计算和操作。虽然这些脚本功能强大,但它们有一些限制:

  • 他们无法根据用户输入的运行时提示以外的上下文在运行时动态生成脚本。例如,如果更改表单中的几个单元格,则计算脚本业务规则无法确定更改了哪些数据,然后仅基于这些数据进行计算。
  • 他们无法动态指定当前成员的父代(例如,按项目类型或区域)。
  • 在运行计算之前,您无法验证用户输入的数据或运行时间提示值。
  • 您不能将多个 EPM 函数合并到一个规则或规则集(例如,在计算后自动运行智能推送操作)。
  • 由于其静态性质,它们可能会遇到性能问题(例如,即使仅更新了少数单元格,也需要计算大量数据库)。
  • 虽然通过右键单击并仅计算特定行,表单中提供了特定于上下文的有限计算,但此选项对于大型表单或更新多行中的单元格时不太有用。
  • 对于 ASO 应用程序,它们仅提供简单的计算。

Groovy 脚本规则的优点

借助 Oracle EPM Enterprise Cloud 中对 Groovy 规则的支持,您可以解决所有这些问题。Groovy 规则使您能够:

  • 根据 Groovy 脚本中定义的上下文在运行时动态生成计算脚本
  • 在运行计算之前添加运行时提示值的验证检查,在提交数据之前添加数据验证检查,以及添加错误处理
  • 使用单个规则启动多个 EPM 函数(例如,运行计算,然后运行智能推送操作以将计算的数据移动到报告多维数据集)
  • 通过创建集中计算来提高性能(例如,根据当前表单中修改的数据动态创建定制的有针对性的计算脚本)
  • 在将结果提交到数据库之前,在内存中执行复杂的过程计算

Oracle EPM Enterprise Cloud 中的 Groovy

Groovy 规则的类型

Oracle 支持两种类型的 Groovy 规则:

  1. 能够在运行时基于上下文(而不是运行时提示)动态生成计算脚本并返回对 Oracle Essbase 执行的计算脚本的规则。

    例如,可以创建规则来仅计算项目持续时间内(开始日期到结束日期)的项目费用。

    另一个示例是基于趋势的计算,即只计算表单中可用的帐户。可以将此计算用于“收入”、“费用”、“资产负债表”和“现金流”中的各个表单。这样可实现优化和重复使用。

  2. 可执行数据验证并在输入的数据违反公司策略时取消操作的纯 Groovy 规则。

注意:

任何返回字符串的 Groovy 脚本都将返回一个 Essbase 计算脚本,该脚本将针对指定的 Essbase 多维数据集执行。请避免使用字符串作为上一个语句的最终值,除非该语句是您要在 Groovy 脚本成功启动后执行的计算脚本。

您可以在 Calculation Manager 中创建 Groovy 规则,然后可以从应用程序中可执行业务规则的任意位置执行这些规则。

使用 EPM Groovy 脚本编写 API

  • 通过 EPM Groovy 脚本 API,Groovy 脚本可以对 EPM 对象模型执行各种操作。大多数对象(如当前应用程序、多维数据集和网格)都可以从操作变量中检索。在大多数情况下,API 的入口点将是 EpmScript 基类上的方法或 Operation 对象。
  • 基本脚本和当前操作具有一组应用于脚本的变量。例如,如果脚本引用变量(如 operation.grid),并且操作中不存在网格,则在执行脚本时,系统会停止脚本并在作业控制台中记录错误。如果脚本具有可选处理,例如设置网格格式(如果存在),则可以首先通过调用 operation.hasGrid() 来检查是否存在网格。模型中的其他对象也有类似的模式。
  • 提示:

    有关 EPM Groovy 脚本编写平台的 API 规范,请参阅 Oracle Enterprise Performance Management Cloud,Groovy Rules Java API Reference

创建 Groovy 业务规则

Oracle 支持两种类型的 Groovy 规则:

  1. 在 EPM Enterprise Cloud 中的 Planning 应用程序中,打开导航器,然后在“创建和管理”下,单击规则以显示 Calculation Manager。
  2. 导航器规则
  3. 在 Calculation Manager 中,选择操作,然后选择新对象。在对话框中,选择应用程序类型、应用程序和多维数据集。对于“对象类型”,选择规则。输入规则的名称,然后单击确定
  4. “新建对象”对话框
  5. 此时将显示一条消息,指出规则已创建并打开以供编辑。单击确定继续安装。
  6. 在“设计器”下拉列表中,选择编辑脚本
  7. 编辑脚本
  8. 在“脚本类型”下拉列表中,选择 Groovy Script
  9. Groovy 脚本
  10. 单击“保存”图标(保存)。该规则现在是基于 Groovy 脚本的业务规则,您可以使用编辑器根据您的业务用例开发脚本。以下示例在编辑器中显示了一个简单的 Groovy 脚本,该脚本将根据数字阈值更改数据网格中单元格的背景颜色。您还可以打开脚本以在单独的选项卡中查看该脚本。
  11. 脚本示例

更多学习资源

通过 docs.oracle.com/learn 浏览其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 Oracle University 查看可用的培训资源。

有关产品文档,请访问 Oracle 帮助中心