在上一篇随笔中,我们建立了部门和子部门的双提示,并将部门和子部门做了关联。那么,本篇随笔我们重点介绍利用建好的双提示进行传参。

在操作之前,我们来看一个报告和分析的具体需求:

[1] 两个有关联的提示:部门和子部门。

1.部门包括北京销售部、郑州销售部(此处为小的模拟例子,具体项目实施中可以根据相应字段选取);

2.子部门包括北京销售1部、北京销售2部、郑州销售1组、郑州销售2组;

3.当部门的值为北京销售部时,子部门的值列表范围为:北京销售1部、北京销售2部;郑州销售部同理。

(已满足,并且:“部门”对应表示变量“PV_A”;“子部门”对应表示变量“PV_B”,详情查看随笔“Oracle Sales Cloud:报告和分析(BIEE)小细节1”)

[2] 新建商机明细报表,具体展示列包括:商机ID、名称、销售阶段、责任人、成功率、金额、利润、利润率、资源组织名称(部门)。

[3] 对于提示传参的要求。

1.当部门的值为北京销售部时,报表展示资源组织名称为整个北京销售部的数据(包括北京销售1部和北京销售2部);

2.当子部门的值为北京销售1部时,报表展示资源组织名称为北京销售1部的数据;当子部门的值为北京销售2部时,报表展示资源组织名称为北京销售2部的数据。

3.对于郑州销售部的情况同上。

现在,我们开始在BI中做满足这个需求的分析和仪表盘:

     (1)第1步:创建“CUX_商机明细报表”,选取对应数据展示列,如图1。

              注意:“资源组织名称”列对应的是子部门数据,因为资源对应的是各个销售人员,所在组织是相应的销售部门。

      图1:新建商机明细报表

    (2)第2步:添加过滤器,将过滤器转化为SQL。

      图2:添加过滤器

    (3)第3步:修改过滤器的SQL,如图3。

             注意:此处取值为SQL结果,该处用到的查询方法为:union连接各个Select结果

               那么此处的SQL便是(此处取得字段为“资源所在组织”):

1.部门层次的结果限定

"Employee"."Resource Primary Organization Name" in (
               SELECT DISTINCT "Resource Primary Organization Name" FROM "Sales - CRM Pipeline"  
                  WHERE '@{PV_A}{}'is null
                     AND "Employee"."Resource Primary Organization Name" in ('北京销售1部','北京销售2部','郑州销售1组','郑州销售2组')
               union
               SELECT DISTINCT "Resource Primary Organization Name" FROM "Sales - CRM Pipeline"
                  WHERE '@{PV_A}{}'='北京销售部'
                     AND "Employee"."Resource Primary Organization Name" in ('北京销售1部','北京销售2部')
               union
               SELECT DISTINCT "Resource Primary Organization Name" FROM "Sales - CRM Pipeline"  
                  WHERE '@{PV_A}{}'='郑州销售部'
                     AND "Employee"."Resource Primary Organization Name" in ('郑州销售1组','郑州销售2组')
              )

              2.子部门层次的结果限定,和部门之间用“AND”连接

"Employee"."Resource Primary Organization Name" in (
               SELECT DISTINCT "Resource Primary Organization Name" FROM "Sales - CRM Pipeline"  
                  WHERE '@{PV_B}{}' is null
                     AND "Employee"."Resource Primary Organization Name" in ('北京销售1部','北京销售2部','郑州销售1组','郑州销售2组')
               union
               SELECT DISTINCT "Resource Primary Organization Name" FROM "Sales - CRM Pipeline"  
                 WHERE '@{PV_B}{}'= '北京销售1部'
                     AND "Employee"."Resource Primary Organization Name" = '北京销售1部'
               union
               SELECT DISTINCT "Resource Primary Organization Name" FROM "Sales - CRM Pipeline"  
                  WHERE '@{PV_B}{}'= '北京销售2部'
                     AND "Employee"."Resource Primary Organization Name" = '北京销售2部'
               union
               SELECT DISTINCT "Resource Primary Organization Name" FROM "Sales - CRM Pipeline"  
                  WHERE '@{PV_B}{}'= '郑州销售1组'
                     AND "Employee"."Resource Primary Organization Name" = '郑州销售1组'
               union
               SELECT DISTINCT "Resource Primary Organization Name" FROM "Sales - CRM Pipeline"  
                  WHERE '@{PV_B}{}'= '郑州销售2组'
                     AND "Employee"."Resource Primary Organization Name" = '郑州销售2组'
              )

图3:修改过滤器

  (4)第4步:将提示和明细报表放到同一仪表盘下部署即可。

      图4:新建仪表盘

总结:报告和分析(BI开发)小细节2——利用变量和过滤器进行传参(例如,根据提示展示不用部门的数据),主要介绍了利用表示变量和过滤器进行传参,进而让报表可以根据不同提示展示相对应的数据。同样需要注意:利用这个方法后,对于实际项目而言,一旦企业的组织架构做了调整,过滤器和提示一样也要进行对应修改。

谢谢,欢迎大家随时指正和交流!

Oracle Sales Cloud:报告和分析(BIEE)小细节2——利用变量和过滤器传参(例如,根据提示展示不同部门的数据)的更多相关文章

  1. Oracle Sales Cloud:报告和分析(BIEE)小细节1——创建双提示并建立关联(例如,部门和子部门提示)

    Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的客户商机管理系统,通过提供丰富的功能来帮助提高销售效率,更好地去了解客户,发现和追踪商机,为最终的销售成交 (d ...

  2. Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面

    Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...

  3. Oracle Sales Cloud:管理沙盒(定制化)小细节2——使用对象触发器更新数字字段

    在上一篇 "管理沙盒(定制化)小细节1" 的随笔中,我们使用公式法在 "业务机会" 对象(单头)上建立了 "利润合计" 字段,并将它等于 & ...

  4. arm汇编进入C函数分析,C函数压栈,出栈,传参,返回值

    环境及代码介绍 环境和源码 由于有时候要透彻的理解C里面的一些细节问题,所有有必要看看汇编,首先这一切的开始就是从汇编代码进入C的main函数过程.这里不使用编译器自动生成的这部分汇编代码,因为编译器 ...

  5. 【ORACLE】awr报告问题分析

    本文转自:http://www.linuxidc.com/Linux/2015-10/123959.htm 感谢分享 1.问题说明 运维人员都有"节日休假恐怖症",越到节日.休假和 ...

  6. 微信小程序和微信小程序之间的跳转和传参示例代码附讲解

    一:微信小程序跳转 使用限制 需要用户触发跳转 从 2.3.0 版本开始,若用户未点击小程序页面任意位置,则开发者将无法调用此接口自动跳转至其他小程序. 需要用户确认跳转 从 2.3.0 版本开始,在 ...

  7. JS分析URL字符串,取得参数名,AJAX传参请求代码示例

    //当前页面URL中参数分析函数,正则校验 function getQueryString(name) { var reg = new RegExp("(^|&)" + n ...

  8. 微信小程序——动态渲染页面、路径传参

      1.动态渲染页面.改变css.样式必须setData渲染过去   this.setData({ userInfo: app.globalData.userInfo, token: app.glob ...

  9. 微信小程序 子组件给父组件传参

    子组件给父组件传参只需这4步: 子组件的两步: 1.子组件绑定函数 addInfo <button type="primary" bindtap="addInfo& ...

随机推荐

  1. caffe的python接口学习(7):绘制loss和accuracy曲线

    使用python接口来运行caffe程序,主要的原因是python非常容易可视化.所以不推荐大家在命令行下面运行python程序.如果非要在命令行下面运行,还不如直接用 c++算了. 推荐使用jupy ...

  2. APP漏洞扫描用地址空间随机化

    APP漏洞扫描用地址空间随机化 前言 我们在前文<APP漏洞扫描器之本地拒绝服务检测详解>了解到阿里聚安全漏洞扫描器有一项静态分析加动态模糊测试的方法来检测的功能,并详细的介绍了它在针对本 ...

  3. SQL SERVER全面优化-------Expert for SQL Server 诊断系列

    现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高.软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治.开发人员解决数据问题基本又是 ...

  4. UWP控件与DataBind

    在uwp开发中必不可少的一个环节就是各种通用的控件的开发,所以在闲暇时间汇总了一下在uwp开发中控件的几种常用写法,以及属性的几种绑定方式,有可能不全面,请大家多多包涵 :) 1.先从win10新增的 ...

  5. 高性能的关键:Spring MVC的异步模式

    我承认有些标题党了,不过话说这样其实也没错,关于“异步”处理的文章已经不少,代码例子也能找到很多,但我还是打算发表这篇我写了好长一段时间,却一直没发表的文章,以一个更简单的视角,把异步模式讲清楚. 什 ...

  6. Linux 桌面系统字体配置要略

    字体显示效果测试 这一段是为了测试宋体字的显示效果,包括宋体里面自带的英文字体,“This is english,how does it look like?”.这一行是小字.后面几个字是加粗的宋体. ...

  7. Maven pom文件常用配置,转载

    什么是POM Project Object Model,项目对象模型.通过xml格式保存的pom.xml文件.作用类似ant的build.xml文件,功能更强大.该文件用于管理:源代码.配置文件.开发 ...

  8. babel presets stage-x

    在一些新框架的代码中,常基于es6/7标准来书写代码.鉴于这些标准被没有被浏览器广泛支持,我们一般使用babel来将使用e6/7标准书写的代码降级编译(或者说转译)为浏览器可解析的es4/5代码. 以 ...

  9. sublime text 插件

    html-css-js prettify html5 anaconda pretty json JavaScript Completions SqlBeautifier Emmet Css Snipp ...

  10. JavaScript中的apply,call与this的纠缠

    1.apply定义 apply:调用函数,并用指定对象替换函数的 this 值,同时用指定数组替换函数的参数. 语法:apply([thisObj[,argArray]]) thisObj 可选.要用 ...