Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的客户商机管理系统,通过提供丰富的功能来帮助提高销售效率,更好地去了解客户,发现和追踪商机,为最终的销售成交 (deal)铺路。当然,今天我们的重点不是介绍Oracle Sales Cloud,而是它的报表开发中的一个小细节功能——提示。事实上,Oracle Sales Cloud的报告和分析模块开发使用的是封装好的BI工具,目前(2016年9月)版本是:Oracle Business Intelligence 11.1.1.7.0。
图1:Oracle Sales Cloud导航栏 图2:Oracle Sales Cloud 报告和分析
我们知道,BI开发中,可以把提示部署到仪表盘,并且根据提示传参,进而达到选择不同提示内容,报表展示相应的数据。现在,有这样一个需求:
[1] 两个提示:部门和子部门。
[2] 部门包括北京销售部、郑州销售部(此处为小的模拟例子,具体项目实施中可以根据相应字段选取);
子部门包括北京销售1部、北京销售2部、郑州销售1组、郑州销售2组;
[3] 当部门的值为北京销售部时,子部门的值列表范围为:北京销售1部、北京销售2部;郑州销售部同理。
[4] 商机明细报表数据根据相应的提示,展示对应部门或子部门的数据(后续我们会再说根据双提示传参的这个小细节,本次主要先满足提示需求)
现在,我们开始在BI中做满足这个改需求提示:
(1)第1步:在主题区域仪表盘提示文件夹下创建“CUX_部门和子部门提示”,新建列提示“部门”,如图3。
注意:需要设置表示变量,目的是为了对“子部门”列用SQL取值时限定不同条件。
图3:部门列提示
(2)第2步:新建空的列提示,如图4。作用:不展示在前端界面,设置限制值的依据为“部门”,在“部门”列的值更新时,随之更新。
注意:列提示为空的方法——编译公式中打两个单引号;标签为空;用户输入为复选框,宽度0像素。
图4:空提示
(3)第3步:新建列提示“子部门”,如图5。
注意:此处取值为SQL结果,该处用到的查询方法为:Where子句中有多条件
Select * From 表 Where ( 条件1 and 结果1 ) or ( 条件2 and 结果2 ) or ( 条件3 and 结果3 )
那么此处的SQL结果便是(此处取得字段为“资源所在组织”):
SELECT "Employee"."Resource Primary Organization Name"
FROM "Sales - CRM Pipeline"
WHERE (‘@{PV_A}‘= ‘北京销售部‘ AND "Employee"."Resource Primary Organization Name" in (‘北京销售1部‘,‘北京销售2部‘))
OR (‘@{PV_A}‘= ‘郑州销售部‘ AND "Employee"."Resource Primary Organization Name" in (‘郑州销售1组‘,‘郑州销售2组‘))
ORDER BY "Employee"."Resource Primary Organization Name"
图5:子部门列提示
到此,我们便可以将所做的提示部署到仪表盘测试一下了,如图6和图7。
图6:显示结果1 图7:显示结果2
总结:报告和分析(BI开发)小细节1——创建双提示并有父子关联(例如,部门和子部门提示),主要介绍了利用表示变量搭建部门和子部门两个提示,并且赋予父子关联。此外我们也可以看出,这个方法最大的弊端便是:对于实际项目而言,一旦企业的组织架构做了调整,那么提示便要做修改了,因为一旦部门有改变,无论是“部门”列的特定值还是“子部门”列的SQL结果都会受到影响。
谢谢,欢迎大家随时指正和交流!