成员存储类型

除了大纲计算,维度成员的另一项重要属性是存储类型,存储类型决定维度成员相关单元格的物理存储方式。在维库中编辑成员的【Data Storage】属性,下拉菜单中可选的5种,再加上Shared成员,一共6种存储类型。

Store储存数据。当一个单元格所有成员的存储类型都是Store时,单元格的数据会物理存储。前面说明输入单元格和计算单元格时,似乎存在这样的印象——非0级和带有成员公式的单元格都是不可输入的,必须由子代成员合并或公式计算得到。其实不然,决定单元格是否“可输入”是由存储类型决定的。Store类型的单元格都可输入数据,只不过在执行了计算后被输入数据会被计算结果覆盖。

DynamicCalc动态计算。相关单元格不存储数据,仅在查询时即时计算。动态计算的成员必须定义计算方法,非0级成员可以通过子代成员合并,0级成员必须有成员公式。使用动态计算的目的,一是可以减少存储空间,二是可以阻止在单元格上输入数据。但如果查询中包含有动态计算成员时,会延长查询响应时间。

DynamicCalcAndStore动态查询和存储。当第一次查询或数据被标识为脏时,即时计算,计算结果会保存下来,后续查询中就可以使用存储的数据。相比起DynamicCalc,DynamicCalcAndStore平衡了查询性能和存储空间。

LabelOnly仅标签。既不计算,也不存储数据。仅在层次中作为分组或分级的标签存在。查询LabelOnly成员时,通常显示第一个子成员的数据。

Shared共享成员。共享成员是对同维度中同名成员的引用,其数据来自于被引用成员。如果在维度中多个地方使用同一成员,可以使用共享成员。例如,Account维度中收入和支出在净收入的成员公式中被引用,可以使用共享成员来实现同样的计算。如图设计大纲,净收入下的共享成员引用了同维度中的支出与收入,按照合并计算符,可以代替成员公式的计算方法。在维库中要加入共享成员,可右击某一成员,在右键菜单中选【插入共享成员】>【作为子代】或【作为同级】。

NeverShare不共享数据。除了使用Shared类型来显示的定义共享成员外,Essbase中还有些成员是隐式共享。参考图3-48的维度结构,Home成员值实际上等于张大明成员值。Essbase能识别这种关系,并自动将张大明作为Home的共享成员,此称为隐式共享。为了避免隐式共享,可以将Home的存储类型置为NeverShare。

张大明家需要制定2013年的家庭预算,在Year维度上,只需做月度收支计划,无需细化到每一日;Home维度上,全家的预算分配到个人时,保留一部分机动资金。还需要定期核对预计收支目标和实际收支间的差异,实际支出应该小于目标支出,实际收入应该大于目标收入。如表是1月的预算与实际收支数据。

此例要求数据库可在Year、Home、Account维度的非0级成员上输入数据,所以首先确保表中相关维度成员的存储类型必须是Store。

由于机动资金,Home成员的支出是要大于子成员支出的总和。而且,要求在Year维度中,就算在日级成员中误输入了数据,也不会影响到月级成员的数据。所以在计算时,非0级成员的输入数据不能被子代成员的合并计算结果覆盖。为此将Scenario维度下预算的合并计算符设为“^”,则预算相关的所有单元格都不使用合并计算符计算。

但同时又希望在Time维度上将月度预算能汇总到季度,再汇总到全年。编辑数据库的默认计算脚本,如下:

接着来看表中差异项的定义,差异是实际和预算的差值,但支出和收入有不同的计算方向。对支出来说,实际小于预算为优,差异等于预算减实际;对收入来说,实际大于预算为优,差异等于实际减预算。这种计算方式可使用费用报告计算(Expense Reporting)功能,费用报告是除了时间平衡外,Account类型维度另一个特有的计算属性。通过将Account维度的成员标注为费用或非费用类型,可控制在@VAR和@VARPER函数中的计算方向。

在维库中将支出及其子成员的【Expense Reporting】属性设置为Expense;收入及其子成员为默认的NonExpense。修改差异的存储类型设为DynamicCalc,成员公式设为:

至此,HomeFinancial数据库已基本满足了例子中提出的需求。将这两节中的修改汇总,数据库模型最终的结构如下:

维度结构:

成员公式:

默认计算脚本:

在维库中检查HomeFinancial应用程序是否都如上修改,如无问题部署到Essbase Server。EPMA目前还无法编辑Essbase计算脚本,因此部署后再修改默认计算脚本。

Oracle Essbase入门系列(四)的更多相关文章

  1. Oracle Essbase入门系列(二)

    本篇开始会一个三口之家的家庭财务数据库为例,讲述Essbase的功能和开发.为了说明EPM应用程序的管理和开发过程,会绕一些弯路,不使用EAS,而尽量用EPMA. 创建应用程序 首先登陆到Worksp ...

  2. Oracle Essbase入门系列(一)

    1. 开篇序 本文是几年前做Hyperion Planning项目时写的,后来陆陆续续有些补充.本来打算将整个EPM写一系列的教程,但HFM写到1/3就没动力了.不过至少Essbase这部分是完整的. ...

  3. Oracle Essbase入门系列(三)

    数据库计算 Essbase中单元格的数据可以是外部输入或计算而得,单元格因而分为输入单元格和计算单元格.计算单元格的计算方法可以通过大纲中维度成员的合并计算符和公式脚本定义,此称为大纲计算定义. 例1 ...

  4. C语言高速入门系列(四)

    C语言高速入门系列(四) C语言数组 ---------转载请注明出处:coder-pig 贴心小提示:假设图看不清晰可右键另存为,应该就非常清晰了; 注意上面的代码都要自己过一遍哦! 本节引言: 经 ...

  5. 6. oracle学习入门系列之六 模式

    oracle学习入门系列之六 模式 上篇咱们学习记录了ORACLE数据库中的数据库结构.内存结构和进程等.篇幅 蛤蟆感觉偏多了.这次要休整下,每次笔记不宜太多,不然与书籍有何差别. 我们要保证的是每次 ...

  6. [转]C# 互操作性入门系列(四):在C# 中调用COM组件

    传送门 C#互操作系列文章: C# 互操作性入门系列(一):C#中互操作性介绍 C# 互操作性入门系列(二):使用平台调用调用Win32 函数 C# 互操作性入门系列(三):平台调用中的数据封送处理 ...

  7. [转]oracle学习入门系列之五内存结构、数据库结构、进程

    原文地址:http://www.2cto.com/database/201505/399285.html 1 Oracle数据库结构 关于这个话题,网上一搜绝对一大把,更别提书籍上出现的了,还有很多大 ...

  8. spring cloud 入门系列四:使用Hystrix 实现断路器进行服务容错保护

    在微服务中,我们将系统拆分为很多个服务单元,各单元之间通过服务注册和订阅消费的方式进行相互依赖.但是如果有一些服务出现问题了会怎么样? 比如说有三个服务(ABC),A调用B,B调用C.由于网络延迟或C ...

  9. Go语言入门系列(四)之map的使用

    本系列前面的文章: Go语言入门系列(一)之Go的安装和使用 Go语言入门系列(二)之基础语法总结 Go语言入门系列(三)之数组和切片 1. 声明 map是一种映射,可以将键(key)映射到值(val ...

随机推荐

  1. select 练习2

    group by :select 分组字段,聚合函数 from 表名 where  条件 group by 分组字段 having 过滤条件 select cno,avg(degree) from s ...

  2. Android相机使用(系统相机、自定义相机、大图片处理)

    本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显示出来,该例子也会涉及到Android加载大图片时候的处理(避免OOM),还有简要提一下有些人Surf ...

  3. jquery_easyui 相关问题

    1. datagrid点击title,无法进行客户端排序. 增加属性 data-options="singleSelect:true,collapsible:true,url:'/ViewS ...

  4. ASP.NET Web API 跨域访问

    自定义特性 要在WebApi中实现JSONP,一种方式是实现自定义特性  http://stackoverflow.com/questions/9421312/jsonp-with-asp-net-w ...

  5. 尝试在Mac上编译DNX

    自从XRE改名为DNX至今,从来没有在Mac OS X上成功编译过DNX.一直很纳闷,难道DNX的开发人员不用Mac?今天突然明白了,DNX的开发人员真的不用Mac.而且DNX用的2个持续集成服务Ap ...

  6. 享受LINQ:判断一组文字是否在字符串中同时出现的最简单方法

    需求是这样的:不允许在一个字符串中同时出现"博", "客", "园", "团", "队"这5个文字. ...

  7. 除非 Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,否则无法启动网站。目前,这两项服务均处于停止状态。

    win7 IIS 所有网站都停止了,启动提示: 除非 Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,否则无法启动网站.目前,这两项服务均 ...

  8. AJAX跨域调用相关知识-CORS和JSONP(引)

    AJAX跨域调用相关知识-CORS和JSONP 1.什么是跨域 跨域问题产生的原因,是由于浏览器的安全机制,JS只能访问与所在页面同一个域(相同协议.域名.端口)的内容. 但是我们项目开发过程中,经常 ...

  9. 修复SharePoint 2013 Search 拓扑错误

    Problem 当创建和配置SharePoint 2013 Search Service Application成功之后,进入详细配置页后,在Search Application Topology节点 ...

  10. iis6.0报以下的错。。

    Could not load file or assembly 'System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec8 ...