统计字段

一、使用场景

在许多业务场景中都需要统计从对象和查找关联对象下的字段值,统计结果作为本对象下的某个字段的值,比如订单的总金额是订单明细的金额字段值的汇总。

二、操作指南

1.1 字段描述

支持在主从关系的主对象中新建,对从属对象&相关对象本身或某个字段进行统计运算。

1.2 目标统计对象

可选择从对象和关联对象

1.3 统计类型

  • COUNT(计数):统计数据的个数,比如客户下面的联系人数量。
  • SUM(求和):统计某个字段的和,比如销售订单下产品的金额合计。
  • MAX(求最大):统计某个字段的最大值,比如客户下最大的商机金额。
  • MIN(求最小):统计某个字段的最小值,比如客户下最低的销售费用。
  • AVG(求平均):统计某个字段的平均值,比如订单产品的平均折扣。

1.4 字段汇总

如果目标统计对象有可以支持所选统计类型的字段就可以配置字段汇总,根据需求选择字段即可

1.5 计算规则设置

向上取值:保留小数位的后一位+1
向下取值:保留小数位的后几位直接忽略
例如:2.124,如果配置显示小数点后两位,向上取值为2.13,向下取值为2.12

1.6 过滤条件

  • 被统计字段过滤条件引用的字段将不可禁用。
  • 过滤条件变更系统需对所有数据重新计算,请勿频繁修改过滤条件。

1.6.1 过滤条件字段

支持作为统计字段过滤条件的字段类型

文本类、数值类、单选/多选/布尔值、人员/人员多选、部门/部门多选、查找关联、国家省市区、定位

不支持的作为统计字段过滤条件的字段类型

  • 计算字段:不管计算字段本身是否可筛选,都不支持;
  • 统计字段
  • 引用字段:不管引用字段是否可筛选,都不支持;
  • 组件字段:支付(收款)组件、签到组件、地区定位、日期范围,这些组件字段是一个整体,需要用内部的字段进行过滤,比如:国家省市区,如果内部字段选择不到就是不支持。
  • 业务字段:评星、视频、预约时间段。
  • 其他不支持的字段:查找关联多选、富文本、协同富文本、长文本、图片、附件、外部人员、关联业务数据、关联业务对象等。

1.7 注意事项

1.当统计字段下某些字段本角色没有权限时,统计字段不计算/计算为空。
2.统计关联对象为异步计算,计算结果可能会存在延迟!
3.点击编辑字段页面的保存时,若数据大于10w条,会弹出提示弹窗。

  • 若选择“现有数据不计算”:不会计算新建完计算字段之前的创建的历史数据
  • 若选择“全部计算(数据量大,可能计算时间会略长)“:会计算该对象下现存的全部数据,若配置了该选项会出现计算延时的问题(即计算字段的值在一段时间内为空)
  • 若选择”符合以下数据范围计算“:可按需配置条件,系统只对满足条件的数据进行计算
  • 若数据小于等于10w条,不会弹出提示弹窗,系统会正常保存计算字段

1.8 查看统计任务进度

新建或编辑统计字段后,因为计算历史数据需要花费的时间较长,因此提供了一个查看任务进度的入口,当任务执行中和等待中时可以查看统计字段的统计任务执行情况。此时列表会显示【计算任务执行情况】按钮,点击按钮弹出弹窗显示任务状态,展示任务的总数据量,已经完成的数据量和预计任务结束的时间。

图为【统计字段】规则设置

二、统计字段常见问题及排查方法

2.1 统计字段没有值,或者值错误要如何排查?

2.1.1场景举例

订单对象中的【订单金额(原币)】字段是统计字段,统计从对象【订单产品】中所有产品的【价格】之和
但是在列表页中查看数据时发现【订单金额(原币)】字段没有值

2.1.2 可能原因及排查方法

2.1.2.1 计算延迟导致的统计字段值为空

1.确认该统计字段是否是新建或者是重新编辑过的,此时统会重新计算历史数据,但是当数据量较大时延迟会比较久,就会导致查看数据时可能还没计算完历史数据的情况,建议耐心等待几小时或者一天时间在查看

2.当有批量导入或者使用按钮等批量修改数据的情况,这种增量统计也会有延迟

2.1.2.2 统计字段配置错误导致的统计字段值错误或统计字段值为空

1.目标统计对象配置错误,想统计的是A对象但是设置为B对象,此时请先检查【目标统计对象】是否正确,具体如何查看请看「统计字段配置说明-关联对象」章节(此排查方式仅支持排查关联对象,从对象不适用)。
2.字段汇总配置错误,目标统计对象没问题,检查统计的字段是否真的有被统计的数据。
3.数据过滤条件配置错误,检查统计数据范围的过滤条件是否正确。

方式1:在被统计对象筛选数据,确认好关联字段是哪个,筛选哪条数据关联了统计值不对的数据
方式2:查看统计值不对的数据详情页->被统计对象的相关列表,看是否有数据
方式3:被统计数据统计字段的过滤条件是否正确

2.1.2.3 被函数覆盖导致的统计字段值错误

统计字段在计算服务算出来是正确的,但是可能会被工作流、UI函数等后续函数并发更新给覆盖掉,建议查看修改记录排查一下,如果新建/编辑数据后有配置工作流、后动作函数、UI函数等,需要修改下函数修改方案:
Fx.object.batchUpdate(<String apiName>,<Map objects>)
Fx.object.batchUpdate(<String apiName>,<Map objects>,<List fields>)
即使用增量的批量更新,fields参数表示需要更新的字段列表

2.2 统计字段如何统计到其他字段的内容

先选择目标统计对象和统计类型,如果目标统计对象下有支持所选统计类型的字段就会有字段汇总的选项,如果目标统计对象下没有支持所选统计类型的字段就不会有字段汇总的选项。如果选择完目标统计对象和统计类型,出现字段汇总的选项,选择字段即可。

2.3 关于统计字段的时效性

统计字段是在后台程序队列中异步计算的,不是实时更新,因此存在一定的延迟,延迟的时间和队列中排队的任务数有关,购买了独立数据库的租户会分配独立的计算队列。

2.3.1 对于多条数据统计字段的时效性

1.统计字段是新建或者是重新编辑过的,此时统计字段会重新计算历史数据,但是当数据量较大时延迟会比较久。
2.批量导入或者使用按钮等批量修改数据的情况,这种增量统计也会有延迟。

2.3.2 对于单条数据统计字段的时效性

当被统计的对象数据提交成功以后(完成新建或编辑),统计字段开始计算。

2024-11-23
2 0