Oracle Sales Cloud:管理沙盒(定制化)小细节2——使用对象触发器更新数字字段
在上一篇 “管理沙盒(定制化)小细节1” 的随笔中,我们使用公式法在 “业务机会” 对象(单头)上建立了 “利润合计” 字段,并将它等于 “业务机会收入” 子对象中的各行(单行)利润之和,但是BI报表的主题区域中抓不到我们新建的字段。那么本篇随笔我们将介绍另外一种可以达到需求的方法,并且让BI报表能抓取到。
在操作之前,我们来看具体的定制化业务需求:
实际业务需求:如图1,在编辑业务机会:汇总页面中 “销售渠道” 字段下添加 “利润合计” 字段,其值为下面产品行中的利润总和,不可人为更新。
分析:既然不使用公式法创建字段,我们便考虑使用普通的数值字段,这样报表便能抓取到,之后通过对象触发器来达到能等于各行利润之和的目的。
图1:编辑业务机会:汇总
现在,我们开始在 “管理沙盒” 中进行定制化:
(1)第1步:在 “设置和操作” 菜单的 “管理沙盒” 下创建沙盒,然后选中沙盒点击 “设置为活动状态”,详细操作可以参考 “管理沙盒(定制化)小细节1” 随笔截图。
(2)第2步:在 “导航栏->更多” 路径下,进入到 “应用程序编辑器”,详细操作可以参考 “管理沙盒(定制化)小细节1” 随笔截图。
(3)第3步:进入 “应用程序编辑器” 后,在 “销售” 应用下找到 “业务机会” 对象,点击 “字段”,详细操作可以参考 “管理沙盒(定制化)小细节1” 随笔截图。
(4)第4步:在 “业务机会”对象的 “字段” 下,新建 “利润合计(非公式)” 字段,详细步骤:
[4.1] 点击 “新建”,数据类型选择 “数字”,填写字段基本信息,点击 “下一步”,如图2(注意名称和显示标签)。
[4.2] 创建字段后,在 “业务机会->服务器脚本” 路径下,进入到 “对象触发器”。
注意:Oracle Sales Cloud 定制使用的是Groovy脚本语言,比较简洁方便,省时省力(后续会单独介绍),此处脚本为:
def newsum = ChildRevenue.sum ('Profit_c') // 定义变量
if (profitSumCux_c != newsum){
setAttribute ('profitSumCux_c ' , newsum) //当if条件满足时,执行 “利润合计(非公式)” 值等于newsum
}
图2:创建数字字段
图3:对象触发器
图4:新建对象触发器
(5)第5步:通过前面几步,“利润合计” 字段已经创建成功,现在要在 “业务机会->页面” 下部署到详细页面中,详细步骤:
[5.1] 在 “业务机会->页面” 路径下,进入 “页面”,找到详细信息页面布局,详细操作可以参考 “管理沙盒(定制化)小细节1”随笔截图。
注意:默认布局是允许修改的,但是一般而言,不建议修改默认布局,可以复制出来新的布局 “利润显示布局” 进行修改,勾选有效即可。
[5.2] 将 “利润合计” 字段添加显示,详细操作可以参考 “管理沙盒(定制化)小细节1”随笔截图。
(6)第6步:在 沙盒中查看显示效果,如图5,确定后发布沙盒即可。
注意:最后完成定制功能后别忘了发布沙盒,点击沙盒管理中点击 “发布” 按钮即可。
图5:效果展示
总结:管理沙盒(定制化)小细节2——使用对象触发器更新数字字段,和上篇利用公式法达到同样的目的,并且BI报表主题区域可以抓取到新建的字段。需要注意:该方法创建的 “利润合计” 字段也有以下显著弊端:[1] 事实上,该方法创建字段如果部署前端页面的话,是可以人为更新的(后面我们可以介绍如何使用验证规则不让人为修改),不过如果只为了报表抓取,大可不必部署到前端页面;[2] 由于该方法中使用的触发器是 Before Update in Database,那么对于部署之前的业务机会数据是没法改变的(即之前业务机会页面上的 “利润合计(非公式)” 为空),所以如果在实际项目中,一定要慎重,并且做好以前的数据处理方案。
谢谢,欢迎大家随时指正和交流!
Oracle Sales Cloud:管理沙盒(定制化)小细节2——使用对象触发器更新数字字段的更多相关文章
- Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面
Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...
- Oracle Sales Cloud:报告和分析(BIEE)小细节2——利用变量和过滤器传参(例如,根据提示展示不同部门的数据)
在上一篇随笔中,我们建立了部门和子部门的双提示,并将部门和子部门做了关联.那么,本篇随笔我们重点介绍利用建好的双提示进行传参. 在操作之前,我们来看一个报告和分析的具体需求: [1] 两个有关联的提示 ...
- Oracle Sales Cloud:报告和分析(BIEE)小细节1——创建双提示并建立关联(例如,部门和子部门提示)
Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的客户商机管理系统,通过提供丰富的功能来帮助提高销售效率,更好地去了解客户,发现和追踪商机,为最终的销售成交 (d ...
- 【xmind converse excel】测试用例定制化小工具
背景 公司使用jira, jira写测试用例,jira可以通过execl导入进jira, 生成测试用例,但是模板很不统一,如果只是再execl中修改,又觉得及其的麻烦,所以写了一个xmind 转化为定 ...
- 定制化Azure站点Java运行环境(5)
Java 8下PermGen及参数设置 在上一章节中,我们定制化使用了Java 8环境,使用我们的测试页面打印出了JVM基本参数,但如果我们自己观察,会发现在MXBeans中,没有出现PermGen的 ...
- .netcore 定制化项目开发的思考和实现
今年年初进了一家新公司,进入之后一边维护老项目一边了解项目流程,为了接下来的项目重做积累点经验. 先说下老项目吧,.net fx 3.5+oracle...... 在实际维护中逐渐发现,老项目有标准版 ...
- ASP.NET Core应用的错误处理[3]:ExceptionHandlerMiddleware中间件如何呈现“定制化错误页面”
DeveloperExceptionPageMiddleware中间件利用呈现出来的错误页面实现抛出异常和当前请求的详细信息以辅助开发人员更好地进行纠错诊断工作,而ExceptionHandlerMi ...
- Gradle 实现 Android 多渠道定制化打包
Gradle 实现 Android 多渠道定制化打包 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在项目中遇到需要实现 Apk 多渠道.定制化打包, Google .百度查找了一些资料, ...
- kettle系列-4.kettle定制化开发工具类
要说的话这个工具类还是比较简单的,每个方法体都比较小,但用起来还是可以的,把开发中一些常用的步骤封装了下,不用去kettle源码中找相关操作的具体实现了. 算了废话不多了,直接上重点,代码如下: im ...
随机推荐
- 使用apache自带日志分割模块rotatelogs,分割日志
rotatelogs 是 Apache 2.2 中自带的管道日志程序,参数如下(参见:http://lamp.linux.gov.cn/Apache/ApacheMenu/programs/rotat ...
- Handler
1.1 继承AbstractController优点:能定制请求方式 package cn.happyl.controller; import javax.servlet.http.HttpServl ...
- Spring MVC初始化参数绑定
初始化参数绑定与类型转换很类似,初始化绑定时,主要是参数类型 ---单日期 在处理器类中配置绑定方法 使用@InitBinder注解 在这里首先注册一个用户编辑器 参数一为目标类型 proper ...
- MVC5在Mono上的各种坑
买了Macbook后,各种事情的纠缠,都没好好地用过OSX系统. 果断的装上了xcode和mono,还有monodevelop. 然后把项目移植到mono上运行,各种问题. 然后第一个问题来了 权限不 ...
- 在.NET Core控制台程序中使用依赖注入
之前都是在ASP.NET Core中使用依赖注入(Dependency Injection),昨天遇到一个场景需要在.NET Core控制台程序中使用依赖注入,由于对.NET Core中的依赖注入机制 ...
- 不得不知的CLR中的GC
引言 GC 作为CLR的垃圾回收器,让程序员可以把更多的关注度放在业务上而不是垃圾回收(内存回收)上.其实很多语言也有类似的东东, 如Java也有JIT 等等 GC基本概念 垃圾回收机制的算法有好多种 ...
- 谈一谈Http Request 与 Http Response
写在前面的话:今天来总结一下http相关的request和response,就从以下几个问题入手吧. ======正文开始======== 1.什么是HTTP Request 与HTTP Respon ...
- 基于虎书实现LALR(1)分析并生成GLSL编译器前端代码(C#)
基于虎书实现LALR(1)分析并生成GLSL编译器前端代码(C#) 为了完美解析GLSL源码,获取其中的信息(都有哪些in/out/uniform等),我决定做个GLSL编译器的前端(以后简称编译器或 ...
- [Solr] (源) Solr与MongoDB集成,实时增量索引
一. 概述 大量的数据存储在MongoDB上,需要快速搜索出目标内容,于是搭建Solr服务. 另外一点,用Solr索引数据后,可以把数据用在不同的项目当中,直接向Solr服务发送请求,返回xml.js ...
- [转载]从MyEclipse到IntelliJ IDEA-让你摆脱鼠标,全键盘操作
从MyEclipse转战到IntelliJ IDEA的经历 注转载址:http://blog.csdn.net/luoweifu/article/details/13985835 我一个朋友写了一篇“ ...