在上一篇 “管理沙盒(定制化)小细节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. Windows Server 2008 R2常规安全设置及基本安全策略

    这篇文章主要介绍了Windows Web Server 2008 R2服务器简单安全设置,需要的朋友可以参考下 用的腾讯云最早选购的时候悲催的只有Windows Server 2008 R2的系统,原 ...

  2. Java版本:识别Json字符串并分隔成Map集合

    前言: 最近又看了点Java的知识,于是想着把CYQ.Data V5迁移到Java版本. 过程发现坑很多,理论上看大部分很相似,实践上代码写起来发现大部分都要重新思考方案. 遇到的C#转Java的一些 ...

  3. 认识ASP.NET 5项目结构和项目文件xproj

    ASP.NET 5 在项目结构上做了很大的改变,我们以前熟悉的目录结构与项目文件内容都不太一样了,本篇文章带大家了解 ASP.NET 5 到底跟以前有哪些不一样的地方. 我们先用 Visual Stu ...

  4. Maven实战:Maven生命周期

    前言 之前有写过一篇文章Maven实战,介绍了Maven的一些基本概念,以及对于一个初学者而言的Maven基础知识,当时在我看来掌握了这些基本是够用的. 随着工作的深入,越来越感觉对于Maven的理解 ...

  5. HTML (超文本标记语言)

    <html> --开始标签 <head> 网页上的控制信息 <title>页面标题</title> </head> <body> ...

  6. 关于百度编辑器UEditor的一点说明

    大家在使用的时候要特别注意editor_config.js中的“URL”这个参数 我的理解:1.这个参数是editor整个结构的总路径          2.首先要把这个路径配置好了.才能正常的显示, ...

  7. clearfix的最佳方案----在路上(22)

    clearfix的纠结 骨灰级解决办法: .clear{clear:both;height:0;overflow:hidden;} 上诉办法是在需要清除浮动的地方加个div.clear或者br.cle ...

  8. 基本数据结构(2)——算法导论(12)

    1. 引言     这一篇博文主要介绍链表(linked list),指针和对象的实现,以及有根树的表示. 2. 链表(linked list) (1) 链表介绍      我们在上一篇中提过,栈与队 ...

  9. 判断CPU是大端还是小端模式

    在小端模式中,低位字节放在低地址,高位字节放在高地址:在大端模式中,低位字节放在高地址,高位字节放在低地址.big-endian和little-endian,51单片机是典型的大端模式,Intel电脑 ...

  10. 一个技术汪的开源梦 —— 基于 .Net Core 的公共组件之 Http 请求客户端

    一个技术汪的开源梦 —— 目录 想必大家在项目开发的时候应该都在程序中调用过自己内部的接口或者使用过第三方提供的接口,咱今天不讨论 REST ,最常用的请求应该就是 GET 和 POST 了,那下面开 ...