1
0

Salesforceのトリガーフローにおける行動オブジェクトのStartDateTimeとEndDateTimeの問題と回避策

Last updated at Posted at 2024-07-22

前提条件

Salesforceのトリガーフローにて、行動オブジェクトのStartDateTime(開始)EndDateTime(終了)をフローエントリ条件式で使用するとエラーが発生します。

エラー例

以下の条件式を使用した場合:

BEGINS({!$Record.WhatId}, "001") && isChanged({!$Record.StartDateTime}) || isNew()

エラーメッセージ:項目StartDateTimeは存在しません。スペルを確認してください。
EndDateTimeを使用した場合も同様のエラーが発生します。

スクリーンショット 2024-07-22 14.22.42.png

サポートの回答

サポートへの問い合わせ結果:

・既知の問題(Known Issue)として認識されています。
・Issue : Event Fields StartDateTime and EndDateTime throw error in Flow entry criteria formula
・現在のステータス:「Working as Expected」
・解決予定:現時点では未定

回避方法

StartDateTimeとEndDateTimeを条件としてフローの動作を制御する方法としては以下2つとなります。

・エントリ条件に数式を使用せず、項目ごとにフィルターを設定する
・対象の項目を含む数式を設定した「Boolean」型をの数式リソースを [決定] 要素に配置

エントリ条件に数式を使用せず、項目ごとにフィルターを設定する

この方法でも回避自体は可能です。
しかし、このエントリ条件では、レコードが作成された際にフローが動きません。
数式以外のエントリ条件では、新規作成かどうかを判定することができないため、新規作成時と更新時両方でフローを動かす必要がある場合は、次の記載する方法で回避することになります。

スクリーンショット 2024-07-22 14.17.59.png

対象の項目を含む数式を設定した「Boolean」型の数式リソースを [決定] 要素に配置

エントリ条件に設定していた式を数式リソースに設定し、フローの決定要素で分岐させる方法です。

まずはじめに、エントリ条件に設定していた式を数式リソースに設定します。

スクリーンショット 2024-07-22 14.28.47.png

次に、決定要素内でエントリ条件用の数式リソースを使用して条件分岐を行います。

スクリーンショット 2024-07-22 14.50.00.png

そして、条件に当てはまる場合は必要な処理を追加、当てはまらない場合は終了とすれば、決定要素を使用してフローのエントリ条件のような設定を行うことができます。

スクリーンショット 2024-07-22 14.50.16.png

まとめ

Issueも一応あがってはいますが、ステータスはWorking as Expectedとなっているため、解消される予定は確認ができないようです。
解消されるという微かな希望を胸に、現状はこの記事のような回避方法を取るしかありません。
特に、新規レコード作成時にもフローを動作させたい場合は、2番目の方法(Boolean型の数式リソースを使用)を推奨します。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0