Trailhead学习笔记(四)--Recruiting App Project1

        前面知识很零碎,学到哪是哪,这次正好看到一个Project 以Recruiting App为例,顺腾摸瓜找到了其他相关Project。于是乎从头到尾跟着练习,正好就把学过的零碎知识点串起来了。

        该例从Install Package(App半成品)开始,按照创建数据模型-->UI设置-->提高数据质量(控制输入计算公式等)-->数据安全相关设置-->流程自动化的顺序进行实操,因篇幅太长拆分为两部分,有的知识点之前记录过,所以只做重点笔记和部分截图。

1. Build a Data Model for a Recruiting App

        主要是创建对象,创建各种类型的字段,常见的Text Textarea,Number等。这里需要记录的两个概念Juction Object 和Self Relationship。

        1.1 Junction Object

            A junction object is a custom object with two master-detail relationships, and it is the key to making a many-to-many relationship。

            应用场景:发布职位(Job Posting)和职位(Position)及发布网站(Job Posting Site)之间的关系,一个职位可以发布多次,一个招聘网站可以发布多个职位。所以Job Posting 和Position是多对一的关系(Master-Detail),跟Job Posting Site也是多对一的关系,但是在一个招聘网站,一个职位发布表单只能发布一个职位。 所以Job Posting充当了Junction Object的角色,从而建立多对对的关系。好拗口~

        1.2 Self Relationship

        查找关系除了与其他对象管理之外,还可以自关联。比如Trailhead --> build-a-data-model-for-a-recruiting-app中的Position,在可以新建一个Lookup-Relationship字段Related Position,同时关联时可以增加一个过滤器(本部门的其他职位)。应用场景:当人力创建一个职位时,可以建立跟其他职位的联系。

2.Customize the User Interface for a Recruiting App 

    设置UI主要有几个方面,Tab选项卡,Page Layout页面布局,Lightning Record Page,Compact Layout紧凑布局,还有利用Record Type记录类型,结合Profile来控制用户看到不同的Page Layout,Picklist字段显示不同的可选项。

    2.1 添加Tab - Create a Tab for the review object

    Setup -->Tabs -->Custom Object Tabs section-->New

     Append tab to users’ existing personal customizations.

    问题:这个地方添加Tab和自定义对象是添加Tab的区别?????

    调整App中各个tab的显示顺序

    setup-->App Manager -->Navigation Items,从available Items中选中并添加到右面,可调整先后顺序。

    Users can personalize the navigation to add or move items,but users can't remove or rename  the items that you add.

    用户可以通过添加或移动项目来自定义导航选项卡,但是不可以删除或重命名管理员添加的项目。

    (Q:管理员自定义后,用户打开默认的界面并没有按照管理员定义的顺序显示,why???倒是可以自定义)

        In the Add to Custom Apps section:

        DeselectInclude Tab.

        EnsureAppend tab to users’ existing personal customizationsis selected

        创建对象-->创建Tab(用户自定义)-->App Manager,添加Item(Tab)

    2.2 Create an Object-Specific Quick Action

         在Object Manager-->Candidates-->Buttons, Links, and Actions-->New Action(Create a record named New Job App)

        注意!!!:创建一个Create a record类型的Action,还有给Action设置布局,即创建这个Action时,记录界面是怎样显示的,需要输入哪些内容。

        Page Layouts -- >Candidate PageLayout -- Override predefined buttons. 把New Job App拖到相应的位置.

         (也就是说当创建一个Action后,需要把它添加到相应的页面布局。)

          这样当打开一个Candidate记录时,在Quick Action区就能看到New Job App了。

            下面就是New Job App的一个页面布局

2.3 customize the review page layout

            A page layout determines the fields, sections, related lists, and buttons that appear when users view or edit a record.

              这一步是自定义筛选简历的页面,布局页面布局是当你打开一条记录时所能看到的区域,字段,相关列表和按钮,通过拖拽来实现。  

 2.4 Create a  Custom Candidate Record Page

            直接New 一个Candidate,在记录的右上角setup中找到Edit Page,可以进入Lightning Record Page的编辑界面,并拖拽组件进来。

            ···New Compact Layout (Label:Includes Candidate Name,只加了三个字段 First Name,Last Name和Candidate Number)并把它设置为默认的。 没设置之前是system default

             三种类型的区别: Page Layout 、Lightning Record Page 和Compact Layout

2.5 Create Record Types on the Position Object

         场景:每个招聘经理只能创建自己部门的职位,这里用到的概念是Record Type记录类型,记录类型能控制界面上显示的内容和下拉列表中可选的选项。

        Step1:先创建两个Profile:Technical 和NonTechnical

        Step2:创建一个Record Type :Technical Position,Profile Assignment -- Technical 和System Administrator

                     修改Department(Picklist类型的字段),选项保留IT和Engineering

        Step3:把Record Type字段添加到Page Layouts页面布局

2.6 Customize the Position Page Layout

        页面布局的分配:简档和记录类型的组合。

        创建新的Position Page Layout,再按照Page Layout Assignment表进行分配。

        下图是Position的Page Layout Assignment界面,一开始看不懂为啥分配的记录类型也要分配Page,搜了一圈找到一个英文说明,搞清楚了。本例中 User 如果分配了HR Recruiter(Profile),该Profile分配了 Technical Position(Record Type),实际应该是行Record Types和列Profiles交叉的Cell 设置才是用户最终创建Position时的界面,没分配的两个Record Type的设置没意义???,不知道我理解的对不,待进一步学习确认。

        Since all users can access all record types, every record type must have a page layout assignment, even if the record type isn't specified as an assigned record type in the profile.

Edit Page Layout Assignment

        Profile -- Layout Setting        

        通过Profile 去查看Custom Object Layouts设置,可以看到Position 是根据记录类型来变化的。点View Assignment,同样可以进入上图“Edit Page Layout Assignment” 矩阵表。

Profile - Recruiter:Technical - Layout Setting

        Profile -- Record Type Setting

Profile - Recruiter:Technical - RecordType Setting

        设置完成后,再New Position时,界面显示如下,其中Department 只能选择IT 和 Engineering (这个picklist选项值是记录类型 Technical Position决定的)

New Position

2.6  Enable Chatter on the Review Object

       Setup-->Feed Tracking-->Enable Feed Tracking--Select object and Fields.

        启用字段跟踪可以方便地查看到跟踪字段的变化,并在chatter中跟其他用户交流,在本app中HR Team可以方便地沟通候选人的变化。

        You’ve created tabs, quick actions, record types, and record pages. You’ve customized page layouts and enabled feed tracking on Chatter. With all this hard work, you’ve made Ling Wu and her recruiting team happy. You’ve also made their Recruiting app much more efficient. Now they have a more user-friendly app and much easier access to the information they need to do their jobs well. It’s all in a good day’s work for an awesome Admin.

3. Improve Data Quality for a Recruiting App

      为了保证数据的质量,应该规范用户输入,减少重复数据,保证数据在多个地方显示和保存的一致性。

        3.1 Create Cross-Object Formulas

        为了避免用户重复输入、保证数据一致性,可以利用公式,组合父对象的字段信息展现到子对象的界面,视图和报表中。所以Cross-Object Formula是在Detail Object上创建的。比如在Review 上创建 字段显示Candidate的 FullName = LastName +'  ' +FirstName.        

        3.2Create Validation Rules

         创建校验规则,这里介绍了两种校验方式,一是利用公式,当不满足校验公式时报错;另外一种是创建一个表用来存储基础数据,类似数据字典功能,然后校验规则时用VLOOKUP来查找校验。

         VLOOKUP校验的应用场景:本例中要求在Position中输入的Zip Code,能与State匹配。 所以创建一个新的Object,保存Zip Code和State、City的对应关系。 当输入Zip Code时,利用vlookup公式查询出基础表中State,和当前输入的城市做比对。

        3.3 Create Formula and Roll-Up Summary Fields

          创建公式字段和累计汇总字段,公式字段可以用来简单的组合字符串,比如FullName = LastName &" " &FirstName.

          而累计汇总字段只能用于Master-Detail关系的Parent Object,用来计算count,sum ,average ,Max,Min子对象的数据。在本例中,Job Application和Reviews是父子关系,在Job Application对象上增加了字段 Number of Reviews,Total Review Score,Average Review Score分别实现3个功能。

         (实际应用中可能lookup关系的对象也需要汇总,可以用Flow触发计算)

           累计汇总字段和之前的多对象字段正好相反,是从Master Object汇总Detail Object的值,而公式字段是在Detail Object字段创建,去查找Master的值做组合公式。

4. Keep Data Secure in a Recruiting App

            数据安全性设置主要是设置用户的权限,保证用户看到自己应该看到的数据。之前有一篇关于权限的学习,主要从OWD ,Profile,Permission set,Sharing几个方面来设置用户的权限。

            4.1 Create Custom Profiles

            本例中创建了一个名为HR Recruiter的Profile,对几个自定义对象的CRUD设置如下:

Profile - Custom Object Permission


            4.2 Restrict Data Access with Field-Level Security, Permission Sets, and Sharing Settings

                   Permission Set通常作为Profile的一个补充,进行更进一步的权限控制。  

                   New Permission Set,把Recruiting App添加之后,点击 Assigned Apps中的Object Settings,设置对每个对象的访问权限。

Permission Set

            下面是对Interviewer这个对象的访问权限设置,包括Tab、Object和Field等。

                点击下拉箭头可以对其他对象的访问权限进行设置。

                字段的访问权限:可以针对单个字段的访问权限,比如对Salary Range这个存储比较敏感信息的字段,只允许HR Reruiter和System Administrator两个Profile查看;另外也可以对一个Profile设置多个字段的读取权限;同样,也可以在Permission Set设置对字段的访问权限,见上上图,本例中对Permission Set - Hiring Manager设置了Salary Range的权限。

                   点某一个custom object旁边的view可以打开该Profile对对象字段的访问权限,如下是HR Recruiter对Position各个字段的权限设置。

               共享设置-对记录的访问权限。OWD级别的共享设置:From Setup, enter Sharing Settings in the Quick Find box and select Sharing Settings.Click Edit in the Organization-Wide Defaults section.  通常大多数对象的权限都是Private,再逐步通过Profile,Permission Set等放开权限。 比如本例中的Candidate、position等customer object。但是Job Posting Site需要让应聘人员查看,所以是Public Read,还有一个例子是Marketing Service中的Campaign,也应该是Public Read。

              至此,一个能够创建记录的Recruiting App完成了,如果用流程使处理过程自动化,是下一次学习的内容。

    To be continued…

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354