画面フロー (Screen Flow) ガイド
あらゆる Salesforce 画面フローに MultiDatePick カレンダーを配置できます。コンポーネントを画面に置き、Config Name を設定すれば完了です。
Apex 不要プロパティは 1 つだけ: Config Name
設定は セットアップウィザード で一度作成するか、Config Library からインポートします。フローで設定するプロパティは 1 つだけで、残りはコンポーネントが読み込みます。
- 画面を開く
- MultiDatePick を検索
- Booking、Date、Date Time のいずれかをドラッグ
- 設定名(Config Name)
- 保存
チェックボックスはすべて設定から読み込まれます。 Config Name を設定すれば、Flow Builder でチェックボックスに触れる必要はありません。画面で入力したテキストや数値のプロパティは、設定より優先されます。
レコードに紐付けて保存する
Parent Record Id を、フローの対象となるレコード ({!recordId} やレコードの取得の結果など) にバインドします。コンポーネントは、その親に紐付けてレコードを保存します。Date と Date Time では、空欄にすると選択内容がフローに渡されます。
空のフローから作成する
Flow Builder で 5 分。デプロイは不要で、デバッグでテストできます。
[設定]、[フロー]、[新規フロー]、[画面フロー]、[作成]。
キャンバスに 画面 要素を追加します。
コンポーネント一覧で MultiDatePick を検索し、画面にドラッグします。
ウィザードで保存したとおりに設定名を入力します。レコードが親に属する場合は Parent Record Id をバインドします。
デバッグ をクリックし、日付や時間枠を選んで、レコードが作成されたことを確認します。それから 有効化 し、フローをレコードページ、アクションボタン、または Experience Cloud サイトに追加します。
フローが受け取るもの
Booking は予約を自分で保存します。Date と Date Time は選択内容をフローに渡すか、Parent Record Id が設定されていれば自分で保存します。
| コンポーネント | 出力 (Flow Builder でのラベル) | API 参照名 |
|---|---|---|
| Booking | Successful Bookings Count, Conflict Dates | bookingSuccessCount, bookingConflictDates |
| Date | Selected Dates, Date Ranges JSON | selectedDates, selectedDateRangesJson |
| Date Time | Dates With Times JSON | selectedDatesWithTimesJson |
Apex 不要: すぐに使えるフローアクション
Apex を書く必要はありません。Date や Date Time の JSON をレコードにするには、パッケージに付属する 3 つの部品を使います。Flow Builder では標準のアクションと同じように表示されます。
- Parse Date Entries from JSON
- エントリーをループ処理
- レコードの作成 (エントリーごとに 1 件)
アクションの中から検索します。Date Ranges JSON または Dates With Times JSON を渡します。日付のみか日付と時刻かは自動で判別されます。
クラス: MultiDatePickParser
アクションの戻り値。Apex 定義の変数に格納し、data をループ処理します。
data: ループ処理するエントリーtotalCount: 件数success、errorMessage: 決定要素用
1 件のエントリー。ループ変数として使い、レコードの作成で対応付けます。
fromDate、toDate: 範囲 (1 日なら同じ値)startTime、endTime: Date Time のみid: エントリー番号
Date Ranges JSON (Date)
{ "data": [
{ "id": 1, "fromDate": "2026-02-10", "toDate": "2026-02-12" },
{ "id": 2, "fromDate": "2026-02-15", "toDate": "2026-02-15" }
] }
Dates With Times JSON (Date Time)
{ "data": [
{ "id": 1, "fromDate": "2026-02-10", "toDate": "2026-02-10",
"startTime": "09:00", "endTime": "17:00" }
] }
付録: プロパティを手動で対応付ける
Config Name を使わない場合のみ。Flow Builder ではプロパティがアルファベット順に並び、Conflict Behavior(競合の動作) のような選択リストもただのテキストボックスとして表示されます。Config Name のほうが簡単なのはこのためです。Booking の画面では、次を設定します:
| Flow Builder でのラベル | 入力する内容 | API 参照名 |
|---|---|---|
| Resource Object API Name | 予約する対象のオブジェクト (例: 会議室オブジェクト) | resourceObjectApiName |
| Resource Name Field | 各リソースの名前として表示する項目 | resourceNameField |
| 定員項目(Capacity Field) | 1 つのリソースが同時に受け付ける予約数。時間枠には 3/5 のように表示され、満員になると締め切られます。 | capacityField |
| Booking Object API Name | 各予約の保存先オブジェクト | resourceBookingObject |
| Booking Date Field | 予約オブジェクトの日付項目 | bookingDateField |
| Booking Start Time Field, Booking End Time Field | 予約オブジェクトの時刻項目 | bookingStartTimeField, bookingEndTimeField |
| Booking Resource Field | 予約からリソースへの参照項目 | bookingResourceField |
| 競合の動作(Conflict Behavior) | block (既定)、skip、allow のいずれかを入力 | conflictBehavior |
| Parent Record Id | 予約が属するレコード (例: {!recordId}) | recordId |
| Parent Record Relationship Field | 予約からその親への参照項目 | relationshipFieldApiName |
この場合、チェックボックスは自分で設定します。 Config Name を使わない場合、すべてのチェックボックス (Required、Show Inline、Output Date Ranges as JSON など) は画面でチェックしたとおりになります。
作る前に見てみる
ログイン不要のライブデモを試すか、MultiDatePick が Salesforce AppExchange に登場した日に通知を受け取りましょう。
フローで行き詰まったら Support@MultiDatePick.com まで