在上一篇 “管理沙盒(定制化)小细节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——使用对象触发器更新数字字段的更多相关文章

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

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

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

    在上一篇随笔中,我们建立了部门和子部门的双提示,并将部门和子部门做了关联.那么,本篇随笔我们重点介绍利用建好的双提示进行传参. 在操作之前,我们来看一个报告和分析的具体需求: [1] 两个有关联的提示 ...

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

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

  4. 【xmind converse excel】测试用例定制化小工具

    背景 公司使用jira, jira写测试用例,jira可以通过execl导入进jira, 生成测试用例,但是模板很不统一,如果只是再execl中修改,又觉得及其的麻烦,所以写了一个xmind 转化为定 ...

  5. 定制化Azure站点Java运行环境(5)

    Java 8下PermGen及参数设置 在上一章节中,我们定制化使用了Java 8环境,使用我们的测试页面打印出了JVM基本参数,但如果我们自己观察,会发现在MXBeans中,没有出现PermGen的 ...

  6. .netcore 定制化项目开发的思考和实现

    今年年初进了一家新公司,进入之后一边维护老项目一边了解项目流程,为了接下来的项目重做积累点经验. 先说下老项目吧,.net fx 3.5+oracle...... 在实际维护中逐渐发现,老项目有标准版 ...

  7. ASP.NET Core应用的错误处理[3]:ExceptionHandlerMiddleware中间件如何呈现“定制化错误页面”

    DeveloperExceptionPageMiddleware中间件利用呈现出来的错误页面实现抛出异常和当前请求的详细信息以辅助开发人员更好地进行纠错诊断工作,而ExceptionHandlerMi ...

  8. Gradle 实现 Android 多渠道定制化打包

    Gradle 实现 Android 多渠道定制化打包 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在项目中遇到需要实现 Apk 多渠道.定制化打包, Google .百度查找了一些资料, ...

  9. kettle系列-4.kettle定制化开发工具类

    要说的话这个工具类还是比较简单的,每个方法体都比较小,但用起来还是可以的,把开发中一些常用的步骤封装了下,不用去kettle源码中找相关操作的具体实现了. 算了废话不多了,直接上重点,代码如下: im ...

随机推荐

  1. Ubuntu1604下安装Liggghts及CFDEM Coupling

    部分内容参考http://www.linuxdiyf.com/linux/16315.html LIGGGHTS是一款开源的DEM软件,来自于著名的分子动力学软件LAMMPS,目前借助于CFDEM C ...

  2. web.xml中load-on-startup的作用

    如下一段配置,熟悉DWR的再熟悉不过了:<servlet>   <servlet-name>dwr-invoker</servlet-name>   <ser ...

  3. CSharpGL(13)用GLSL实现点光源(point light)和平行光源(directional light)的漫反射(diffuse reflection)

    CSharpGL(13)用GLSL实现点光源(point light)和平行光源(directional light)的漫反射(diffuse reflection) 2016-08-13 由于CSh ...

  4. 反向代理与 Real-IP 和 X-Forwarded-For

    开篇语:开涛新作<亿级流量网站架构核心技术>出版计划公布以来,博文视点遭受到一波又一波读者询问面世时间的DDos攻击.面对亿级流量的热情,感激之余,我们也很庆幸——这部作品质量的确过硬,不 ...

  5. Android点滴

    1,View中getWidth(),getLayoutParams.width,getMeasureedWidth()的区别 2,setCompoundDrawables和setCompoundDra ...

  6. JavaScript权威设计--Window对象(简要学习笔记十三)

    1.Window对象是所有客户端JavaScript特性和API的主要接入点. Window对象中的一个重要属性是document,它引用Document对象. JavaScript程序可以通过Doc ...

  7. 1. SVM简介

    从这一部分开始,将陆续介绍SVM的相关知识,主要是整理以前学习的一些笔记内容,梳理思路,形成一套SVM的学习体系. 支持向量机(Support Vector Machine)是Cortes和Vapni ...

  8. Bootstrap相关资料

    WEB项目中,使用Bootstrap较多.但是一些插件却比较确实,所以整理了一份Bootstrap相关插件的地址.基本满足日常WEB开发中插件需求.并且还挺好用的 bootstrap说明文档,有问题可 ...

  9. Log4net入门(回滚日志文件篇)

    在上一篇Log4net(日志文件篇)中,我们使用"log4net.Appender.FileAppender"将日志信息输出到一个单一的文件中,随着应用程序的持续使用,该日志文件会 ...

  10. DDD 领域驱动设计-领域模型中的用户设计

    上一篇:<DDD 领域驱动设计-如何控制业务流程?> 开源地址:https://github.com/yuezhongxin/CNBlogs.Apply.Sample(代码已更新,并增加了 ...