针对salesforce系统也好,针对其他的平台系统也好,对于business user的需求以及疑问,数据往往决定了答案。业务人员提出了某些疑问,管理员需要根据需求的分析转换成数据的分析及过滤从而反馈给business user想要的结果。

比如销售经理扔过来一个需求,整理一下本公司的Product Top Sellers。 作为salesforce的管理员需要去分析当前的需求。

  • Top Seller定义是什么? by quantity还是by revenue排序还是by其他条件?
  • Product 通常根据Product Family进行分类,比如能源,教育等等,展示数据是否需要根据Product Family进行分组?
  • Product Top Seller的范围是什么时间? 今年,去年还是根据其他的条件?
  • Product Inactive情况下,是否需要展示?
  • 哪些用户可以看见这份报告?全部能看见还是by group还是只能他看见还是其他?
  • 是否需要定期发送此report数据给他或者指定的人/组?

当得到业务人员的confirm以后,确认最终需求并且分析:

  • Top Seller by quantity;
  • Product需要根据Product Family进行分组;
  • Product Top Seller需要找已经赢单的数据;
  • 已经inactive的数据不需要展示出来。
  • 所有的用户都可以看见
  • 不需要定期report,只需要保存所有人能访问即可。

分析:
是否系统中已经有指定的 Report Type进行选择还是需要自定义 Report Type?
Report Format如何选择?
需要选择哪些条件进行过滤?

设计:

Report Type使用标准的即可: Opportunities With Products
因为需要通过Product Family进行分组,所以 Report Format 需要选择 Summary
过滤条件:
Product : Active
Opportunity Stage : 'Close Won'

根据上述的条件设计保存以后,销售经理的问题就迎刃而解。作为salesforce的从业人员,report是我们经常需要使用的数据分析工具去更好的解答业务人员的疑惑。想要创建/编辑/删除Report,需要拥有system permission的Create and Customize Reports和Report Builder权限;如果想要run report,需要拥有system permission的Run Reports的权限;如果想要Schedule Report,需要拥有system permission的Schedule Reports。本篇根据以下几个方面进行Report的简单知识的讲解。

一. Report Type

Report type可以解释为一个模板,用来当用户创建Report时,决定哪些表和字段用户可以有权限访问。salesforce提供了大量的标准的report type以供使用,如果标准的report type不足以满足用户需求情况下可以自定义report type。不管是标准的report type还是自定义的report type都具有 primary object relation ship以及对应的field layout。针对 primary object relationship, 每个report type中都会必须指定一个primary object以及可选的关联列表,关联列表的选择需要有lookup关系或者MD关系。针对主object以及级联的object有两种数据关系。

  • Primary object with related object:此关系为返回的主object数据必须要包含至少一条的related object的数据,如果主object数据中没有相关联的数据,则不会作为结果进行返回。
  • Primary object with or without related object:此关系为返回的主object数据不管是否包含关联列表均会作为结果返回。

一张图来总结with 以及with or without如下所示,A 为 primary object,B为A的related object.

当我们了解report type数据关系以后,我们便可以通过report type创建report了。因为很多report type官方没有提供,所以我们需要自己去创建自定义的report type,比如我们想要出一份contact 到opportunity / quote /quote line item的report,但是官方没有提供这个report type,这时我们就需要自己创建了。创建步骤如下:

1. Set Up 搜索report type后点击continue以后点击New button;

2. 针对 Primary Object,我们这里是Contact,label代表着你在report区域搜索对应的名称,store in category代表着当前的report type在哪个folder下面进行管理;

3.  根据需求选择related object以及数据关系。数据关系决定了你返回的数据的数量,根据业务的需求准确的选择。report type最多可以选择4层,如果你的数据结构多余4曾,选择主要的related object以后再Edit Layout部分选择需要的object的数据信息。

4. 当我们保存成功以后,我们可以查看每个表中的对应的field layout。如果需要的字段没有在layout中,只需要Edit Layout即可。

我们如果有超过4层结构情况下,可以将主要的子related object选出来,然后根据add fields related via lookup方式选择出来。

二. Report

Report Type创建好以后我们就可以根据需求来创建相应的report了,下面根据以下几点进行描述。

1. Report Filter

当我们创建Report时,需要有根据业务的需求进行数据的过滤,比如看我自己的数据,看当前年的数据等等。Salesforce有5个类型的Filter进行数据的过滤。

Filter Type Description
Standard Filter 不同的对象拥有不同的 Standard Filter,不过大部分对象都包括一些公用的Standard Filter比如 show all/show me 以及date range等
Field Filter 使用字段的比较进行过滤,比如 opportunity stage 为 close/won等
Filter Logic 当我们进行多个Field Filter时,我们可能希望2 和 3 是或的关系,我们可以使用 Filter Logic进行实现 1 AND (2 OR 3)
Cross Filter Filter条件为使用子object通过with / with or without 条件,下面会有例子说明。
Row Limit 针对tabular format的report,可以限制展示的记录的上限。通常可以将Row Limit的Report作为source report去创建Dashboard table或者chart component

其他的几个都很好理解,下面说一下 Cross Filter的场景。公司的销售经理想要一份针对去年没有 Close/Won的Opportunity的Account的报告。按照正常想法我们可能需要在Account上面使用Formula字段去统计没有Close/Won的Opportunity,其实这种情况下我们只需要使用Cross Filter就可以简单的实现了。

2. Report Format

Salesforce提供了4种方式去进行Report中数据的format,分别是 Tabular / Summary / Matrix / Joined。 根据不同的场景我们会选择不同的format方式。

1) Tabular

Tabular是salesforce创建Report默认的format方式,也是最简单和最快的方式。此种类型最适合应用于纪录列表或者具有单个总计的列表。当然此种类型也有限制,此种方式不能创建chart,在不使用Row Limit情况下也不能用作Dashboard的source report.下图为展示当前年份的所有的Opportunity并且对Expected Revenue进行汇总。

2) Summary

Summary在Tabular的基础上,增加了针对某个列进行数据分组,查看分类汇总以及创建图标,同时也可以作为Dashboard的source report. 基于上个Report,我们可以通过Stage进行分组并且查看基于Stage的分类汇总结果,同时可以创建report chart去直观的显示效果。Summary和Tabular的重要区别为可以通过某列或者某些列进行分组,如果使用Summary format但是没有选择基于哪列分组,则运行结果和Tabular相同。

3) Matrix: 此种格式和上面的Summary效果相似,区别在于使用Matrix可以针对行和列对数据进行分组和汇总。此种格式经常用于比较相关的汇总信息,特别是用于对大量数据进行汇总并且要根据不同的字段进行比较,或者是想要通过日期/产品/人/地理等维度去看数据。当我们运行Matrix格式的Report时,如果没有通过至少一行和一列进行分组情况下,运行结果和Summary类型相同。下图中展示的时通过Stage 以及 Probability对Opportunity的Amount进行分析。

4) Join Report: Join Report可以让你创建多个report块为你的数据提供不同的视图。每一块都类似一个子report,可以展示独立的字段等信息,也可以使用不同的report type展示数据。Join Report相关可以查看官方视频: http://salesforce.vidyard.com/watch/9HiLP7WVAApjQHhyA9QRUQ

通过上面的Report Format描述,我们可以看到他们的区别和联系。如果我们从一个格式转换成另外一个格式,效果和影响如下:

  1) Tabular 转换成 Summary / Matrix: Rows to display filter将会被移除;

  2) Summary/Matrix/Join 转换成 Tabular:所有的分组,chart以及自定义的formula都将会被移除。分组的列没法转换成Tabular的列,比如我们在summary中使用stage进行分组,如果转换成Tabular以后,stage将不会展示在Tabular的列中,需要重新选择。如果Join展示了多块,则只有第一块的列会展示在Tabular中;

  3) Summary转换成Matrix:我们在Summary可以基于多列进行分组,如果转换成Matrix,则第一个汇总的字段将会作为行层次的分组,第二个汇总的字段将会作为列层次的分组,第三个的汇总字段将会作为第二个行层次的分组;

  4) Matrix转换成 Summary: 第一个行的分组将会作为summary的第一个分组的列,第一列的分组将会作为summary的第二个分组的列,第二行的分组将会作为summary的第三个分组的列。

  5) Tabular/Summary/Matrix转换成Join: 已经存在的report将会变成join report的第一块,report type将会变成principle report type。如果报表中使用了以下的内容,则没法转换成Join Report: Bucket Fields / Cross Filters / The rows to display filter。

3. Report Folder

我们创建的report,有时作为所有人都可以看的,有时仅能自己看,有时可以部分用户或者部分role才可以看到。针对看到的report,有时只允许他看,有时允许修改或者管理,这个时候就涉及到report folder的概念。将Report放在某个Report Folder中,使用Report Folder对用户设置访问权限从而达到Report的访问控制。Report Folder新建需要点击下图中的下三角然后选择 New Report Folder。

我们创建好Report Folder以后,点击Share以后,可以基于不同维度设置不同的访问权限。

我们可以share给具体的用户,基于role/group/territory去进行share,如果当前的用户没有满足share的规则,则看不到指定的report folder以及无法访问相关的report。Access Level可以设置三种:

  • Viewer:可以进行View,Refresh,Run;
  • Editor:在Viewer的访问权限基础上可以Edit,Move,Save以及Delete;
  • Manager:在Editor基础上可以share以及rename report folder。

4. Formula

当我们在summary或者matrix report中经常会用到分组以及汇总,比如基于owner进行分组汇总amount等。除此之外,salesforce在分组的report中还给我们提供了formula方式基于数字型的值去计算额外的汇总的计算。比如我们想要知道基于owner进行分组的report情况下,每个owner的close/won的单子的数量,我们便可以使用formula进行快速的展示,在summary/matrix report中,最多可以使用5个formula字段。如下图所示,我们只需要点击 Add Formula,然后填写当前生成的formula的列的名称,设置当前的列在哪里展示值并填写相关公式便创建了一个formula的字段去更好的进行额外的汇总。

 总结:我们在项目中经常会用到Report,好的Report的使用方法可以快速的定位问题解决问题,也可以避免创建不必要的字段不必要的汇总逻辑去用于Report的展示。篇中展示的内容过于基础,起到抛砖引玉的作用,欢迎小伙伴们深入学习。篇中有错误地方欢迎指出,有不懂的欢迎留言。

Salesforce Admin篇(二) Report的更多相关文章

  1. Salesforce Admin篇(一)Duplicate Management

    参考资料:https://help.salesforce.com/articleView?id=managing_duplicates_overview.htm Salesforce 很重要的一个平台 ...

  2. Salesforce Admin篇(三) Delegated Administrator

    项目中,我们可能会遇见以下的场景. 1. HR 经理针对申请者和工作相关的表的app会经常需要修改布局查看需要的页面的字段: 2. 开发者将record type对应的picklist values等 ...

  3. Salesforce Admin篇(四) Security 之Two-Factor Authentication & Single Sign On

    本篇参考: https://c1.sfdcstatic.com/content/dam/web/en_us/www/documents/white-papers/2fa-admin-rollout-g ...

  4. Salesforce 集成篇零基础学习(一)Connected App

    本篇参考: https://zhuanlan.zhihu.com/p/89020647 https://trailhead.salesforce.com/content/learn/modules/c ...

  5. 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  6. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇二:基于OneNote难点突破和批量识别

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  7. 《高性能javascript》 领悟随笔之-------DOM编程篇(二)

    <高性能javascript> 领悟随笔之-------DOM编程篇二 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...

  8. SQL Server调优系列玩转篇二(如何利用汇聚联合提示(Hint)引导语句运行)

    前言 上一篇我们分析了查询Hint的用法,作为调优系列的最后一个玩转模块的第一篇.有兴趣的可以点击查看:SQL Server调优系列玩转篇(如何利用查询提示(Hint)引导语句运行) 本篇继续玩转模块 ...

  9. php基础篇-二维数组排序 array_multisort

    原文:php基础篇-二维数组排序 array_multisort 对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下: array_multisort(a ...

随机推荐

  1. Ackerman 函数

    先留个简介: 函数定义: 从定义可以看出是一个递归函数.阿克曼函数不仅值增长的非常快,而且递归深度很高. 一般用来测试编译其优化递归调用的能力.. 如果用一下代码简单实现的话,输入参数4,2程序就直接 ...

  2. wpf-MVVM界面自适应:界面自适应及字体自适应

    原文:wpf-MVVM界面自适应:界面自适应及字体自适应 1,界面自适应 界面先划分Region,每个填充Region的View不设置Width属性,即可按照Region划分的比例,自适应屏幕分辨率 ...

  3. 程序异常崩溃后用windbg辅助调试解决的经验 以及 堆栈问题调试经验

    1,程序异常崩溃后用windbg辅助调试解决的经验  状况:我的程序调用别人的库做 文件写入工作. 在这一过程中出现异常,程序崩溃. 经反复检查,认为自己的程序没有错,但无法判断在别人库里哪里有错. ...

  4. 危险的DDD聚合根

    原文:危险的DDD聚合根 DDD的核心是聚合.这没有问题,大家都认同.但关于DDD中的聚合方式,其实我还是有些担心,下面说说我的想法,希望大家参与讨论.其实当初第一次看到DDD中关于聚合根部分论述的时 ...

  5. docker启动命令,docker重启命令,docker关闭命令

    启动        systemctl start docker 守护进程重启   sudo systemctl daemon-reload 重启docker服务   systemctl restar ...

  6. centos 7 安装 git 2.22.0

    1.安装所需软件包 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum install gcc ...

  7. 在Windows IoT上使用网络摄像头

    在树莓派上可以使用它官方标配的摄像头,但是这个摄像头似乎不能被Windows IoT识别和使用.但是,可以在树莓派的USB口上插入任意型号的摄像头,就可以实现树莓派的拍摄功能. 关于摄像头的寻找和拍摄 ...

  8. Windows Mount NFS Share from e.g. Linux

    Note: Not Stable, so steps below are for reference only ************ Linux Configuration NFS Share 1 ...

  9. 深入windows的关机消息截获-从XP到Win7的变化(在XP中程序可以阻止关机,但是在Win7中程序无法阻止关机,可Block的时间从1秒调到了5秒) good

    之前写了一个软件用于实验室的打卡提醒,其中一个重要的功能是在关机之前提醒当天晚上是否已经打卡.之前我是在WM_ENDSESSION中弹出一个模态对话框来提醒,在XP中基本工作正常,在Win7中大多数时 ...

  10. 【转】简单的jQuery插件开发方法

    在实际开发工作中,总会碰到像滚动,分页,日历等展示效果的业务需求,对于接触过jQuery以及熟悉jQuery使用的人来说,首先想到的肯定是寻找现有的jQuery插件来满足相应的展示需求.目前页面中常用 ...