Force.com Fundamentals - 了解云如何使应用程序开发速度提高 5 倍





0/5 (0投票)
这是一个让您成为云端应用程序开发专家的绝佳机会,并且可以添加到您的简历中。云应用程序市场正在迅速增长,具备合适技能的开发者的职业机会也在不断增加。提升您的技能,保持领先地位。
到目前为止,我们已经取得了相当大的成就——我们创建了招聘应用程序,并构建了一个功能齐全的职位自定义对象,其中包含一个选项卡和几种类型的字段。这是一个不错的开始,但还有更多工作要做。
在我们只有一个招聘对象的应用程序中,就像只有一个客人的派对一样——没什么意思!我们需要通过构建自定义对象来代表候选人、工作申请和评估,来邀请更多的“人”参加派对,更重要的是,我们需要在它们之间创建关系。就像一个派对如果没有认识其他客人就不会有趣一样,一个应用程序除非它的对象与其他对象有链接,否则就不会强大。这章将重点介绍这一点,让我们开始吧!
介绍关系
那么,什么是关系,为什么它们对我们的应用程序很重要?就像人际关系是两个人之间的双向关联一样,在关系型数据的术语中,关系是两个对象之间的双向关联。没有关系,我们可以构建我们能想到的所有自定义对象,但它们将无法相互链接。
例如,在构建了一个职位对象和一个工作申请对象之后,我们可以拥有关于某个特定职位的许多信息,以及关于某个为该职位提交了申请的候选人的许多信息,但是当我们查看职位记录时,将无法看到有关工作申请的信息,也无法在查看工作申请记录时看到有关职位的信息。这简直不对!
通过关系,我们可以建立这种联系,并在特定记录的详细信息页面上显示其他相关对象记录的数据。例如,一旦我们定义了刚才讨论的职位对象和工作申请对象之间的关系,我们的职位记录就可以有一个与为该职位申请的候选人相关的所有工作申请的列表,而工作申请记录可以有一个链接到该候选人正在申请的职位。突然之间,我们的招聘应用程序“派对”中的“人”认识了其他客人,应用程序也变得更有趣了。
关系允许在记录详细信息页面上显示其他对象记录的信息
介绍关系自定义字段
正如我们在“回顾数据库概念”中学到的,我们可以通过常用字段在两个对象之间定义关系。在平台中,我们可以通过创建将一个对象与另一个对象关联的关系自定义字段来定义对象之间的关系。关系字段是对象记录上的一个自定义字段,其中包含指向另一个记录的链接。当我们把关系自定义字段放在一个对象上时,我们就有效地在放置关系字段的对象和另一个对象之间创建了一个多对一的关系。
有不同类型的关系字段,每种都有不同的含义。最简单、最灵活的类型是查找关系字段,它在两个对象之间创建一个简单的关系。例如,如果我们把一个引用职位记录的工作申请对象上的查找关系字段,那么许多工作申请记录可以与一个职位记录相关联。这将在工作申请记录上显示一个新的职位字段,并在职位记录上显示一个新的工作申请相关列表。您也可以在一个对象上放置多个查找关系字段,这意味着我们的工作申请对象也可以指向一个候选人对象。
第二种类型的关系字段,主从关系,稍微复杂一些,但功能更强大。主从关系在对象之间创建特殊的父子关系:您创建主从关系字段的对象是子对象或“从”,字段中引用的对象是父对象或“主”。在主从关系中,从记录的所有权和共享由主记录决定,当您删除主记录时,其所有从记录都会随之自动删除。主从关系字段在从记录上始终是必需的,一旦设置了主从关系字段的值,就不能更改。
什么时候使用主从关系?如果您有一个对象,其重要性源于另一个对象。例如,假设您有一个“评估”自定义对象,其中包含面试官对工作申请的反馈。如果您删除一个工作申请记录,您可能希望所有相关的评估记录也随之删除,因为对不存在事物的评估没有多大用处。在这种情况下,您希望在“评估”自定义对象上与“工作申请”对象创建主从关系,并将“工作申请”对象作为主对象。
这就是我们将在本章中要做的事情。首先,让我们从一个非常快速简单的例子开始,将一个招聘经理字段添加到我们的职位对象中——我们将会在职位对象和每个组织都附带的标准用户对象之间创建一个多对一关系,这反映了招聘经理可能负责多个职位的事实。然后,我们将构建几个更多的对象,并实现一个涉及职位、工作申请、候选人和评估的更复杂的关系。
尝试一下:将招聘经理与职位关联
对于我们的第一个关系,让我们通过在职位对象上放置一个查找关系字段来将招聘经理与职位关联。查找字段将允许用户通过从招聘应用程序的所有用户中选择来选择职位的招聘经理。
例如,如果我们的人事专员 Ben Stuart 想为“福利专员”职位指定 Anastasia O'Toole 为招聘经理,他可以通过点击我们要创建的查找关系字段旁边的查找图标来做到这一点。她的名字将出现在职位详细信息页面上。
要创建完成此操作的查找关系字段,我们需要回到熟悉的职位对象详细信息页面。
- 点击 **设置** | **创建** | **对象**。
- 点击 **职位**。
- 在“自定义字段和关系”相关列表中,点击 **新建**。
- 选择“查找关系”,然后点击 **下一步**。
- 在“关联至”下拉列表中,选择“用户”,然后点击 **下一步**。
正如我们已经提到的,“用户”是一个标准对象,随附于平台上的所有组织。它包含有关您组织中所有应用程序使用者的信息。
- 在“字段标签”文本框中,输入“招聘经理”。一旦您移动光标,字段名称文本框应该会自动填充为 Hiring_Manager。
- 点击**下一步**。
- 在向导的其余两个步骤中接受默认值。
- 点击 **保存**。
看看我们做了什么
现在返回“职位”选项卡,然后点击 **新建**。“职位”编辑页面包含一个新的“招聘经理”查找字段!如果您点击此字段旁边的查找图标,您可以搜索招聘应用程序的所有用户并选择一个作为招聘经理。该用户的姓名现在会显示在职位记录上。
招聘经理查找关系
正如您所见,为职位和用户设置此简单关系很容易。通常,您会发现关系设置起来相当容易。
当我们要创建不代表简单多对一关系的关系时,会变得有点棘手。我们稍后会看到一个例子。现在,让我们构建一个自定义对象来处理候选人,以便在我们的招聘应用程序中创建更多关系。
将候选人加入其中
让我们在应用程序中添加一个“候选人”自定义对象,以便我们管理有关候选人的信息。我们还将为该对象添加字段,修改页面布局属性,并创建候选人记录。“候选人”自定义对象的创建过程与我们创建“职位”自定义对象的过程几乎相同,所以我们将快速完成。
尝试一下:创建候选人对象
要创建我们的“候选人”自定义对象,请导航回 **设置** | **创建** | **对象**,点击 **新建自定义对象**,并根据下表填写页面。
字段 | 值 |
Label | 候选人 |
复数标签 | 候选人 |
对象名称 | 候选人 |
描述 | 代表可能申请一个或多个职位的申请人 |
上下文帮助设置 | 打开标准的 Salesforce 帮助和培训窗口 |
记录名称 | 候选人编号 |
数据类型 | 自动编号 |
显示格式 | C-{00000} |
起始编号 | 00001 |
允许报表 | 是 |
允许活动 | 是 |
跟踪字段历史 | 是 |
部署状态 | 已部署 |
将“备注和附件”相关列表添加到默认页面布局 | 是 |
保存此自定义对象后启动新的自定义选项卡向导 | 是 |
要创建“候选人”选项卡,请在向导的第一步中选择一个选项卡样式,然后接受所有默认设置,直到到达“添加到自定义应用程序”页面。在此页面上,仅选择“招聘应用程序”并点击 **保存**。
现在,招聘应用程序有三个选项卡:主页、职位和候选人。现在让我们为候选人对象添加一些自定义字段。
尝试一下:为候选人对象添加字段
要创建“候选人”对象上的自定义字段,请点击 **设置** | **创建** | **对象**,然后点击 **候选人** 查看其详细信息页面。在“自定义字段和关系”相关列表中,使用 **新建** 按钮根据下表创建自定义字段。在必要的地方,我们已经指明了一些您需要填写的额外值。否则,您只需接受所有默认值。
您将在候选人对象字段中看到的一个区别是,其中三个字段——名字、姓氏和电子邮件——已选中“外部 ID”选项。此选项允许这些字段的值被索引,以便从应用程序侧边栏进行搜索。如果我们不将这些值选为外部 ID,我们就只能根据“候选人编号”字段搜索记录。将电子邮件字段设置为外部 ID 也有助于我们稍后在本章中导入数据。
数据类型 | 字段标签 | 其他值 |
文本 | 名字 | 长度:50 外部 ID:选中 |
文本 | 姓氏 | 长度:50 外部 ID:选中 |
电话 | 电话 | |
电子邮件 | 电子邮件 | 外部 ID:选中 |
文本 | 街道 | 长度:50 |
文本 | 城市 | 长度:50 |
文本 | 州/省 | 长度:50 |
文本 | 邮政编码 | 长度:15 |
文本 | 国家 | 长度:50 |
文本 | 现任雇主 | 长度:50 |
数字 | 工作年限 | 长度:2 小数位数:0 |
文本 | 社会保险号 | 长度:9 |
拾取列表 | 教育程度 | 拾取列表值
|
复选框 | 目前在职 | 默认:选中 |
复选框 | 美国公民 | 默认:选中 |
复选框 | 需要签证 | 默认:未选中 |
电话 | 移动 | |
电话 | 传真 |
尝试一下:修改候选人页面布局属性
为了完成这个对象,让我们组织好页面布局上的所有字段,并将一些字段标记为必填。要做到这一点,让我们进入页面布局属性页面。
- 点击 **设置** | **创建** | **对象**。
- 点击 **候选人**。
- 在“页面布局”相关列表中,点击“候选人布局”旁边的 **编辑**。
- 在“信息”部分下方创建三个新的双栏部分:地址、就业和附加详情。将相应的字段拖入其中,如候选人对象页面布局所示,不要忘记点击 **快速保存**,以便在工作时保存您的进度。
- 将名字、姓氏和电子邮件字段设置为必填,如下所示:
- 使用 CTRL+单击选择所有三个必填字段。
- 点击 **编辑属性** 按钮。
- 在“全选”行中选择“必填”复选框,然后点击 **确定**。
- 点击 **保存**。
现在您的页面布局属性页面应该与以下截图相似。
看看我们做了什么
这是一个快速验证您是否一切都做得正确的技巧。
- 点击“候选人”选项卡。
- 点击 **新建**。
- 创建一个名为 Ethan Tran 的候选人的新记录。
- 为每个必填字段输入一个值。Salesforce 目前不会验证您在电子邮件字段中输入的电子邮件地址,所以可以随意输入一个虚构的地址。
- 点击 **保存**。
页面布局看起来怎么样?字段是否在您想要的位置?如果您成功创建了新的候选人记录,并且一切看起来都正常,那么让我们继续处理工作申请对象!
通过工作申请将候选人和职位联系起来
我们的应用程序可以跟踪候选人和职位空缺,但缺少一个关键元素:我们怎么知道哪些候选人对哪些职位感兴趣?我们可以创建查找关系字段在候选人对象上,让招聘人员指定候选人感兴趣的职位,但如果我们想跟踪额外的信息,比如候选人是否被安排面试某个职位?并且,如果招聘人员能够存储候选人针对每个特定职位定制的求职信,那会不会很有帮助?
我们可以通过一个“工作申请”自定义对象来满足这些要求,该对象存储有关单个候选人申请单个职位的数据。每次候选人想申请职位时,招聘人员都可以创建一个工作申请记录,其中包含候选人的姓名以及他/她申请的职位,以及候选人可能提交的针对该特定职位的任何求职信。招聘人员还可以指明候选人申请的状态,例如是否已安排面试或申请是否被拒绝。创建“工作申请”对象及其字段后,我们将对“职位”、“候选人”和“工作申请”对象进行一些小修改,以便每个职位记录显示已申请的候选人的姓名,并且每个候选人记录显示已申请职位的名称。
尝试一下:创建工作申请对象
您现在应该已经很熟练了!要创建我们的“工作申请”自定义对象,请导航回 **设置** | **创建** | **对象**,点击 **新建自定义对象**,并根据下表填写页面。
字段 | 值 |
Label | 工作申请 |
复数标签 | 工作申请 |
对象名称 | Job_Application |
描述 | 代表候选人对职位的申请 |
上下文帮助设置 | 打开标准的 Salesforce 帮助和培训窗口 |
记录名称 | 工作申请编号 |
数据类型 | 自动编号 |
显示格式 | JA-{00000} |
起始编号 | 00001 |
允许报表 | 是 |
允许活动 | 是 |
跟踪字段历史 | 是 |
部署状态 | 已部署 |
将“备注和附件”相关列表添加到默认页面布局 | 是 |
保存此自定义对象后启动新的自定义选项卡向导 | 是 |
要创建“工作申请”选项卡,请在向导的第一步中选择一个选项卡样式,然后接受所有默认设置,直到到达“添加到自定义应用程序”页面。在此页面上,仅选择“招聘应用程序”,然后点击 **保存**。
现在,我们距离将“工作申请”对象与“职位”和“候选人”对象链接只差几个自定义字段了。
尝试一下:为工作申请对象添加字段
这是我们之前做过的另一个程序,但这次我们只需要定义四个自定义字段,而不是我们为候选人对象创建的近二十个字段。我们需要添加一个文本字段来存储候选人的求职信,一个拾取列表字段以便我们跟踪申请状态,以及两个查找关系字段,它们将在“工作申请”对象与“职位”和“候选人”对象之间创建关系。
尽管这些字段与我们之前创建的字段几乎相同,但当您定义查找关系字段时,您会注意到自定义字段向导中有一个新步骤——*步骤 6:添加自定义相关列表*。这是我们可以在其中为将显示在“候选人”和“职位”详细信息页面上的“工作申请”相关列表指定标题的向导步骤。
为什么我们之前创建招聘经理查找字段时没有看到这个步骤?原来,用户是一个独特的标准对象:它没有选项卡,您也不能向其添加相关列表。平台知道这一点,所以在有人添加引用用户对象的查找关系字段时,它会跳过相关列表步骤。
现在我们已经解决了这个小区别,让我们完成这些工作申请字段。点击 **设置** | **创建** | **对象**,然后点击 **工作申请** 查看其详细信息页面。在“自定义字段和关系”相关列表中,使用 **新建** 按钮根据下表创建自定义字段。在必要的地方,我们已经指明了一些您需要填写的额外值。否则,您可以简单地接受所有默认值。
数据类型 | 字段标签 | 其他值 |
查找关系 | 候选人 | 关联至:候选人 相关列表标签:工作申请 |
查找关系 | 职位 | 关联至:职位 相关列表标签:工作申请 |
文本区域(长) | 求职信 | 长度:32,000 可见行数:6 |
拾取列表 | 状态 | 拾取列表值
|
在我们继续之前,还有一步很重要:我们需要为**职位**字段在工作申请和职位对象之间创建的子关系输入一个名称。这一步仅对职位关系字段是必需的,因为我们将会在创建候选人地图功能时使用这个关系(在“超越原生应用”中)。
命名子关系- 点击 **设置** | **创建** | **对象**,然后点击 **工作申请**。
- 在“自定义字段和关系”相关列表中,点击“职位”,然后点击 **编辑**。
- 在“子关系名称”字段中,输入“工作申请”,然后点击 **保存**。Force.com 将子关系名称保存为“Job_Applications”。
看看我们做了什么
瞧!如果您点击新的“工作申请”选项卡并点击 **新建**,您将看到候选人查找字段、职位查找字段、候选人的求职信和一个状态拾取列表字段。
工作申请编辑页面上的自定义字段
但这还不是全部!因为我们构建了几个查找关系,我们的候选人和职位记录详细信息页面现在都有一个新的“工作申请”相关列表。而“工作申请”详细信息页面包含指向它引用的候选人和职位记录的链接。所有三个对象现在都彼此相关并链接在一起了!
工作申请链接至职位和候选人数据
在我们继续之前,让我们看看是否能稍微改进一下我们应用程序的可用性,这样当用户在“工作申请”编辑页面点击查找按钮,或者查看“候选人”或“职位”详细信息页面上的“工作申请”相关列表时,就不必仅通过编号来识别候选人和工作申请了。
介绍搜索布局
默认情况下,所有查找对话框和因新关系(如本章中定义的)而产生的相关列表,只显示记录名称或编号。例如,如果您创建了一个工作申请,您可能会发现“候选人”查找对话框有点令人费解,因为唯一列出的字段是“候选人编号”,如以下截图所示。
工作申请对象上的默认候选人查找
同样,“职位”和“候选人”详细信息页面上的“工作申请”相关列表也只显示工作申请编号。如果这些相关列表也包含相关的候选人姓名或职位,那将更有用。
要解决这些问题,我们可以将字段添加到我们定义的对象的搜索布局中。搜索布局是在特定上下文中(例如搜索结果、查找对话框或相关列表)显示记录时使用的字段的有序分组。通过添加字段,我们可以为用户提供更多信息,并帮助他们更快地查找记录。
自定义对象详细信息页面上的“搜索布局”相关列表是修改这些字段集的地方。转到 **设置** | **创建** | **对象** 并选择“候选人”对象。您会看到可用的搜索布局包括以下内容:
布局名称 | 描述 |
搜索结果 | 在应用程序左侧边栏搜索或高级搜索中搜索而产生的搜索结果。 |
查找对话框 | 在编辑页面上单击查找字段旁边的按钮而产生的查找对话框结果。 |
选项卡 | 出现在选项卡主页以及其他对象详细信息页面上的相关列表中的最近记录列表。 |
搜索筛选器字段 | 可以应用于搜索结果的筛选器。 |
注意 ![]() |
列表视图布局也出现在“搜索布局”相关列表中,但它不是用来指定字段的。相反,它允许您指定出现在对象列表视图页面上的按钮。 |
尝试一下:为候选人查找对话框添加字段
让我们为候选人查找对话框添加字段。
- 点击 **设置** | **创建** | **对象**。
- 点击 **候选人**。
- 在“搜索布局”相关列表中,点击“查找对话框”布局旁边的 **编辑**。
“编辑搜索布局”页面包含候选人对象可用字段的列表。您可以选择最多十个字段包含在查找对话框中,并按任意顺序排列它们,但对象的唯一名称或编号字段(如候选人编号)必须列在第一个。
- 将以下字段移到“候选人编号”下的“选定字段”框中:
- 名字
- 姓氏
- 城市
- 州/省
- 电话
- 点击 **保存**。
就是这样!要尝试一下,请返回“工作申请”选项卡,然后点击 **新建**。当您点击“候选人”字段旁边的查找图标时,对话框现在更有用了。
工作申请对象上的已修改候选人查找
尝试一下:更新其他搜索布局
现在我们已经更新了一个搜索布局用于查找,剩下的应该很容易了。使用自定义对象详细信息页面上的“搜索布局”相关列表,根据下表修改其他搜索布局。
对象 | 搜索布局 | 添加这些字段 |
候选人 |
|
|
候选人 |
|
|
职位 |
|
|
工作申请 |
|
|
现在让我们再创建一个自定义对象,为我们的招聘经理和面试官提供一个输入他们关于工作申请评论的地方。
管理评估
面试官、招聘人员和招聘经理需要能够创建评估,以便他们可以记录他们对每个候选人的工作申请的评论,并对候选人胜任职位的能力进行评分。他们还需要看到其他人发布的评估。为了让我们的用户执行这些任务,我们需要创建一个自定义“评估”对象并将其与“工作申请”对象关联。
“评估”对象与“工作申请”对象之间存在一个多对一关系,因为一个工作申请可以有一个或多个相关的评估。“工作申请”记录上的一个相关列表将显示相关的评估,代表关系中的“多”方。
评估与工作申请之间存在多对一关系
然而,我们这次将使用主从关系字段,而不是创建一个查找关系字段。在这种情况下,主从关系字段是合理的,因为评估脱离了工作申请的上下文就没有意义了,所以当我们删除相关的职位申请时,我们希望自动删除其评估。因此,我们将使用主从关系字段。
尝试一下:创建评估对象
要创建“评估”对象,请导航回 **设置** | **创建** | **对象**,点击 **新建自定义对象**,并根据下表填写页面。
字段 | 值 |
Label | 评估 |
复数标签 | 评估 |
对象名称 | 评估 |
描述 | 代表面试官对特定候选人的评估 |
上下文帮助设置 | 打开标准的 Salesforce 帮助和培训窗口 |
记录名称 | 评估编号 |
数据类型 | 自动编号 |
显示格式 | R-{000000} |
起始编号 | 000001 |
允许报表 | 是 |
允许活动 | 是 |
跟踪字段历史 | 是 |
部署状态 | 已部署 |
将“备注和附件”相关列表添加到默认页面布局 | 是 |
保存此自定义对象后启动新的自定义选项卡向导 | 否 |
请注意,这次我们没有启动选项卡向导。评估不需要单独的选项卡,因为它们可以通过“工作申请”详细信息页面上的相关列表进行访问。当您创建一个带选项卡的类的对象时,平台除了选项卡本身之外,还在各种地方提供对该对象记录的访问,例如搜索结果和每个页面侧边栏区域的“最近项目”列表。由于大多数招聘应用程序用户不需要查看评估,除非是在工作申请的上下文中,所以我们不需要为它们创建单独的选项卡。
现在让我们完成评估对象上的自定义字段。
尝试一下:为评估对象添加字段
让我们首先添加主从关系字段,它将把我们的评估对象与工作申请对象关联起来。要创建主从关系字段,请访问评估对象详细信息页面。
- 点击 **设置** | **创建** | **对象**。
- 点击 **评估**。
- 在“自定义字段和关系”相关列表中,点击 **新建**。
- 选择“主从关系”,然后点击 **下一步**。
- 在“关联至”下拉列表中,选择“工作申请”,然后点击 **下一步**。
- 在“字段标签”文本框中,输入“工作申请”。
请注意,“必填”复选框已自动选中且无法更改。如前所述,主从关系字段在从记录上始终是必需的。
- 选择“读/写”单选按钮。
此共享设置可防止人们创建、编辑或删除评估,除非他们也能创建、编辑或删除相关的工作申请。我们将在下一章中全面了解共享和安全。
- 点击**下一步**。
- 接受向导其余三个步骤中的默认值。
- 点击 **保存**。
您的主从关系已完成!现在它已就位,让我们考虑一下对查看评估记录的人有用的其他类型的字段。
很可能,您将需要看到正在评估的候选人的姓名以及他们被评估的职位。我们可以创建到职位和候选人对象的查找关系,然后要求评审员在创建评估记录时填写这些字段,但如果他们选择了错误的值怎么办?此外,如果这些字段能以某种方式自动填充,那不是更好吗?
为了解决这个问题,我们将利用公式和关系的协同作用来创建跨对象公式。跨对象公式是通过引用相关记录的合并字段来跨越两个或多个对象的公式。这意味着我们评估对象上的公式可以访问工作申请对象上的字段,而工作申请对象上的公式可以访问职位和候选人对象上的字段。我们将更进一步,在我们的评估对象上创建公式字段,这些字段*跨越*工作申请对象来引用候选人和职位对象上的字段。您将很快发现,使用相关数据比听起来容易得多!
让我们开始构建一个评估对象上的公式字段,该字段引用其父工作申请记录的职位标题。
- 点击 **设置** | **创建** | **对象**。
- 点击 **评估**。
- 在“自定义字段和关系”相关列表中,点击 **新建**。
- 选择“公式”数据类型,然后点击 **下一步**。
- 在“字段标签”字段中,输入“职位”。一旦您移动光标,字段名称文本框应该会自动填充为 Position。
- 选择“文本”公式返回类型,然后点击 **下一步**。
- 点击 **插入字段** 按钮。
- 在第一列中选择“评估”。
当您选择“评估”时,第二列显示“评估”对象的所有字段及其相关对象,这些对象用大于号(>)表示。请注意,“创建者”和“上次修改者”字段也有大于号。这是因为它们是用户对象上的查找字段。
- 在第二列中选择“工作申请 >”。第三列显示工作申请对象上的字段。
- 在第三列中选择“职位 >”。第四列显示职位对象上的字段。
请务必选择“职位 >”(带大于号),而不是“职位”。带大于号的是“职位”对象,而不带大于号的是“工作申请”对象上的“职位”查找字段。在大多数情况下,访问查找字段的公式会返回一个模糊的记录 ID。相反,我们希望我们的公式返回职位标题。
- 在第四列中选择“职位标题”。
- 点击 **插入**。
Job_Application__r.Position__r.Name
公式跨越到评估的相关工作申请(Job_Application__r
),然后到工作申请的相关职位(Position__r
),最后引用职位的标题(Name
)。请注意,公式的每个部分都用句点分隔,并且关系名称由相关对象后跟 __r
组成。
- 点击**下一步**。
- 接受所有剩余的字段级安全和页面布局默认值。
- 点击 **保存**。
第一个跨对象公式字段就完成了。让我们尝试另一个。这次,我们将在我们的评估对象上添加一个跨对象公式字段,该字段显示被评估候选人的名字和姓氏。我们还将使用 HYPERLINK
函数来进一步提升,这样用户就可以通过点击该字段来访问候选人记录。
- 点击 **设置** | **创建** | **对象**。
- 点击 **评估**。
- 在“自定义字段和关系”相关列表中,点击 **新建**。
- 选择“公式”数据类型,然后点击 **下一步**。
- 在“字段标签”字段中,输入“候选人”。一旦您移动光标,字段名称文本框应该会自动填充为 Candidate。
- 选择“文本”公式返回类型,然后点击 **下一步**。
- 从“函数”列表中,双击
HYPERLINK
。
HYPERLINK
函数允许您创建指向 Salesforce 中任何 URL 或记录的链接。链接的文本可以与 URL 本身不同,这在这里很有用,因为我们希望我们的链接显示候选人的名字和姓氏,而 URL 指向候选人记录本身。
- 删除您刚刚插入的
HYPERLINK
函数中的url
,但将光标保留在那里。 - 点击 **插入字段** 按钮,并选择“评估 >”、“工作申请 >”、“候选人 >”、“记录 ID”,然后点击 **插入**。
Salesforce 为每个记录生成一个唯一的 ID。通过在我们的 HYPERLINK
函数中插入候选人的记录 ID,我们使我们的公式字段能够定位并链接到候选人的记录。
- 删除
HYPERLINK
函数中的friendly_name
,但将光标保留在那里。 - 点击 **插入字段** 按钮,并选择“评估 >”、“工作申请 >”、“候选人 >”、“名字”,然后点击 **插入**。
- 输入一个空格,然后点击 **插入运算符** 按钮并选择“连接”。
连接运算符在您的公式中插入一个和号(&),并将符号两侧的值连接起来。这里我们将使用连接运算符将候选人的名字和姓氏连接到一个字段中,尽管它们存储在候选人对象上的不同字段中。连接运算符还可以让我们在两个名字之间插入一个空格,正如您将在下一步中看到的。
- 再输入一个空格,然后输入一个用引号括起来的空白空格,如下所示:
" "
这将在候选人的名字后附加一个空格。 - 输入一个空格,然后点击 **插入运算符** 按钮并再次选择“连接”,以便在您的公式中添加第二个和号。
- 点击 **插入字段** 按钮,并选择“评估 >”、“工作申请 >”、“候选人 >”、“姓氏”,然后点击 **插入**。
- 删除
HYPERLINK
函数中的[ target ]
。这是一个可选参数,对我们的公式字段不是必需的。 - 点击 **检查语法** 以检查您的公式是否有错误。您完成的公式应如下所示:
HYPERLINK ( Job_Application__r.Candidate__r.Id , Job_Application__r.Candidate__r.First_Name__c & " " & Job_Application__r.Candidate__r.Last_Name__c )
- 点击**下一步**。
- 接受所有剩余的字段级安全和页面布局默认值。
- 点击 **保存**。
呼!这一个需要多花点心思,但在这里运用一点智慧极大地提高了我们应用程序的可用性,您稍后在测试我们对评估对象的更改时就会看到。但在开始测试之前,让我们快速添加另外两个简单的字段来完成我们的评估对象。我们需要一个文本区域字段用于评审员的评估,以及一个数字字段,评审员可以在其中为候选人提供数字评分。
转到 **设置** | **创建** | **对象** 并选择“评估”对象。使用“自定义字段和关系”相关列表中的 **新建** 按钮,根据下表为“评估”对象创建剩余的自定义字段。在必要的地方,我们已经指明了一些您需要填写的额外值。否则,接受所有默认值。
数据类型 | 字段标签 | 其他值 |
文本区域(长) | 评估 | 长度:32,000 可见行数:6 |
数字 | 评分 | 长度:1 要保存记录,请始终要求此字段有值 帮助文本:“输入候选人的 1-5 分评分。” |
完成后,添加一个快速验证规则,以确保“评分”字段仅接受 1 到 5 的数字。这将使我们的评分系统在整个组织中保持一致。
- 点击 **设置** | **创建** | **对象**。
- 点击 **评估**。
- 在“验证规则”相关列表中,点击 **新建**。
- 在“规则名称”文本框中,输入“Rating_Scale_Rule”。
- 选择“活动”复选框。
- 在“描述”文本框中,输入“评分必须在 1 到 5 之间。”
- 输入以下错误条件公式:
(Rating__c < 0) || (Rating__c > 6)
此公式会阻止记录保存,如果“评分”字段的值小于一或大于五。 - 在“错误消息”文本框中,输入“无效评分。评分必须在 1 到 5 之间。”
- 在“错误位置”字段旁边,选择“字段”单选按钮,然后从下拉列表中选择“评分”。
- 点击 **保存**。
我们的评估对象已完成!我们添加了几个功能,将帮助用户访问他们所需的数据,以评估每个工作申请。为了简化我们的工作申请评估流程,还有一项最后的简单改进。这涉及到返回我们的工作申请对象,并利用主从关系带来的好处之一。
介绍汇总计算字段
我们在评估对象上创建的评分系统可以让用户快速看到每个评审员对候选人职位适合度的看法。虽然每个个人意见都很重要,但如果能以一种总结候选人整体表现的方式将这些评分进行汇总,那将更好。例如,如果我们能在每个工作申请记录上有一个“总评分”字段,显示该工作申请所有评估评分的总和,那是不是很棒?
好消息是我们能做到!工作申请对象上的一个简单的汇总计算字段可以汇总一组相关的从记录的数据,并在主记录上自动显示结果。使用汇总计算字段来显示相关列表字段的总和、最小值或最大值,或者相关列表中的所有记录的计数。
尝试一下:创建汇总计算字段
就像创建任何其他自定义字段一样开始创建您的汇总计算字段:
- 点击 **设置** | **创建** | **对象**。
- 点击 **工作申请**。
- 在“自定义字段和关系”相关列表中,点击 **新建**。
- 选择“汇总计算”数据类型,然后点击 **下一步**。
当在不是主从关系中的主对象的对象上创建字段时,汇总计算数据类型不可用。这是因为汇总计算字段仅在主从关系的主对象上可用。
- 在“字段标签”字段中,输入“总评分”。一旦您移动光标,字段名称文本框应该会自动填充为 Total_Rating。
- 点击**下一步**。
- 在“汇总对象”下拉列表中,选择“评估”。
- 在“选择汇总类型”下,选择“求和”。
- 在“要汇总的字段”下拉列表中,选择“评分”。
- 保留“应包含所有记录在计算中”选项,然后点击 **下一步**。
- 接受所有剩余的字段级安全和页面布局默认值。
- 点击 **保存**。
现在我们的工作申请记录汇总了相关评估的评分。但是,这个数据可能有点误导,因为一些工作申请可能比其他工作申请得到更多的评估。如果我们能看到平均评分,那会更有帮助。
汇总计算字段本身不允许您平均值,但您可以在公式中使用它们。让我们在工作申请对象上创建第二个汇总计算字段,然后构建一个简单的公式字段,该字段使用这两个汇总计算字段来查找平均评分。- 点击 **设置** | **创建** | **对象**。
- 点击 **工作申请**。
- 在“自定义字段和关系”相关列表中,点击 **新建**。
- 选择“汇总计算”数据类型,然后点击 **下一步**。
- 在“字段标签”字段中,输入“评估数量”。一旦您移动光标,字段名称文本框应该会自动填充为 Number_of_Reviews。
- 点击**下一步**。
- 在“汇总对象”下拉列表中,选择“评估”。
- 在“选择汇总类型”下,选择“计数”。
这次我们不需要指定“要汇总的字段”,因为我们只是在计算相关从记录的数量,而不关心任何特定字段。
- 保留“应包含所有记录在计算中”选项,然后点击 **下一步**。
- 接受所有剩余的字段级安全和页面布局默认值。
- 点击 **保存**。
现在两个汇总计算字段都已就位。让我们构建一个名为“平均评分”的公式字段,该字段将第一个汇总计算字段的值除以第二个字段的值。
- 点击 **设置** | **创建** | **对象**。
- 点击 **工作申请**。
- 在“自定义字段和关系”相关列表中,点击 **新建**。
- 选择“公式”数据类型,然后点击 **下一步**。
- 在“字段标签”字段中,输入“平均评分”。一旦您移动光标,字段名称文本框应该会自动填充为 Average_Rating。
- 选择“数字”公式返回类型,然后点击 **下一步**。
- 点击 **插入字段** 按钮。
- 选择“工作申请 >”,然后选择“总评分”,然后点击 **插入**。
- 点击 **插入运算符** 按钮并选择“除”。
- 再次点击 **插入字段** 按钮。
- 选择“工作申请 >”,然后选择“评估数量”,然后点击 **插入**。您的公式应如下所示:
Total_Rating__c / Number_of_Reviews__c
- 点击**下一步**。
- 接受向导其余三个步骤中的默认值。
- 点击 **保存**。
这样就完成了我们管理评估所需的所有字段和关系。让我们快速组织一下字段的显示,然后测试我们创建的所有内容。
尝试一下:自定义评估对象的页面和搜索布局
首先,让我们更新评估对象的页面布局,以便“评估”文本字段位于同名的单列部分中。
- 点击 **设置** | **创建** | **对象**。
- 点击 **评估**。
- 在“页面布局”相关列表中,点击“评估布局”旁边的 **编辑**。
- 点击 **创建新部分** 并定义一个名为“评估”的新单列部分。
- 将“评估”部分移到“信息”部分下方,并将“评估”和“评分”字段放入其中。
- 点击 **保存**。
现在,让我们配置我们的“评估”搜索布局,以便始终显示评估以及相关的职位申请、职位和候选人。
- 在“评估”对象详细信息页面上的“搜索布局”相关列表中,点击“查找对话框”旁边的 **编辑** 并添加以下字段:
- 评估编号
- 评分
- 工作申请
- 候选人
- 职位
- 创建日期
- 对“搜索筛选器字段”布局重复上述操作。
要更新显示在“工作申请”详细信息页面上的“评估”相关列表,我们必须直接在“工作申请”页面布局上编辑该相关列表。这与我们向“职位”和“候选人”详细信息页面上的“工作申请”相关列表添加字段的方式不同,因为“评估”对象没有关联的选项卡,因此没有选项卡搜索布局。请记住——选项卡搜索布局负责在选项卡主页上的列表以及其他对象详细信息页面上的相关列表的默认字段中显示的字段。
注意 ![]() |
如果相关列表属性未在其他对象的页面布局上修改,则选项卡搜索布局负责相关列表布局中的字段。例如,如果您修改了“职位”页面布局上的“工作申请”相关列表的属性,这些更改将始终覆盖“工作申请”选项卡搜索布局的字段规范。 |
由于“评估”对象没有选项卡搜索布局,我们必须以另一种方式设置这些字段。
- 点击 **设置** | **创建** | **对象**。
- 点击 **工作申请**。
- 在“页面布局”相关列表中,点击“工作申请布局”旁边的 **编辑**。
- 向下滚动到“相关列表”部分,选择“评估”,然后点击 **编辑属性**。
- 将以下字段添加到“选定字段”框中:
- 评估编号
- 评分
- 候选人
- 职位
- 创建日期
- 在“排序依据”下拉列表中,选择“评估编号”。
- 点击**确定**。
- 在页面布局编辑页面上点击 **保存**。
看看我们做了什么
太棒了!让我们看看我们创造了什么。
- 点击“工作申请”选项卡并选择一条记录,或者如果您还没有创建的话,请创建一条。
提示 ![]() |
当您在创建工作申请记录时使用“候选人”和“职位”查找对话框时,请注意,默认情况下,它们仅显示最近查看的记录。您可以通过使用搜索框查找其他记录,该搜索框分别根据“候选人编号”或“职位标题”字段返回记录。 |
使用 * 通配符与其他字符结合使用以改进您的搜索结果。例如,搜索 C* 会返回所有候选人记录。同样,搜索 *e 会返回所有包含字母“e”的职位记录。 |
在工作申请创建后,请注意,“评估”相关列表现在已显示在“工作申请”详细信息页面上。这是因为我们通过主从关系将“评估”对象与“工作申请”对象相关联。
- 在“评估”相关列表中,点击 **新建评估** 来创建一个评估。
您是否看到平台如何自动填充了评估编辑页面中的工作申请编号?这是使用平台构建此类应用程序的一个细微但重要的好处——不仅可以轻松地在对象之间创建链接和关系,而且平台还可以预测我们的操作,并以最少的点击次数帮助我们完成任务。
- 完成评估字段,然后点击 **保存**。
请注意,候选人的姓名和职位的标题会出现在评估详细信息页面上。如果您点击候选人的姓名,将会显示他的记录。
继续点击应用程序中的其他部分,创建更多职位、工作申请、候选人和评估。很酷,不是吗?我们的数据是相互关联的,并且我们对搜索布局的编辑使我们能够一次查看多个相关对象的详细信息。
创建多对多关系
我们的招聘应用程序现在有很多多对一关系,但是如果我们还需要创建多对多关系怎么办?例如,如果我们有一个存储了各种就业网站信息的对象,并且我们想跟踪我们向这些网站发布了哪些职位空缺?这将需要多对多关系,因为
- 一个职位可以发布到许多就业网站。
- 一个就业网站可以列出许多职位。
这就是我们变得有点创意的地方。而不是在“职位”对象上创建一个直接链接到“就业网站”对象的“关系”字段,我们可以使用一个连接对象来链接它们。连接对象是一个具有两个主从关系的自定义对象,并且是实现多对多关系的关键。
对于我们的应用程序,我们将创建一个名为“职位发布”的连接对象。职位发布适合于职位和就业网站之间的空间——一个职位可以发布多次,一个就业网站可以有许多职位发布,但一个职位发布始终代表关于一个职位在一个就业网站上的发布。本质上,“职位发布”对象与“职位”和“就业网站”对象之间都有一个多对一关系,通过这些多对一关系,我们将在“职位”和“就业网站”对象之间建立一个多对多关系。
提示 ![]() |
在许多应用程序中,连接对象的主要目的是简单地关联两个对象,因此通常最好给连接对象一个表明它创建的关联或关系的名称。例如,如果您想使用连接对象在 bug 和 case 之间创建多对多关系,您可以将连接对象命名为 BugCaseAssociation。 |
让我们来看一个 Universal Containers 的典型场景。有项目经理和高级开发人员的职位空缺。项目经理职位只发布在 Monster.com 上,但高级开发人员职位更难填补,所以它同时发布在 Monster.com 和 Dice 上。每次发布一个职位时,一个“职位发布”记录都会跟踪该发布。如以下图所示,一个职位可以发布多次,两个职位都可以发布到同一个就业网站。
使用职位发布对象在职位和就业网站之间创建多对多关系
在关系数据库术语中,每个职位发布记录都是“职位发布”表中的一行,其中包含一个指向职位记录的外键和一个指向就业网站记录的外键。以下实体关系图显示了这种关系。
职位、职位发布和就业网站对象的实体关系图
因此,为了在“职位”和“就业网站”对象之间定义多对多关系,我们需要创建一个具有以下字段的“职位发布”对象:
- 职位主从关系
- 就业网站主从关系
尝试一下:创建就业网站对象
要创建我们的“就业网站”自定义对象,请导航回 **设置** | **创建** | **对象**,点击 **新建自定义对象**,并根据下表填写页面。
字段 | 值 |
Label | 就业网站 |
复数标签 | 就业网站 |
对象名称 | Employment_Website |
描述 | 有关特定就业网站的信息 |
上下文帮助设置 | 打开标准的 Salesforce 帮助和培训窗口 |
记录名称 | 就业网站名称 |
数据类型 | 文本 |
允许报表 | 是 |
允许活动 | 是 |
跟踪字段历史 | 是 |
部署状态 | 已部署 |
将“备注和附件”相关列表添加到默认页面布局 | 是 |
保存此自定义对象后启动新的自定义选项卡向导 | 是 |
要创建“就业网站”选项卡,请在向导的第一步中选择一个选项卡样式,然后接受所有默认设置,直到到达“添加到自定义应用程序”页面。在此页面上,仅选择“招聘应用程序”,然后点击 **保存**。
让我们通过添加几个自定义字段来完成就业网站对象。
尝试一下:将 URL 字段添加到就业网站对象
显然,“就业网站”对象需要存储就业网站的网络地址。我们将为此字段使用 URL 数据类型。这样,当用户点击该字段时,URL 将在单独的浏览器窗口中打开。除了 URL 之外,由于大多数就业网站按发布收费,我们还需要跟踪在那里发布信息的成本,以及我们在该网站上发布的最高预算。
点击 **设置** | **创建** | **对象**,然后点击 **就业网站** 查看其详细信息页面。在“自定义字段和关系”相关列表中,使用 **新建** 按钮根据下表创建自定义字段。在必要的地方,我们已经指明了一些您需要填写的额外值。否则,您可以简单地接受所有默认值。
数据类型 | 字段标签 | 其他值 |
URL | 网络地址 | 必需 |
货币 | 每次发布价格 | 长度:5 小数位数:2 必需 |
货币 | 最高预算 | 长度:6 小数位数:2 必需 |
尝试一下:创建职位发布对象
现在是时候创建我们的“职位发布”连接对象了!导航回 **设置** | **创建** | **对象**,点击 **新建自定义对象**,并根据下表填写页面。
字段 | 值 |
Label | 职位发布 |
复数标签 | 职位发布 |
对象名称 | Job_Posting |
描述 | 代表职位和就业网站之间的连接对象 |
上下文帮助设置 | 打开标准的 Salesforce 帮助和培训窗口 |
记录名称 | 职位发布编号 |
数据类型 | 自动编号 |
显示格式 | JP-{00000} |
起始编号 | 00001 |
允许报表 | 是 |
允许活动 | 是 |
跟踪字段历史 | 是 |
部署状态 | 已部署 |
将“备注和附件”相关列表添加到默认页面布局 | 是 |
保存此自定义对象后启动新的自定义选项卡向导 | 否 |
这已经足够简单了,但我们还没有完全完成。我们需要创建将“职位发布”对象与“职位”和“就业网站”对象关联起来的主从关系字段。
尝试一下:为职位发布对象添加字段
为了将“职位发布”对象变成连接“职位”和“就业网站”对象的连接对象,我们需要添加两个主从关系字段。第一个主从关系将是主要关系。我们的连接对象(职位发布)的从属和编辑页面将使用主要主对象(职位)的颜色和任何关联的图标。此外,连接对象记录将继承其关联的主记录的“所有者”字段值和共享设置。
- 点击 **设置** | **创建** | **对象**。
- 点击 **职位发布**。
- 在“自定义字段和关系”相关列表中,点击 **新建**。
- 选择“主从关系”,然后点击 **下一步**。
- 在“关联至”下拉列表中,选择“职位”,然后点击 **下一步**。
- 在“字段标签”文本框中,输入“职位”。当您移动光标时,“字段名称”文本框也应该自动填充为 Position。
- 接受其余的默认值,然后点击 **下一步** 直到到达向导的最后一步。
在这里,我们有机会将“职位发布”相关列表添加到“职位”对象页面布局。我们不想显示与职位发布相关的信息,而是希望此列表显示发布在此职位的所有就业网站。所以让我们添加“职位发布”相关列表,但将其重命名为“就业网站”。
- 在“相关列表标签”文本框中,输入“就业网站”。
- 接受其他默认值,然后点击 **保存并新建**。
我们完成了多对多关系的一半。下一步是在“职位发布”对象上创建第二个主从关系,将其链接到“就业网站”对象。
第二个主从关系创建了一个辅助关系。与主要关系不同,辅助关系对连接对象的外观和感觉没有影响。然而,与主要关系一样,辅助关系中的主记录的共享设置也会影响谁可以访问连接记录,删除辅助主对象记录将自动删除其相关的连接对象记录。所以在我们的应用程序中,如果您删除一个就业网站记录,所有相关的职位发布记录也会被删除,即使职位仍然是开放的。
- 点击 **设置** | **创建** | **对象**。
- 点击 **职位发布**。
- 在“自定义字段和关系”相关列表中,点击 **新建**。
- 选择“主从关系”,然后点击 **下一步**。
- 在“关联至”下拉列表中,选择“就业网站”,然后点击 **下一步**。
- 在“字段标签”文本框中,输入“就业网站”。当您移动光标时,“字段名称”文本框也应该自动填充为 Employment_Website。
- 点击 **下一步**。由于我们正在创建主从关系,因此无法更改这些设置。
- 点击 **下一步**。这些设置也不能更改。
- 点击 **下一步** 查看向导的最后一步。
这次我们有机会将“职位发布”相关列表添加到“就业网站”对象页面布局。我们最终将配置此相关列表以显示发布在此网站上的所有职位,所以让我们添加“职位发布”相关列表,但将其重命名为“职位”。
- 在“相关列表标签”文本框中,输入“职位”。
- 接受其他默认值,然后点击 **保存**。
现在我们的多对多关系就完成了!或者还没?
虽然我们在“职位”对象上有“就业网站”相关列表,在“就业网站”对象上有“职位”相关列表,但两个相关列表仍然显示职位发布记录。这不行。
为了实现我们的目标,即在一个就业网站记录上列出多个职位,以及在一个职位记录上列出多个就业网站,我们需要自定义这些相关列表中的字段。
自定义多对多关系中的相关列表
与自定义查找关系中的相关列表相比,自定义多对多关系中的相关列表的功能更强大。当两个对象之间存在查找关系(如我们在“工作申请”和“候选人”对象之间创建的关系)时,一个对象上的相关列表只能显示它直接关联的对象中的字段;它不能像公式那样跨越到其他对象。例如,“候选人”记录上的“工作申请”相关列表可以显示任何工作申请字段,但它不能显示“职位”对象中的任何字段,即使“工作申请”对象与“候选人”和“职位”对象都有查找关系。
对我们来说幸运的是,多对多关系提供了更大的灵活性。在处理多对多关系时,一个主对象上的连接对象的相关列表可以显示另一个主对象的字段。我们将利用这一点,配置每个就业网站记录上的“职位”相关列表以显示“职位”对象中的字段,反之亦然,从而允许这两个对象相互跨越。一切都联系起来了!
尝试一下:自定义职位和就业网站相关列表
让我们首先修改“职位”对象上的“就业网站”相关列表。
- 点击 **设置** | **创建** | **对象**。
- 点击 **职位**。
- 在“页面布局”相关列表中,点击“职位布局”旁边的 **编辑**。
- 向下滚动到“相关列表”部分,然后双击“就业网站”。
在出现的弹出窗口中,您会注意到“可用字段”列列出了“职位发布”对象和“就业网站”对象中的字段。如果职位发布和就业网站之间没有主从关系,那么“可用字段”列只会列出职位发布字段。
- 将“就业网站:就业网站”和“就业网站:网络地址”字段移至“选定字段”列,并使用向上和向下箭头按以下顺序排列字段:
- 就业网站:就业网站
- 就业网站:网络地址
- 职位发布:职位编号
- 点击**确定**。
- 出现一条消息提醒您保存页面布局。点击 **确定**。
- 在页面布局上点击 **保存**。
现在为“就业网站”对象上的“职位”相关列表做同样的操作,如下所示:
- 点击 **设置** | **创建** | **对象**。
- 点击 **就业网站**。
- 在“页面布局”相关列表中,点击“就业网站布局”旁边的 **编辑**。
- 向下滚动到“相关列表”部分,然后双击“职位”。
- 将以下字段移至“选定字段”列,并使用向上和向下箭头按以下顺序排列它们:
- 职位:标题
- 职位发布:职位编号
- 职位:职能领域
- 职位:地点
- 职位:发布日期
- 点击**确定**。
- 出现一条消息提醒您保存页面布局。点击 **确定**。
- 在页面布局上点击 **保存**。
看看我们做了什么
我们的多对多关系已完成!让我们看看它的实际效果。- 创建几个示例职位和就业网站记录。
- 滚动到任何职位记录底部的“就业网站”相关列表,然后点击 **新建职位发布**。将出现“职位发布”编辑页面。
- 使用查找图标选择要发布职位的就业网站,然后点击 **保存**。
现在您知道通过一次点击就能轻松获取相关信息了!
整合
我们刚刚创建了几个对象和许多关系。下图简单地展示了我们迄今为止取得的成就。
招聘应用程序关系
所有这些关系、对象和字段都显示在下面的实体关系图 (ERD) 中。实体关系图 (ERD) 是结构化数据的概念表示,对于规划和理解应用程序尤其有用。
招聘应用程序实体关系图
我们现在已经构建了所有的招聘应用程序对象和选项卡,并定义了许多自定义字段——从文本字段和选择列表到更复杂的公式字段和查找关系字段。我们创建了一个强大的用户界面,以便我们的招聘人员和招聘经理可以输入和检索有关职位和相关候选人、职位申请以及审查的信息,而这一切都是在不编写一行代码的情况下完成的!
还记得我们把克拉克·肯特曼 (Clark Kentman) 指定为福利专员职位的招聘经理吗?让我们看看克拉克现在能做什么:他可以创建和更新他的职位,并跟踪他发布职位的网站。他可以查看申请福利专员职位的任何候选人的详细信息,并且可以审查他们相关的职位申请。他还可以检查职位申请的状态。他不再需要去人力资源部查找 Microsoft Word 文档和电子表格来管理招聘流程中的任务。招聘应用程序正朝着成为一个功能齐全且有用的应用程序迈进!
然而,在我们结束本章之前,让我们通过创建和导入一些真实数据来为本书的其余部分做好准备。当我们进入下一章关于安全和共享的内容时,拥有一些我们可以使用的记录将会有所帮助。
动手尝试:下载示例数据
除了通过我们的选项卡页面输入数据外,我们还可以使用方便的导入向导一次性导入多个记录。轻松将数据导入自定义对象的能力是 Force.com 的主要优势之一。让我们下载一些示例数据,这样我们就可以在不进行大量输入的情况下为我们的自定义对象添加更多记录。
- 从 http://wiki.apexdevnet.com/index.php/Force_Platform_Fundamentals 下载包含示例 CSV (逗号分隔值) 导入文件的 RecruitingApp-3_0.zip 文件。
- 将 zip 文件解压缩到 C:\dev\recruiting (或您计算机上的任何目录)。
- 转到 C:\dev\recruiting。此目录包含三个 CSV 文件:Positions.csv、Candidates.csv 和 JobApplications.csv。(当我们在“超越原生应用”一章中构建复合组件时,您还将使用该目录中的另一个文件。)
在导入任何内容之前,我们需要修改职位导入文件。您下载的示例 Positions.csv 在“招聘经理”列中包含虚构用户。这些用户的姓名很可能与您组织中的任何用户都不匹配,如果您“按原样”导入文件,导入向导将找不到匹配的用户,并且每个职位记录上的“招聘经理”字段将留空。所以,让我们开始进行更改。
- 转到 C:\dev\recruiting,然后在 Excel、文本编辑器或任何其他可以读取 CSV 文件的程序中打开 Positions.csv。
- 在“招聘经理”列中,用您组织中用户的名字和姓氏替换虚构用户。
- 保存文件,确保保持 CSV 格式。
注意 ![]() |
如果您的区域设置不是英语 (美国),Positions.csv 中的日期和字段值也是无效的。您需要在导入之前更改它们。 |
动手尝试:使用导入向导
现在,让我们使用导入向导和您下载的 Positions.csv 文件来演示导入职位记录的过程。
- 点击 **设置** | **数据管理** | **导入自定义对象**。
- 点击 **开始导入向导!**。导入向导将出现。
- 为要导入的记录类型选择“职位”,然后点击 **下一步**。
- 选择“是”以防止由于此导入而创建重复的职位记录。接受其他匹配默认设置,然后点击 **下一步**。
- 为记录所有者字段选择“无”。我们在 CSV 文件中没有包含用户字段来指定记录所有者。导入向导将您指定为所有新记录的所有者。
- 选择“招聘经理”查找关系字段,以便您可以将职位记录与招聘应用程序中现有的用户记录链接起来,然后点击 **下一步**。
- 选择“姓名”作为您想要匹配的字段,导入向导会将导入文件中的招聘经理姓名与系统中的用户姓名进行比较,然后点击 **下一步**。
- 点击 **浏览**,然后找到 C:\dev\recruiting\Positions.csv。点击 **下一步**。
- 使用下拉列表指定与导入文件中列对应的 Salesforce 字段。为了方便您使用,相同的标签会自动选中。点击 **下一步**。
- 点击 **立即导入!**
使用下表重复导入候选人记录的过程。您会注意到向导跳过了关于查找关系字段匹配的两个步骤——因为 Candidate 对象没有任何查找关系字段,所以导入向导会自动省略这些步骤。
对于此向导步骤... | 选择这些选项... |
1. 选择记录 | 候选人 |
2. 防止重复 | 否——插入我导入文件中的所有记录 |
3. 指定关系 | 无 |
4. 文件上传 | 浏览到 C:\dev\recruiting\Candidates.csv |
5. 字段映射 | 接受所有默认设置 |
6. 验证导入设置 | 点击 **立即导入!** |
最后,让我们再做一次,导入职位申请记录。在此次迭代中,我们将利用“Email”字段(Candidate 对象上的外部 ID)来将职位申请与正确的候选人记录匹配。
对于此向导步骤... | 选择这些选项... |
1. 选择记录 | 工作申请 |
2. 防止重复 | 否——插入我导入文件中的所有记录 |
3. 指定关系 | 哪个用户字段...? 无 哪些查找字段...? 候选人、职位 |
4. 定义查找匹配 | Candidate 上的哪个字段...? Email (外部 ID) Position 上的哪个字段...? 职位名称 |
5. 文件上传 | 浏览到 C:\dev\recruiting\Job_Applications.csv |
6. 字段映射 | Email (第 0 列): 候选人 职位名称 (第 1 列): 职位 |
7. 验证导入设置 | 点击 **立即导入!** |
太棒了!在文件导入过程中,您可以转到 **设置** | **监控** | **导入** 来查看其状态。
导入操作完成后,返回到“职位”、“候选人”或“职位申请”选项卡,然后点击“视图”下拉列表旁边的 **开始**。您将看到所有刚导入的新记录的列表。
我们刚刚在没有太多工作量的情况下向我们的应用程序添加了大量数据。在下一章中,我们将使用平台的内置工具来查看我们可以控制对这些数据访问的所有方式。我们将深入探讨安全、共享规则、权限、角色和个人资料。
© 版权所有 2000-2009 salesforce.com, inc. 保留所有权利。其他商标由其各自所有者拥有。