什么是动态下拉
如果配置操作时,需要从你的应用系统中选择数据,例如选择一个项目、文件夹、团队成员等,并且这些被选择的数据都有相应的唯一 ID(往往这些 ID 不可读,也不好记忆),那么你可以尝试使用动态下拉。对于动态下拉类型的字段,连接器首先会从你的另一个 API 中获取数据,然后将其显示在动态下拉的选项列表中。用户可以不需要直接输入 ID,而是使用动态下拉功能,通过更可读的名称来直接选择一个项目、文件夹、团队成员或其他数据,在工作流运行时会自动替换成 ID。
在连接器开发工具中制作动态下拉列表的最佳实践是使用「仅内部使用」类型的操作,来获取选项列表,包括选项的展示名和选项值。并在其他操作中,需要使用动态下拉的字段上,绑定这个「仅内部使用」的操作。
名词概念解释
- “用于业务集成”和“内部使用”两种操作的区别:用途为“内部使用”的操作是指该操作只能在当前连接器开发项目中被使用,其他“用于业务集成”类型的操作或触发器可以使用这个内部操作,可以用于配置动态下拉。并且该操作不可以在集成流程中所选择与使用。“内部使用”类型的操作在开发与配置流程中与正常的操作基本一致,只在表单配置上有少许区别。
开发流程
接下来我们以开发一个飞书的动态获取部门列表组件为例,演示动态下拉的配置过程。
前置条件 - 配置一个内部使用的操作
当我们需要开发一个动态下拉组件时,我们需要先开发一个用途为 内部使用 的操作;通过该操作我们可以定义动态下拉的数据是如何获取的,调用什么接口以及如何传递接口参数。
配置凭证与 BaseUrl
- 为了集成飞书,我们需要将连接器的凭证设置为飞书应用授权; BaseUrl 设置为飞书开放平台接口域名 https://open.feishu.cn (如图 1)
250px|700px|reset

图 1
创建用途为内部使用的操作
- 创建时选择用途为内部使用(如图 2)
250px|700px|reset

图 2
- 根据开放平台文档的描述,填写请求的信息 (如图 3)
250px|700px|reset

图 3
调试内部操作
对于创建好的内部使用操作,我们可以通过调试以验证正确性
- 在右侧调试台创建并选择一个凭证,并且在下方的代码编辑框里输入 department_id 入参为 0。(如图 4)
250px|700px|reset

图 4
- 点击调试,查看调试结果,若调试成功此时可以显示部门的列表信息;若失败则会显示错误信息,可以根据提示进行排查。(如图 5)
250px|700px|reset

图 5
- 可以保存调试记录,或直接退出不保存。
配置动态下拉组件
当我们开发好一个用于获取部门列表数据的内部使用操作后,就可以开始配置动态下拉组件了。
如何将下拉组件配置为动态获取
- 我们在一个需要配置动态获取部门数据的操作入参中新增一个 string 类型字段 open_department_id (如图 6)
250px|700px|reset

图 6
- 配置该字段的控件类型为 单选下拉框 (如图 7)
250px|700px|reset

图 7
- 将 控件的数据来源 选择为 动态获取 (如图 8)
250px|700px|reset

图 8
配置动态获取
- 我们需要选择一个内部使用操作作为动态获取的数据源,当我们点击下拉框时,可以看到刚刚创建的 获取部门列表 的操作,我们需要选择该操作
- 当我们选择该操作后,下方会出现两个表单:配置内部使用操作的入参 与 配置内部使用操作的出参 我们需要分别进行配置
- 配置内部使用操作的入参:该表单是用于配置所选择的内部使用操作的入参如何获取;可以看到当选择了我们刚刚创建的操作时,会展示 department_id 选择待配置,而此时我们需要配置这个参数如何获取值。我们可以配置成两种不同的方式:
- 动态级联监听:这个值可以通过监听当前编辑的操作的其他入参进行获取(通过编写表达式 如图 9),当我们如图所示监听了 parent_department_id 时,在获取数据时会将连接器用户所填写的 parent_department_id 的值作为参数去动态获取数据。
250px|700px|reset

图 9
- 固定常量:也可以写成常量,如 0 (如图 10)
250px|700px|reset

图 10
- 配置内部使用操作的出参:我们同时需要配置如何处理内部使用操作的出参数据,以便在下拉列表组件中进行展示。我们需要分别配置 动态下拉选项列表的数据获取路径,以及每一个选项的 展示名称、选项值、说明 三样信息。
- 动态下拉选项列表的数据获取路径:该选项需要通过表达式来指定从内部使用操作的出参中的哪个列表项数据来作为整个动态下拉列表的选项。
- 输入 {{ 唤起表达式输入框,并且可以展示内部使用操作的出参数据(如图 11),我们需要指定一个数据类型为 Object List 的数据来作为选项列表的数据(如图 12)
250px|700px|reset

图 11
250px|700px|reset

图 12
- 当表达式对应的数据类型不为 Object List 时,则无法进行后续配置(如图 13)
250px|700px|reset

图 13
- 展示名称、选项值、说明:当配置好选项列表后,我们可以配置每一个数据项的展示名称,选项值与说明使用哪些数据。
- 以选项的展示名称为例,当我们点击下拉后,可以看到内部使用操作的出参中,上面所配置的数据列表项的所有字段(如图 14)
250px|700px|reset

图 14
- 我们可以选择一个我们实际需要展示以及使用的值,比如展示名称使用 name 字段,选项的值使用 open_department_id 字段(如图 15)
250px|700px|reset

图 15
- 对于选项使用的值,其选择的值为当前配置字段的参数
- 选项的说明为可选字段
- 当全部配置好后,我们可以在右侧模拟器进行调试
- 我们需要在模拟器中选择一个凭证(如图 16)
250px|700px|reset

图 16
- 若内部使用操作的入参监听了当前表单的其他字段,我们需要先填写参数 (如图 17)
250px|700px|reset

图 17
- 当都填写好后,我们点击配置的下拉选项,即可展示动态获取的数据(如图 18)
250px|700px|reset

图 18
- 当我们进行调试时,可以通过调试记录的入参信息中查看到,当前字段实际的入参为我们所选择部门的 open_department_id 值作为了参数(如图 19)
250px|700px|reset

图 19
- 完整操作如图 20
250px|700px|reset

图 20
发布
- 发布时,内部使用的操作默认在发布范围中,无法取消(如图 21)
250px|700px|reset

图 21
- 发布成功后,即可在集成流中使用
在集成流程中使用
在集成流中选择刚刚配置的操作,即可查看动态下拉的效果
250px|700px|reset
