覆盖内置算子

当用户查询某个具体指标并需要统计同比、环比时,系统默认会使用一套标准的计算算法。

例如,当提问"上月销售额及同比"、"上周销售额及环比"这类问题时,同环比的计算默认遵循系统内置的标准算法。在大多数场景下,默认算法能够满足需求。

如果您的业务场景对同环比有特殊的计算逻辑,需要自定义同期值或环期值的计算方式,可进入 系统搭建 > 业务知识建模 > 指标配置 > 覆盖内置算子,在此处添加需要覆盖的算子。点击「代码片段」按钮可导入模板:

({
  useCustomFunc: (lf, { moment }) => {
    // 根据 logicform 判断是否覆盖系统内置算法
    // 返回 true:覆盖,使用自定义逻辑
    // 返回 false:不覆盖,使用系统默认算法
    return true;
  },
  run: async (lf, _self, config, { execute, commonLib, moment }) => {
    // 自定义计算函数
    // 返回值格式与自定义指标一致
    return [{ _id: '0', [lf.preds[0].name]: 100 }]; // 此处返回的是环期值 / 同期值
  },
  setColumnProperty: async (property, { moment }) => {
    // 设置前端展示的附加说明
    property.description = '对比日期:xxx ~ xxxx';
  }
})

函数说明

函数说明
useCustomFunc判断是否需要覆盖系统内置算法。接收 logicform 参数,返回 true 表示使用自定义逻辑,返回 false 则使用系统默认算法
run自定义计算函数,计算并返回同期值或环期值。返回值格式与自定义指标保持一致
setColumnProperty设置前端显示的附加说明信息,如对比日期范围等
提示

run 函数返回的是同期值或环期值,如需获取目标环比值(如增长率),可在函数内部自行判断并调整计算逻辑。