在上一篇 “管理沙盒(定制化)小细节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. 【一起学OpenFOAM】03 OpenFOAM基本使用流程

    OpenFOAM初学者常常对于软件的使用流程感到很迷惑,与其他的具有GUI的CFD软件不同,OpenFOAM的所有操作均为基于文本操作,譬如说里面各种计算模型.计算参数.流程控制参数等,均为通过修改对 ...

  2. Android NDK debug 方法

    最近又频繁遇到 NDK 的错误,记录一下debug调试的一些经验,以备后续查看 一般来说,在Android Studio中的Monitor中将过滤器的 LOG TAG 设置为 "DEBUG& ...

  3. Struts2数据校验

    Struts2数据校验 1.常见数据校验方法 表单数据的校验方式: 表单中的数据必须被效验以后才能够被使用,常用的效验方式分为两种: 前台校验:也称之为客户端效验,主要是通过JS编程的方式进行表单数据 ...

  4. AutoMapper(二)

    返回总目录 首先,先创建一个控制台项目,引用AutoMapper程序集,创建三个类User,UserDto,UserMappingProfile,下面的知识点的演示都以此项目为基础,代码分别如下: n ...

  5. Visual Studio Code,完美的编辑器

    今日凌晨,微软的文本(代码)编辑器 Visual Studio Code(简称 VS Code),发布了首个正式版,距离首个 beta 版上线时间刚好一年. 在十多年的编程经历中,我使用过非常多的的代 ...

  6. 【css3笔记】---- 渐变的秘密

    <CSS揭秘>这本书非常不错,充满了干货和惊喜.以下主要是关于使用渐变做出来的一些效果的笔记.请用最新的现代浏览器观看. 首先要回顾下一个css语句: linear-gradient([ ...

  7. ABP(现代ASP.NET样板开发框架)系列之8、ABP日志管理

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之8.ABP日志管理 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

  8. Windows.document

    一.找到元素: document.getElementById("id");根据id找,最多找一个 var a =document.getElementById("id& ...

  9. Bootstrap3系列:下拉菜单

    1.引用Bootstrap 示例引用的Bootstrap版本:v3.3.7 <script src="~/Scripts/jquery-2.2.4.min.js">&l ...

  10. 为 Sublime Text 3059 配置 PHP 编译环境

    关于  Sublime Text 3059 的安装及汉化 请参看 http://www.xiumu.org/note/sublime-text-3.shtml 为 sublime Text 配置 PH ...