Filter 与 TQL
Traduction en coursCe guide est actuellement disponible en chinois simplifié. Une version traduite sera ajoutée ultérieurement.
Filter 保存一段可复用 TQL(Task Query Language)。它可以在任务工作台中使用,也可以被页面设计器的 TaskList 引用。
1. 创建 Filter
- 进入 Data & Permission → Filters。
- 点击 New Filter。
- 填写 Filter Name。
- 在 TQL 编辑器中输入查询。
- 按界面能力选择 Private 或 Shared 等可见范围。
- 通过语法和语义校验后保存。
Filter Key 由系统自动生成,不需要用户填写。Filter 也不需要配置 Status。
images/pd-filters-list-01.webp2. 使用 TQL 编辑器
TQL 编辑器提供字段、操作符、函数和值的在线建议,并执行语法和语义校验。输入时优先选择候选项,不要复制未经当前版本验证的字段名。
常用系统字段包括:
taskKeytitletaskTypestatusstepassigneecreatorcreatedAtupdatedAtpriority
支持的自定义字段以搜索能力和补齐结果为准。
images/pd-tql-suggestions-02.webp3. 采购案例查询
开放采购申请:
taskType = "PURCHASE" AND status = "OPEN" ORDER BY updatedAt DESC
当前用户待办:
taskType = "PURCHASE" AND assignee = currentUser() ORDER BY updatedAt DESC
多个状态:
taskType = "PURCHASE" AND status IN ("OPEN", "PROCESSING") ORDER BY createdAt DESC
空值、组合条件等高级写法应通过编辑器候选和校验构建。自定义 Amount 字段的引用必须以当前编辑器补齐结果为准,不在文档中猜测语法。
4. AND、OR 和括号
组合 AND 与 OR 时显式使用括号:
taskType = "PURCHASE"
AND (status = "OPEN" OR status = "PROCESSING")
ORDER BY updatedAt DESC
没有括号的混合表达式容易产生与阅读者预期不同的优先级。
5. 在页面设计器中引用
TaskList 通过保存后的 Filter Key 绑定查询。修改 Filter 的 TQL 后,引用该 Filter 的 TaskList 会在对应版本发布后使用新定义。Worklist 则提供 My Pending、My Created、My Processed 等内置视图。
任务列表不使用 DataList。DataList 是 Business Object 模型列表,与 TQL 和任务权限无关。
6. 验证 Filter
- 在设计器中通过语法和语义校验。
- 在 DEV 或 TEST 使用至少两种用户身份运行。
- 检查总数、分页和排序。
- 验证无权限任务不会因为 TQL 条件而被越权看到。
- 修改 Filter 后确认已发布到正在验证的环境。
TQL 描述查询条件,权限方案仍然是数据可见性的最终约束。查询条件不能提升用户权限。
7. 常见问题
Filter 保存后 TaskList 为空:检查 Filter Key、当前环境版本、任务类型 Key、用户权限和实际任务状态。
编辑器提示未知字段:从候选列表重新选择字段;自定义字段可能未启用搜索或尚未发布。
当前用户查询没有结果:确认任务确实分配给当前登录用户,而不是仅属于其角色候选池且尚未认领。