【Salesforce】{!SObject.Field}の値が設定されていないか、割り当てられていないため、フローでこの値にアクセスできませんでした。

【Salesforce】{!SObject.Field}の値が設定されていないか、割り当てられていないため、フローでこの値にアクセスできませんでした。

プロセルビルダーでエラーが発生したとのことで、調査を依頼されました。

標準の編集画面からレコードを保存した際にフローのエラーが発生し、保存が出来ないとのことです。

処理としては対象のレコードに参照先のレコードから項目値を移送するというものです。

デバッグログでエラーを確認すると、こんなメッセージが表示されていました。

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

日本語でメッセージが表示されていますね。

しかし、これだけだとよく分かりません。

値が設定されていないと書かれていますが、レコードの中身を見るとちゃんと設定されていました。

割り当てられていないということでアクセス権のことも考えましたが、システム管理者で実行してもエラーとなるので違いますね。

ぼんやりとフローの中身を見ていて、とあることに気が付きました。

エラーメッセージで原因とされている項目が参照先のレコードの検索の際に取得されていないのです。

もしやと思って検索処理にエラーの原因となっている項目を追加すると、解決することが出来ました。

エラーメッセージが異なりますが、Apexで言う「soql without querying the requested field」と同じですね。

 

毎度のように思うことではあるのですが、プロセスビルダーは便利なようで管理が大変なんですよね。

あまり考えずにどんどん追加していくと、エラーが発生する可能性がどんどんと上がっていきます。

自分でエラーの原因を見つけてくれるのであれば良いのですが、大抵は私のような下っ端に調査依頼が来るのです。。

 
 

2020.01.24 追記

コメントがあったので。

具体的には、検索処理のフローで項目を保存する変数を追加する形です。

レコードごと変数に保存しても出たと思います。

2 Responses to "【Salesforce】{!SObject.Field}の値が設定されていないか、割り当てられていないため、フローでこの値にアクセスできませんでした。"

  • 突然失礼します。
    Salesforceのフローで値の割当をしようとした際に、上述と同じエラーが発生しているのですが、
    >検索処理にエラーの原因となっている項目を追加する
    の具体的な操作を教えていただけないでしょうか。

    • >kanaさん
      遅くなって申し訳ありません。
      具体的には、フロー内の検索処理にて取得したレコードの項目を追加、となります。
      記事の方に追記したので、もし気が付いたらご確認ください。
      2年前の記事なので本当かどうかわかりませんが。。

      的外れなことを言っていたら申し訳ないです。

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です