1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

フローでエラー発生:すべての項目を自動的に保存を信じるな

Posted at

はじめに

またフローについてのお話です。

何回見ても間違いなく取得できているはずの項目なのに、タイトルの通り

XXX の値が設定されていないか、割り当てられていないため、フローでこの値にアクセスできませんでした。

とエラーが発生しました。

ネットで調べると出てくるのが

Contact.Account.Nameを参照していたが、そもそもAccountがnullだったせいみたい!

のようなケースですが、今回はそういうわけでもなかったので解決策にはならず。

正しい対応かわかりませんが、とりあえず対処できたのでメモメモ。

前提

例として、フローのトリガーとなるオブジェクトは取引先
フローの処理の内容を

  1. トリガーレコードに紐づく取引先責任者のうち、条件に一致するものを1件だけ取得
  2. フロー内の数式にて1.の項目値を参照
  3. トリガーレコードの値を、2.の数式で更新する

ような形でイメージしてください。

エラーの特定

ちなみに、タイトルのエラーメッセージですが、画面上には表示されませんでした。
画面上だと

このフローで未対応の障害が発生しました。
フローを処理中に未対応の障害が発生しました。詳細は、組織のシステム管理者にお問い合わせください。

の表示でした。

具体的にどんなエラーが出てたのかは

  1. 開発者コンソールを開く
  2. 実際にエラーになるような更新処理を実行
  3. 開発者コンソールのLogsに新しいログが出力されているので、それを開く
  4. 下の方で実際のエラーメッセージが表示されているので、確認

という流れで見れます。

原因と対応方法

原因としてはメッセージの通り、対象の項目を取得できていないことのようでした。

「レコードの取得」に設定されているレコードデータの保存方法「すべての項目を自動的に保存」 から 「項目を選択して後は Salesforce に任せる」 に変更し、対象の項目を設定することでエラーが出なくなります。

推測

おそらく、表記としては「すべての項目を自動的に保存」とありますが、実際には「フローの内部で参照されているすべての項目を自動的に保存」なんじゃないかなぁと思います。

そして、その検査時に数式の内部は見てないんじゃないかなと。

おわりに

上記を踏まえると、数式内部で利用する項目に関しては一つ一つ取得のコンポーネントに設定が必要ということになります。

め、面倒くさい・・。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?