Skip to content

base +workflow: FindRecordAction filter_info 无法按 lookup(查找引用)字段筛选;UI 配好的值经 +workflow-get 读回为空(round-trip 缺失) #1548

Description

@zj1123581321

概述

通过 lark-cli base +workflow-create / +workflow-update 构造工作流时,FindRecordAction(以及任何 RecordFilterInfo)的筛选条件无法以「lookup(查找引用)字段」作为过滤字段

  • 在飞书 UI 里把 lookup 字段作为筛选条件(例如 当前状态 等于 首单已下)是可以正常配置、保存、运行的,且能正确匹配记录。
  • 但同样的条件用 CLI/API 设不进去,且 UI 配好的条件经 +workflow-get 读回来时筛选值是空的——即 lookup 字段的筛选值无法通过 CLI round-trip。

环境:lark-cli 1.0.56

复现

表 A 有一个 lookup 字段 当前状态(引用表 B 的单选字段,值如「首单已下」)。

1) CLI 创建/更新带 lookup 筛选的工作流 —— 失败

FindRecordAction.data.filter_info

// 用 option:
{ "field_name": "当前状态", "operator": "is",
  "value": [{ "value_type": "option", "value": { "name": "首单已下" } }] }
// → 800004535  compile workflow failed, code: -1, msg: can not find option

// 用 text:
{ "field_name": "当前状态", "operator": "is",
  "value": [{ "value_type": "text", "value": "首单已下" }] }
// → 800004006  step ... validate error: filter_info.conditions.0.value:
//    Input invalid: valueType 'text' not allowed for field

(对原生 select 字段,value_type: option 是正常工作的;问题只在 lookup 字段上。)

2) UI 配置同样的筛选 —— 正常

在飞书 UI 给该工作流的「查找记录」加筛选 当前状态 等于 首单已下,保存并启用,运行正常、能正确筛出对应记录。

3) +workflow-get 读回 UI 配好的那条 —— 筛选值丢失

{
  "conditions": [
    { "field_name": "当前状态", "operator": "is",
      "value": [{ "value_type": "text", "value": "" }] }   // value 为空,"首单已下" 丢失
  ],
  "conjunction": "and"
}

影响

  • Agent / 脚本无法用 CLI 管理"按 lookup 字段筛选"的工作流:既设不进去,+workflow-get 也读不回真实值(round-trip 不完整)。
  • 唯一的绕法是把 lookup 的值用脚本物化成原生文本/选项字段、再按原生字段筛——多一层冗余字段 + 需要定期同步脚本,对自动化很不友好。

期望

  1. filter_info / RecordFilterInfo 支持以 lookup 字段为筛选字段并能正确设置筛选值(与 UI 行为一致);
  2. +workflow-get 能完整返回 lookup 筛选条件的值(保证 round-trip);
  3. 文档(lark-base-workflow-schema.md / lookup-field-guide.md)补充 lookup 字段在筛选条件里应使用的 value_type / 取值格式。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingdomain/basePR touches the base domain

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions