• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Salesforce低代码平台底层架构设计原理二对象管理器和列表视图

武飞扬头像
qq_29446023
帮助1

对象管理器,其实就是一个创建数据模型的地方,是后台配置对象、字段、页面布局等元数据的工具。在传统的应用系统里,我们一般都是手动在数据库做。但是在低代码平台里,我们底层数据库架构里是没有实体表的,所以需要通过对象管理器的界面来进行操作。

学新通

列表视图则是前端展示界面,相当于一个模块中心,展示这个对象的记录。所有对象的列表视图都是同一套界面和代码逻辑。我们之所以把对象管理器和列表视图放在一起讨论,主要是因为前者配置元数据,后者利用元数据来展示业务数据。

学新通

对象管理器与列表视图底层的数据结构如下图所示,橙色表示后台配置,蓝色表示前台界面。我们这里不会解释每张表的作用,而是重点解释几个核心表的作用。

学新通

对象

对象(Object)本身的信息其实是非常简单的,就只有名称和APIName这两个重要的属性。当你创建一个新对象的时候,系统会自动帮你创建一些系统字段、一个页面布局,以及系统标准按钮数据。系统字段主要是指那些审计字段,例如:创建人、创建时间、最后更新人、最后更新时间、是否已删除等等。标准按钮主要是创建、编辑、删除等系统常规操作按钮。

字段

相对于对象,字段(Field)的信息就比较复杂了。每个字段都需要有个数据类型,一个字段只能属于一个对象,字段的APIName在该对象上面必须得唯一。每个不同数据类型的字段也有自己的特殊属性,比如说数字型的,那么它的长度是多少,小数点位是多少?Lookup型的,那么他关联到哪一个父对象?这些业务逻辑,都需要在创建新字段的时候进行校验。确保我们创建数据模型的准确和严谨。

学新通 

页面布局

页面布局(PageLayout)在前端加载和编辑一条记录详情的时候使用。页面布局主要有两大块:区域(PageLayoutSection)、相关列表(RelatedList)。一个布局上面会有多个区域,每个区域里面会有不同的字段(PageLayoutSectionField),每个区域可以选择一列、两列或者三列式。

学新通

相关列表(RelatedList)指的是展示子记录的列表(创建字段时,谁Lookup你就是你的子记录),这里可以配置要显示子记录的哪些列(RelatedListColumn),以及它们的显示顺序。

学新通

加载列表视图与记录逻辑

前面我们讲了那么多,在后台配置了那么多元数据,主要是为了前端展示的时候使用。这一小节,我们重点讲述加载一个列表视图与一条记录背后的逻辑。

当你点击一个对象(其实Salesforce里还有个Tab的概念,为了简单我们就直接理解为Tab=Object)时,程序获取该对象的默认列表视图(ListView,有且只有一个)。我们再拿到它所包含的字段列(ListViewColumn,关联到相应的Field记录),这样我们就得到这个视图应该显示的字段以及它们的数据类型等信息。获取该对象所有的记录(这里我们先忽略列表的过滤条件ListViewFilter),然后结合这两部分信息,就可以展示出下图这个动态生成的表格。

学新通

从列表视图里点击一条记录的超链接之后,就会跳转到这个记录的详情页面。程序首先获取该记录的页面布局、区域、区域字段、相关列表、相关列表字段等元数据信息。然后利用记录ID去获取该记录所有字段的信息,然后和元数据拼接在一起,从而展示出整个记录详情的页面。其中还需要根据字段的数据类型,使用相应的展示控件。例如:Lookup类型要显示关联记录的超链接,Email类型字段的值需要展示超链接,点击之后自动打开邮件应用。

再次使用元数据,查出该页面布局需要展示的相关列表。针对每个相关列表,获取当前记录的子记录,然后使用相关列表字段信息(ListViewColumn)加载出相关列表里的记录。

学新通

编辑和新建一条记录时,也是调用页面布局元数据,根据字段的数据类型加载出相应的控件。例如Date类型的字段要加载为日期控件,Lookup类型加载为查找控件,Picklist类型加载为列表选项控件。

学新通

总结

一旦有了对象管理器与列表视图,我们基本上已经就相当于建成了一个毛坯房。这个毛坯房的后端已经具备了创建数据模型,配置页面布局,配置列表视图的能力。前端可以展示对象的列表视图,以及一条记录的增删改查等基本操作。基于这个平台,我们就可以很快地搭建一个轻量级的应用。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaajge
系列文章
更多 icon
同类精品
更多 icon
继续加载