第10章 定制工作流

10.1 工作流

10.1.1 什么是工作流

  工作流是一个 Force平台业务逻辑引擎,允许我们根据定义的规则自动发送电子邮件警告、分配任务或更新字段值。如果对记录的修改符合工作流规则中的条件,平台就会自动地执行与这个规则相关联的任何操作。例如,假设开发经理已经决定聘用一个应聘者,由于聘用工作由招聘人员负责,在这种情况下,负责的招聘人员不知道开发经理是否做出了决定,除非开发经理通过电子邮件或电话直接通知他。为了让开发经理不必记得通知,我们可以设置一个简单的工作流,当职位申请记录上的状态被设置为已聘用时,这个工作流会分配适当的任务。面试官一旦修改了应聘者的职位申请状态,这个工作流就会创建适当的任务并向招聘人员发送一封电子邮件(见下图)。

  

  一般来说,如果我们可以用标准规则指定某一事件应该在什么条件下发生,就可以用工作流自动执行它。工作流由规则、任务、字段更新和警告组件组成。

  详细请参考:https://help.salesforce.com/articleView?id=customize_wf.htm

1、工作流规则

  工作流规则( workflow rule ) 是一组工作流指令的容器。它包含激活这个工作流的条件,以及在满足这个规则的条件时应该执行的任务、警告和字段更新。工作流规则可以分为两个主要组成部分:

  (1)条件:“如果/则”语句的“如果”部分。换言之,记录内容必须为真,才能让工作流规则执行关联操作。

  (2)操作:“如果/则”语句的“则”部分。换言之,在记录满足条件时执行的操作

 

  在下雨示例中,条件是“如果下雨”,则操作是“带雨伞”。如果条件未满足(未下雨),则不会执行操作(无需带雨伞)。

 

  在记录满足工作流规则的所有条件时,则将会执行规则的操作。

 

  每个工作流规则必须基于在定义规则时选择的一个对象。这个对象影响到可用来设置工作流激活条件的字段。例如,如果为职位申请对象定义工作流规则,就可以设置基于申请编号和状态等字段的值的工作流激活条件。

2、工作流任务

  工作流任务( workflow task ) 根据特定的模板将任务分配给用户。任务中的信息指定在特定情况下需要做什么,比如约朋友去看电影或去听一场讲座。分配的任务出现在用户主页选项卡上的我的任务列表中,并在用户登录时生成提示消息。在定义工作流任务时,要为相关工作流规则生成的任务的接收人、主题、状态、优先级和到期日期字段提供默认值。还可以在自动生成任务时向接受任务的用户自动发送电子邮件通知。

3、工作流字段更新
  工作流字段更新(workflow field update)会修改最初触发这个工作流规则的记录上的字段值。

4、工作流电子邮件警告
  工作流电子邮件警告( workflow email alert ) 根据指定的电子邮件模板发送电子邮件。工作流任务只能分配给应用程序的用户,而工作流警告可以发送给任何用户或联系人,只要他们有效的电子邮件地址。

10.1.2 创建工作流

1、定义工作流

我们为招聘管理系统定义工作流:

(1)当职位申请记录的状态变成已聘用或已拒绝时,将一个任务自动地分配给招聘人员。

(2)当招聘经理创建新职位时,是最终要让一个招聘人员拥有这些记录,因为填写这些记录是招聘人员的工作责任。可以用工作流实现这个需求,如果一个职位记录最初是由招聘经理创建的,就使用一个工作流字段更新将这个记录的所有者改为一个招聘人员。

(3)我们来考虑一下如何在整个公司内公示可用的职位,希望通过员工提名决定职位的人选,但是员工常常不知道目前有哪些职位空缺。当出现一个新职位空缺时,可以使用工作流警告向所有员工自动发送电子邮件。这样,员工就可以及时了解可用的职位,考虑他们及他们的朋友是否对这个职位感兴趣。

2、创建工作流规则

(1)进入工作流规则窗口:设置 -> 创建 -> 工作流和批准 -> 工作流规则 -> 继续 -> 新建规则

(2)按向导完成创建:

 

(3)启用规则:设置 -> 创建 -> 工作流和批准 -> 工作流规则 -> 继续 -> 点击规则(进入详细窗口) -> 启用

3、创建操作—任务

 (1)进入工作流规则详细窗口:设置 -> 创建 -> 工作流和批准 -> 工作流规则 -> 继续 -> 点击规则

 (2)添加操作:即时工作流操作 -> 编辑 -> 添加工作流操作 -> 新建任务

 (3)按向导完成:

  

 

 (4)创建完成后,当我们将职位申请状态修改为已拒绝或已聘用时,被分配人会收到邮件或在主页的我的任务栏里收到任务。

4、创建操作—字段更新

 (1)创建并启用规则

  

 (2)为规则创建更新字段操作:添加工作流操作 -> 创建字段更新

  

 (3)用招聘经理角色登录,创建新职位,您会发现所有人被更改。

5、创建操作—电子邮件警告

  (1)创建电子邮件模板

  对于工作流警告,需要构建一个电子邮件模板,把系统中添加的新职位通知用户。 可以使用合并字段在电子邮件中包含来自职位记录的信息,比如职位的头衔和所需的技能。

  合并字段:{!对象名.字段名}

  例如:职位名称:{!Position__c.Name},职位描述:{!Position__c.Description__c}。

  创建步骤:设置 -> 通信模板 -> 电子邮件模板 -> 新建模板

  

  (2)创建并启用规则 

  

  (3)为规则创建电子邮件警告操作:添加工作流操作 -> 创建电子邮件警告

  

  (4)改变职位状态为批准,CEO及下属将收到一封新职位招聘的邮件警告。(系统管理员除外,因为他不属于CEO及下属)

6、创建队列

  我们在创建字段更新操作时,创建一个工作流规则来确保新职位记录的所有者是一个招聘人员,但是所有职位记录的所有者总是同一个招聘人员,这是不合理的,如果公司有多个招聘人员,应该将职位随机分配。为此,需要将由招聘经理创建的职位记录的所有者设置为一个没有所有者的职位记录队列,将职位放到这个队列中之后,各个招聘人员可以指定他们希望负责的职位。队列就像一个失物招领处,其中包含没有所有者的记录。访问这个队列的用户可以检查其中的每个记录并对想要拥有的记录声明所有权。

 (1)创建队列:设置 -> 管理用户 -> 队列 -> 新建

  

 (2)修改更新字段操作:设置 -> 创建 ->字段更新 ->编辑(分配职位创建人)

  

  (3)大功告成,招聘经理创建的职位所有人会变成:无人认领的职位队列。

7、添加时间触发器

  将职位记录放到无人认领的职位队列中的目的是让适当的招聘人员获得所有权。但是,放在队列中的职位可能长时间没有招聘人员来认领。为了避免这种情况,可以定义一个时间触发器工作流操作,如果一个职位记录在指定的天数内无人认领,这个操作就会向招聘经理发出警告。因为这个操作只在工作流条件仍然为真(也就是,拥有这个职位的仍然是非招聘人员)的情况下执行,所以只在必要时通知经理。时间触发器工作流操作是在经过特定时间之前或之后执行的操作(例如, 在 Hire By 字段值之前的 7 天,或者在触发工作流规则之后 3 天)。通过使用时间相关工作流操作,可以在工作流条件仍然为真的情况下触发任务、字段更新或电子邮件警告。

 (1)创建时间触发器:进入工作流规则Assign_Position_ to_ HR的详细窗口 -> 编辑依赖于时间的工作流操作 -> 添加时间触发器

 

  

 (2)添加工作流操作:新建任务(在创建时间触发器的同一窗口)

  

(3)启用规则

  在激活这个规则之前必须设置默认的工作流用户。这是怎么回事儿? 如果原来触发这个规则的用户不再处于已登录状态,那么应该将另一个用户设置为工作流操作的所有者,这个用户就称为默认的工作流用户。在使用时间相关工作流操作时,需要这个设置。将默认的工作流用户字段设置为组织中的任何用户。在大多数情况下,最好选择一位系统管理员。

【总结】

1、工作流是一个 Force平台业务逻辑引擎,允许我们根据定义的规则自动发送电子邮件警告、分配任务或更新字段值。如果对记录的修改符合工作流规则中的条件,平台就会自动地执行与这个规则相关联的任何操作。

2、工作流由规则、任务、字段更新和警告组件组成。

【练习】

1、当学生选修了一门课程时,将此消息发送给教务员。

2、当学生选修了一门课程时,任课教师可以选择学生。

3、当学生的总学分达到10分时,应该给学生发一份邮件警告。

posted @ 2019-07-30 18:05  A三哥  阅读(480)  评论(0编辑  收藏  举报