前言】:前段时间被一位刚入行的同学私信问到"如何快速导出ERD和对象定义表"的问题,KT一波后,明显感受到那位同学使用高效工具后的喜悦(至少节省了大半天的时间)。如果说我们把工具带来的高效视为利己,那么如何进一步做到利他呢?正好最近很幸运地被问到一个问题,让我有机会思考项目实施中如何做到利己又利他。

背景】:Admin反映客户某个对象A上有1,2,3,4,5个记录类型,每种记录类型对应使用着不同字段,很早前(上上个接手团队T1)为了很好区分哪个字段是用于哪个记录类型的,如在记录类型1,2上有意的在创建字段时加了前缀如1/2_fieldApi。那么对于上个接手团队T2新增的记录类型4,5,就没有这种机制了。所以等我们接手扩展字段时,Admin并不能很好的识别哪个字段用于哪个记录类型,当然客户也不太清楚。所以为了很好的避免新增通用字段F1,2可能会被其他记录类型用到,所以并不推荐沿用以前的加前缀的方案,那为何不遵循创建字段的最佳实践通过备注Description来表明用途呢?当然我们也可以很方便的在线下维护一张表,这样就可以方便到内部团队和当前对接的客户,那一旦面临离职和下个同事接手,这类问题很可能将被重演。

解决方案】:

1. 增加Description描述;
2. 通过Report展示带Description的对象定义表;
3. 分配字段到Page Layout时,参考对象定义表的描述识别哪些字段是特别用于哪些记录类型。

效果预览】:

关键步骤】:

1. 创建自定义Report Type
Primary Object: Entity Definitions
Label: Metadata Definitions
Description: Report type to get a list of object and fields metadata

B: Field Definitions

2. 创建自定义元数据Report
New Report
Select Report Type: Metadata Definitions
Filter: Created Date = All Time & Label = Contact
Columns(field definition): Label / Qualified API Name / Data Type / Length / Scale / Precision / Field Usage / Is Field indexed? / Is Field History Tracked / Is ForeignKey Polymorphic? / Description / Last Modified Date
Group By(object definition): Label
Save & Run: Contact Metadata Definitions / Description: Contact object and it's field metadata / Private Reports

3. 预览与导出Report

【复选方案】:

竟然可以用Report导出对象字段定义表,作为Developer是不是也可以按需通过SOQL来查出结果呀?
答案是一定的。如下图:

SELECT Id, Label, DeveloperName, QualifiedApiName, Length, Precision, Scale, Description, FORMAT(LastModifiedDate) FROM FieldDefinition WHERE EntityDefinition.Label = 'Contact'


感悟:通过观察ID,我们发现SF暂时还不支持通过类似Data Loader的方式快速批量更新字段定义表。但为了减轻Ad hoc,我们仍然对这一点抱有期待!

其他工具】:
Lucidchart - 用于手动创建ERD,画出对象间的关系即可,标注哪些是标准对象,哪些是自定义对象,哪些是工具对象
Salesforce DevTools - 主要用于导出Object Field Definitions和ERDs(除显示对象关系外,还包含关键关系字段)

插件视图:

选定对象导出后的object overview:

对象字段定义信息(不含Description):

工具比较】:我们依然借助上边背景信息作为载体来比较DevTools和Report在制作对象字段定义表时的优缺点。

  DevTools Report
PROS

1. 导出的Excel有很好的分类且精美,达到了可直接交付客户的标准;

2. 适用于数据集成(如Number精度,DB必填性,Picklist可选值)和文档交付时的数据字典参考;

1. Admin和经过Report培训的客户采纳度高;

2. 可高度自定义满足一些特殊需求;

CONS

1. 用户无法自定义表头信息,不能满足特别需求(如Description没法显示);

2. 有学习成本,客户可能比较排斥使用该工具;

1. 需要额外优化导出的报表;

Next】:如何快速创建数据模型并批量修改字段定义信息?

使用多种方式导出Salesforce Object Definitions对象定义表相关推荐

  1. C#IO之导入导出Excel的多种方式

    C#IO之导入导出Excel的多种方式 一.基本介绍: 今天给大家带来的是Excel导入导出的多种实现方式,以及他们的各自的优势以及劣势,首先第一种方式是使用Office组件的方式 ,第二种方式是使用 ...

  2. 利用对象存储多种方式 保障OSS数据安全

    本文介绍如何通过对象存储OSS提供的加密.访问控制.日志与监控及数据保护等多种方式来保障OSS的数据安全性. 加密 OSS提供服务器端加密.客户端加密以及数据传输加密三种数据加密方式. 服务器端加密 ...

  3. javaScript 合并对象的多种方式

    javaScript 合并对象的多种方式: 1.方式一:Object.assign(obj1, obj2, -) 参数1:obj1 是目标对象 参数2:obj2 是源对象 注意:对象与对象之间,同名属 ...

  4. java 对象之间转换_浅谈java对象之间相互转化的多种方式

    浅谈java对象之间相互转化的多种方式,对象,属性,参数,赋值,不支持 浅谈java对象之间相互转化的多种方式 易采站长站,站长之家为您整理了浅谈java对象之间相互转化的多种方式的相关内容. 第一种 ...

  5. Spring学习总结(一)——Spring实现IoC的多种方式

    一.Spring框架概述 Spring是一个开源免费的框架,为了解决企业应用开发的复杂性而创建.Spring框架是一个轻量级的解决方案,可以一站式地构建企业级应用.Spring是模块化的,所以可以只使 ...

  6. VB中字符串匹配的多种方式

    这段时间在移植项目的过程中,起初我想判断一个字符串中是否存在某字符(串),直接的使用方法是用instr(start,string1,string2,VB compare),但经过分析在VB中可以只用一 ...

  7. xml方式导出word优缺点:

    xml方式导出word优缺点: 优点: 1.代码量少,样式.内容容易控制,打印不变形,符合office标准: 2.支持Linux平台,不要求安装office: 3.可以实现固定格式文档输出: 4.支持 ...

  8. Rhapsody调用外部类库的多种方式

    Rhapsody调用外部类库的多种方式 声明:转至:Rhapsody调用外部类库的多种方式 随着国内医疗软件行业的发展,医院业务需求日渐复杂,在一些场景下,需要通过集成引擎调用外部程序.这里笔者根据自 ...

  9. JS遍历数组的多种方式

    JS遍历数组的多种方式 1. 普通for循环 for (let i = 0; i < arr.length; i++){//code} 应用最为普遍的循环写法,性能好,可读性好. 2. 优化版f ...

最新文章

  1. 使用Vert.x进行响应式开发
  2. Cell.reuseIdentifier 指什么
  3. HashMap源码分析-jdk1.6和jdk1.8的区别
  4. Git学习总结(21)——Git 提交规范总结
  5. atlas怎么看日志_[系列文章] Gin框架 - 使用logrus日志记录
  6. 国外十大流行的服务器监控工具
  7. Sql Full-Text Filter
  8. C语言存储误差,C语言实现测量数据误差处理
  9. iOS打包ipa无签名打包企业签
  10. topcoder使用介绍
  11. pcf8591c语言编程,ADDA系列PCF8591的驱动程序
  12. 极速office(Word)文件怎么在方框里面打对勾
  13. 形式逻辑(02)逻辑概述 负判断
  14. Android应用程序资源的编译和打包过程分析
  15. 优信二手车与时俱进,缔造创新发展典范
  16. VB-01语音模块wav音频转c代码失败原因记录
  17. ESP32蓝牙Bluetooth Controller API介绍
  18. 仙人掌之歌——权力的游戏(4)
  19. 智能投顾原理与主流产品分析
  20. 2022年第6周(1月31日-2月6日)中国各城市电影票房排行榜:上海、北京再度蝉联冠亚军,且平均票价也是最高(附热榜TOP100详单)

热门文章

  1. PicklingError: Can‘t pickle <type ‘function‘>: attribute....
  2. 【历史上的今天】7 月 31 日:“缸中之脑”的提出者诞生;Wi-Fi 之父出生;USB 3.1 标准发布
  3. 华硕ezflash3找不到u盘_请问华硕主板的BIOS用EZ FLASH 2怎么更新?我把下载的BIOS放在硬盘上...
  4. java微服务项目简历_Spring Cloud及微服务简介
  5. arm生态发展与交叉编译链选择
  6. Redis实现访问流量控制
  7. idea怎么手动导入database_idea如何导入数据库包
  8. erp服务器安装虚拟打印机,如何在云服务器上使用打印机
  9. 前端基础查漏补缺知识
  10. 【Matlab】【第7届数维杯B】疫情爆发后小区的核酸检测分组方案