即将登陆 Salesforce AppExchange

如何让用户在 Salesforce 屏幕 Flow(Screen Flow)中选择多个日期

Flow 的每个屏幕元素只提供一个日期字段。如果有人需要选九天,这就成了问题。下面是各种方案及其利弊。

发布于 2026 年 5 月 1 日 · 更新于 2026 年 10 月 21 日 · MultiDatePick

每位管理员迟早都会遇到这个问题。休假申请、空闲时间表、培训报名:用户需要选择几个不一定连续的日期,而 Flow 的标准日期组件只能采集一个。

各种变通办法,以及它们的痛点

方案做法代价
一个屏幕上放多个日期字段日期 1、日期 2、日期 3、日期 4……数量有上限、不美观,而且大多空着
用循环一次问一个“还要添加日期吗?”然后回到屏幕超过三个日期左右就很痛苦
一个自由文本字段用户以文本形式输入日期无法解析、无法用于报表、容易出错
只用开始和结束日期当作一个连续的范围处理只要日期不连续就是错的
日期的多选选项列表预先生成日期值很快过时,需要不断维护
多日期日历组件在一个屏幕上单击需要的每个日期返回一个集合,可直接循环

开始加结束日期的变通办法最常见,也最容易在不知不觉中出错。“我 3 号、4 号、11 号和 18 号要请假”变成了 3 号到 18 号,相当于默认缺勤十六天。数据看起来很整齐,但就是错的。

真正的解决办法:一个返回集合的屏幕组件

Flow 真正需要的,是一个让用户想选多少日期就选多少、然后交回一个集合的屏幕组件。有了它,Flow 的其余部分就很普通了:循环遍历集合,每个日期创建一条记录,完成。

Salesforce 屏幕 Flow(Screen Flow)休假申请的动画演示:用户在 MultiDatePick 日历上单击三天并提交,下一个 Flow 屏幕列出 Flow 收到的三个日期
一个休假申请 Flow:单击三天并提交,下一个屏幕就已经以集合形式拿到全部三天。

MultiDatePick 会根据您采集的内容返回多个输出:

输出包含内容API 名称
Selected DatesISO 日期组成的文本集合,可直接循环selectedDates
Date Ranges JSON合并后的范围,适用于连续日期应合并为一条记录的情况selectedDateRangesJson
Dates With Times JSON每个日期的开始和结束时间selectedDatesWithTimesJson
Successful Bookings Count、Conflict Dates哪些已保存,哪些有冲突bookingSuccessCount

把 JSON 变回记录

其中两个输出是 JSON,因为 Flow 没有“由多个含若干字段的对象组成的列表”这种原生类型。您不需要在公式里解析文本。安装包附带一个 Flow 操作 Parse Date Entries from JSON,它接收 JSON 并返回一个规范的集合,包含 From Date、To Date、Start Time 和 End Time。像其他集合一样循环遍历即可。

Salesforce 屏幕 Flow 中的多日期日历组件,用户可以一次选择多个日期
屏幕 Flow 中的多日期日历,返回一个 Flow 其余部分可以循环遍历的集合。

一个会浪费大家一小时的坑

设置 Config Name(配置名称),而不是复选框。这个组件有一长串开关属性,而在 Flow Builder 中,留空的复选框输入是“空”而不是 false。这些都可以跳过:在设置向导中构建日历,然后把该配置的名称填入 Config Name 属性。所有开关设置随即来自配置,少数仅限 Flow 的设置(Required、Show Inline、Output Date Ranges as JSON)保持关闭,除非您主动开启。只有在不用 Config Name、全部手动设置时,才需要在您关心的复选框上使用 $GlobalConstant.True 或 $GlobalConstant.False。
Salesforce Flow Builder 中的动画演示:打开一个屏幕,搜索 MultiDatePick,将 Resource Booking 组件拖到屏幕上,把 Config Name 设为设置向导中已保存的配置,单击“完成”并保存
把组件拖到屏幕上,设置 Config Name,保存。无需勾选任何复选框。

想让组件自己保存记录?把父记录的 Id 传入 Parent Record Id,它就会为每个日期创建一条子记录。留空则可以循环遍历输出,按您自己的方式创建记录。

构建之前先决定记录形状

同样选中的九个日期,可以变成九条记录;如果连续日期合并成范围,可以变成四条记录;也可以是一条父记录加子块。每种都适合不同的报表。请在构建 Flow 之前就决定,因为事后再改,除了编辑 Flow 还得迁移数据。

在您的下一个 Flow 中放一个真正的多日期选择器

在在线演示中单击选择日期,然后按照入门指南把组件添加到 Flow 屏幕上。

  • $20/用户/月,全部功能
  • 30 天免费试用,无需信用卡
  • 100% Salesforce 原生
  • 无需 Apex
  • 即将登陆 Salesforce AppExchange