验证 Essbase 大纲

预验证 Essbase 大纲以确保应用程序与混合 Essbase 版本兼容。

为了将所有环境升级到支持混合块存储选项 (BSO) 多维数据集的 Oracle Essbase 版本,Oracle 添加了预验证Essbase 大纲的过程,以确保在将环境升级到混合 Essbase 版本时顺利完成转换。

Note:

有关 Essbase 版本的信息,请参阅《管理员入门指南》中的“关于云 EPM 中的 Essbase”。

为了确保您的应用程序与混合 Essbase 版本兼容,我们实施了一个新的实用程序来验证环境中的成员公式,并提供报表以便您可以修复存在的问题。

可以手动启动该实用程序,并且在数据库刷新期间,它将自动运行:

如果在该实用程序完成对成员公式的验证后发现错误,您可以查看大纲预验证报表并修复发现的错误。如果未发现错误,则无需额外操作。

有关预验证错误示例和建议的解决方案的列表,请参阅以下各节:

手动启动预验证流程

要手动启动预验证流程,请从应用程序概览页面上操作菜单中的 Essbase 大纲验证菜单选项下的以下选项进行选择:

  • 预验证大纲:对应用程序执行验证

  • 大纲预验证报表:显示需要修复的成员公式列表,以便与混合 Essbase 版本兼容

Note:

  • 仅当环境使用非混合 Essbase 版本时,Essbase 大纲验证菜单选项才会显示。如果环境使用的是混合 Essbase 版本,则 Essbase 大纲验证菜单选项不再可用。

  • 另一种检查环境使用的是混合还是非混合 Essbase 版本的方式是查看活动报表中的 Essbase 版本支持混合块存储选项值。如果值为,则表示环境使用的是混合 Essbase 版本。如果值为,则表示环境使用的是非混合 Essbase 版本。

要验证环境中的 Essbase 大纲并修复在成员公式中发现的错误:

  1. 在主页上,依次单击应用程序概览

  2. 单击操作,选择 Essbase 大纲验证,然后从以下选项中选择:

    • 要执行验证,请选择预验证大纲

    • 要查看并下载包含在验证期间发现的错误的报表,请选择大纲预验证报表

修复了成员公式后,可以再次使用预验证大纲选项来确保所有问题都已解决。

Note:

修复成员公式后,请确保先刷新数据库,然后再重新查看预验证报表,否则报表将不会显示所有错误都已解决。

在数据库刷新期间自动进行预验证

如果系统检测到您的环境使用非混合 Oracle Essbase 版本,并且需要升级到混合 Essbase,则验证实用程序将在刷新数据库过程结束时自动启动。

如果在验证过程中发现成员公式错误,您将看到警告,告知您查看报表并解决所有错误。单击查看大纲预验证报表以查看完整报表并解决所有错误。

解决验证错误

验证大纲可能会显示如下所列的错误。使用提供的建议解决这些问题并重新运行验证过程,直到解决所有错误。

错误类别 建议
ELSEENDIF(无 IF 成员公式使用 ifelseif、else、endif 构造,但是 endif 标记比 if 标记多,或者 elseif 标记不匹配。if 标记数量应与 endifelse 标记数量对应,以确保正确分组。通过解决语法问题来更正公式。
数据类型无效,或需要类型 NUMBER,但找到的是 STRING 成员公式引用不存在的成员。检查公式并从中删除不存在的成员。
表达式返回类型无效 成员公式引用不存在的成员。检查公式并从中删除不存在的成员。
找不到匹配引号 公式包含不匹配的引号。确保左引号和右引号的数量相等并且正确分组。通过解决语法错误来更正公式。
不执行任何操作 成员的成员公式因使用 /* 和 */ 被注释掉。由于成员是动态的,因此它必须具有有效公式。为成员设置有效成员公式或更改成员属性。
括号错误 公式中的括号不匹配。确保左括号和右括号的数量平衡并且正确分组。通过解决语法错误来更正公式。
替代变量不存在 成员公式引用了不存在的替代变量。创建具有适当值的替代变量以确保公式验证成功。
MDX 查询中的语法错误 要修复语法错误,请参阅“MDX 语法规则”。
缺少分号

表达式意外结束
成员公式未以分号结尾。

公式可能返回值,但是缺少终止分号是语法错误。检查并更正公式。

函数中使用了未知成员名称 成员公式引用了不存在的成员。检查并更新公式以删除对不存在成员的引用。
环境变量不存在 公式引用了环境变量。您无法在 Oracle Fusion Cloud Enterprise Performance Management 应用程序中创建环境变量。创建与环境变量具有相同名称和值的替代变量,然后在公式中使用该变量。
公式解析错误 成员公式引用了未加引号的成员名称,或者公式未以分号结尾。此处,成员公式可能包含公式中不允许使用的关键字或函数名称,例如 foryearsum

确保成员名称正确地加了引号并且公式以分号结尾。此外,确认具有该名称的成员存在于系统中。

查询中使用了未知成员 对于 ASO 多维数据集,成员公式引用了 MDX 查询中不存在的成员。此外,确保维、成员和属性维的名称不包含 /(斜杠)字符。
成员名称重复 成员公式引用不存在的成员。检查公式并从中删除不存在的成员。
赋值无效 赋值无效:等号左侧的值必须是成员或变量。

在成员公式中,使用等号 (=) 的赋值运算的左侧应该是现有成员的名称。确保赋值的左侧是有效成员名称。

运算符错误 成员公式包含嵌套不正确的 ifelseifendif 构造,导致嵌套不正确且不平衡。检查并更正公式来解决这些语法问题。
函数错误 成员公式使用函数,但传递了额外的参数。如果函数涉及 Planning 的替代变量,请确保这些变量可用且具有值,这些值不应以和号字符 (&) 开头。此外,检查公式以删除替代变量前的任何额外 & 符号。确保公式中的每个替代变量在其名称前都有一个 &,以便正确解析。
缺少表达式 检查并修复公式以消除与表达式相关的语法错误。

验证错误示例

在这些示例中,[MEMBER_NAME] 指示验证失败的成员的名称。

公式验证错误示例:成员名称、未知成员、缺少分号、表达式结束等:

  • Formula verification failed for member [MEMBER_NAME].Error compiling formula for [] (line 3): unknown member name ["[MEMBER_NAME]"] in function [operator @X]
  • Formula verification failed for member [MEMBER_NAME].Error parsing member name in formula
  • Formula verification failed for member [MEMBER_NAME].Error compiling formula for [] (line 1): semicolon missing
  • Formula verification failed for member [MEMBER_NAME].Error compiling formula for [] (line 19): unexpected end of expression: [...IF(...)]
  • Formula verification failed for member [MEMBER_NAME].Error compiling formula for [] (line 1): unexpected end of expression: [@ADD]

公式验证错误示例:替代变量示例:

Formula verification failed for member [MEMBER_NAME].Substitution variable [[MEMBER_NAME]] doesn't exist

公式验证错误示例:括号:

Formula verification failed for member [MEMBER_NAME].Error compiling formula for [] (line 1): [)] without [(]

公式验证错误示例:无效数据类型、返回类型和赋值:

  • Formula verification failed for member [MEMBER_NAME].Error compiling formula for [] (line 1): expected type [NUMBER] found [STRING] ([MEMBER_NAME]) in function [@SUB]
  • Formula verification failed for member [MEMBER_NAME].Error compiling formula for [] (line 12): invalid expression return type
  • Formula verification failed for member [MEMBER_NAME].Error compiling formula for [] (line 4): invalid assignment