来源:宣传视频车道 #147(一句话新模块·请假管理)为改版取景所做的只读侦察。未改动任何平台代码、未改任何配置,本单为纯只读观察。
本单只描述现象,不预设修正方向。 是否算缺陷、以及该往哪个方向处理(对象自动可报表、按需生成 dataset、保持显式声明并在别处补齐、或仅改文档与提示),全部留给负责人裁定。故不带 pm:queue——请先分级,不要被自动流程当成待开发任务直接领走。
现象
一位 AI agent 依据一句业务需求,在既有 CRM 应用里长出了一个完整的请假模块:对象 crm_leave_request(15 字段)、审批流、5 个 profile 的权限声明、4 个视图、写进既有应用导航的菜单项。这些在应用里都能用。
但这个新模块在报表里选不到。
报表构建器本身是齐全的——Report type(Matrix)、Dataset、Values(measures)、Rows/Columns(dimensions)、Chart type,左侧还有带合计行的实时预览。问题在它的数据源入口:它只接受 dataset,不接受对象。
Dataset 下拉里共 13 项:
| 类别 |
数量 |
说明 |
平台级 sys_* |
4 |
User / Organization / Session / Audit Log Metrics |
| 业务对象的 |
9 |
account / case / contact / event / forecast / lead / opportunity / product / task —— 每一个都在 src/datasets/ 里逐个声明过 |
| 请假的 |
0 |
—— |
机械核查:src/dashboards/、src/reports/、src/datasets/ 三个目录里零 leave 声明(唯一 grep 命中是 shared-widgets.ts 注释里的英文单词 "leave",假阳性)。
于是「本季度各人请假天数」这类报表现在出不来;要出,必须先另写一份 leave dataset 声明。
为什么记下来
同一个模块,运行时的那一面是齐的(表单、审批、视图、导航、记录权限都能用),分析的那一面是空的——两者的开通方式不同:前者由对象与视图声明带出,后者要再声明一次 dataset。
对一个「按描述长出模块」的平台,这意味着任何新长出来的对象,其分析能力都不随模块一起到位,需要第二次声明。这是本次侦察观察到的事实;是否属于有意的设计取舍(例如 dataset 承担了治理、RLS、度量语义等对象本身不表达的东西),本单不判断。
相关的界面观察(同为只读)
- widget 属性面板的 DATASET BINDING 帮助文本原文:「Bind a governed dataset. When set, it takes precedence over the inline object query above …」——即 widget 另有一条直接查对象的 inline query 路径。
⚠ 未验证该路径能否指向 crm_leave_request:验证需要新建或修改一个 widget,属改配置,超出本次只读范围。如实记为未验证,不作推断。
复现最小路径
- 在一个已有若干 dataset 的应用里,新建一个对象(本例
crm_leave_request,15 字段),并为它声明视图与菜单项;
- 打开报表构建器,展开 Dataset 下拉;
- 新对象不在列表中——列表里只有
sys_* 与那些已被显式声明过 dataset 的业务对象。
取证环境
2026-08-31,载体 objectstack-ai/hotcrm,钉 @objectstack/* 17.1.0。纯只读 + 截图,未改数据、未改配置、未改源码。
邻近既有单(已查,非重复)
现象
一位 AI agent 依据一句业务需求,在既有 CRM 应用里长出了一个完整的请假模块:对象
crm_leave_request(15 字段)、审批流、5 个 profile 的权限声明、4 个视图、写进既有应用导航的菜单项。这些在应用里都能用。但这个新模块在报表里选不到。
报表构建器本身是齐全的——Report type(Matrix)、Dataset、Values(measures)、Rows/Columns(dimensions)、Chart type,左侧还有带合计行的实时预览。问题在它的数据源入口:它只接受 dataset,不接受对象。
Dataset 下拉里共 13 项:
sys_*src/datasets/里逐个声明过机械核查:
src/dashboards/、src/reports/、src/datasets/三个目录里零 leave 声明(唯一 grep 命中是shared-widgets.ts注释里的英文单词 "leave",假阳性)。于是「本季度各人请假天数」这类报表现在出不来;要出,必须先另写一份 leave dataset 声明。
为什么记下来
同一个模块,运行时的那一面是齐的(表单、审批、视图、导航、记录权限都能用),分析的那一面是空的——两者的开通方式不同:前者由对象与视图声明带出,后者要再声明一次 dataset。
对一个「按描述长出模块」的平台,这意味着任何新长出来的对象,其分析能力都不随模块一起到位,需要第二次声明。这是本次侦察观察到的事实;是否属于有意的设计取舍(例如 dataset 承担了治理、RLS、度量语义等对象本身不表达的东西),本单不判断。
相关的界面观察(同为只读)
⚠ 未验证该路径能否指向
crm_leave_request:验证需要新建或修改一个 widget,属改配置,超出本次只读范围。如实记为未验证,不作推断。复现最小路径
crm_leave_request,15 字段),并为它声明视图与菜单项;sys_*与那些已被显式声明过 dataset 的业务对象。取证环境
2026-08-31,载体
objectstack-ai/hotcrm,钉@objectstack/* 17.1.0。纯只读 + 截图,未改数据、未改配置、未改源码。邻近既有单(已查,非重复)
crm_account.industry) renders raw stored values — the same field as a local dimension renders its option labels #5144Analytics: a dataset dimension on a dotted relationship path renders raw stored values …(已声明 dataset 之后的维度渲染问题,与本条的入口可用性不同;已以not_planned关闭)