跳到内容
全部文章
配置

跨对象规则

定义这样一类规则:一个对象上的条件,触发另一个对象上的动作,可以拦住保存、创建一条记录,或者更新相关联的记录。这是一种保证数据完整性的自动化,在表单里写完,不用代码,也不用等某个定时流程。

有些业务规则装不进单个字段的校验里:金额超过一定数目的商机,没有附上方案就不能保存;每一个赢单商机都应当产生一条实施记录;改动一家客户的状态,需要反映到与之关联的合同上。跨对象规则表达的正是这件事:条件在一个对象上,效果落在另一个对象上。

如何创建

  1. 打开“设置”,在“自动化与流程”分组里点击“跨对象规则”。
  2. 填写规则名称,并选择来源对象,也就是要被观察的那类记录所属的对象。
  3. 在“何时”里,选择创建时、编辑时,或创建或编辑时。
  4. 在“条件(全部成立)”里点击“添加条件”,逐行搭建:字段、运算符和值。
  5. 选择动作:拦截、创建记录或更新关联记录。后两者还需要指定目标对象。
  6. 勾选“启用”,然后点击“保存”。

字段是从列表里选的,不是手输的,这样就不会写错内部名称。可用的运算符有等于、不等于、大于、大于或等于、小于、小于或等于、包含、为空和已填写。条件是叠加的:全部成立规则才会触发,而一条不带任何条件的规则则每次都会触发。

三种动作

  • 拦截:阻止保存,并显示你写的拦截提示语。校验发生在写入之前,所以不会留下写了一半的东西。
  • 创建记录:在目标对象上创建一条记录。在“新记录的数据”里,你搭建一组要填入的字段和值。
  • 更新关联记录:遍历目标对象中通过“关联字段”(来源对象上的一个关系字段)指向这条来源记录的那些记录,并把“新值”写进“要修改的字段”。
示例: 规则“大额生意必须附方案”。来源对象:商机。何时:创建或编辑时。条件:金额大于 50000,并且方案为空。动作:拦截,提示语为“金额超过 50,000 元的商机,请先附上方案再保存”。结果:谁想在没有方案的情况下保存,就会看到这条提示,而保存不会发生。

注意事项与边界

  • 由一条规则触发的动作,不会再去重新评估目标对象上的规则。这是有意为之:避免两条规则互相召唤形成死循环,把系统卡住。
  • 一条规则最多接受二十个条件。
  • 取消勾选“启用”会关掉规则而不删除它,这是验证某个怀疑时最稳妥的做法。
  • 会拦截的规则对所有人生效,包括走同一条写入路径的导入和集成。写提示语时,请想着读它的人。
  • 在“更新关联记录”里,“关联字段”是从来源对象的关系字段中选的。没有它、也没有“要修改的字段”,这条规则什么都不做。

谁可以操作

创建、编辑和删除规则需要管理配置的权限。但效果是所有人都会感受到的:任何人保存来源对象的一条记录,都要经过这条规则。

常见问题

  • 我的规则不触发:请确认它处于“启用”状态、触发时机覆盖了你测试的那种操作,并且所有条件在同一时刻都成立。
  • 数字和日期的比较:大于和小于这些运算符按数值比较;等于和包含按文本比较,其中包含不区分大小写。
  • 删掉规则会撤销它已经做过的事吗?不会。已创建的记录和已写入的值都留着;规则只是从此不再起作用。
  • 它和“校验”有什么区别?校验管的是记录本身,逐个字段。跨对象规则看的是一个对象,作用在另一个对象上。

在系统内打开这篇文章

读完想看看它实际运行的样子吗?

账户是免费的,完整手册在系统内随时可看,还有一个助手会基于这份内容回答你的问题。

免费创建账户
跨对象规则 · Sellio