フローの「割り当て」要素内の割り当てられる順序について
自動化の実行順序って大事だから…。
chirosuke
2023/11/07 10:50:01
フローの割り当て要素についてのSalesforceヘルプページ「フロー要素: 割り当て」では、
「各変数は、演算子と値の組み合わせによって変更されます。実行時に、指定した順に変数が割り当てられます。」と記載されています。
そのため、私は「1つの割り当て要素内で指定した順に実行される」と認識していました。
このように①②③の順で実行される認識でした。

しかし、先日、質問広場で「サポートへ問い合わせて、1つの割当要素内の実行順序は保証されない、と回答いただいた記憶があります。」との回答を見つけて、
「えっ⁉ヘルプに、”実行時に、指定した順に変数が割り当てられます。”って書いてあったよ!順序が保証されないってどういうこと⁉」と衝撃を受けました。
自分の理解力が足りなかったのかと、社内の仲間たちにも確認しましたが、自分と同じ認識でしたので、Salesforceサポートへ気持ちをぶつけて問い合わせてみました。
ヘルプに記載されている「実行時に、指定した順に変数が割り当てられます。」はどういう意味なのか確認すると、以下の回答をいただきました。
正直、納得(理解)はできていません…。
「ループの処理順で割り当てられるのは当然じゃないの?ヘルプページにわざわざ記載する内容かな?」とヘルプの文言の意味は理解はできませんでしたが、「1つの割り当て要素内の変数の割り当て順序の保証はされません」の結論は変わらないので、そういうものとして認識したいと思います。
そのため、↑の図のような設定ではなく、こうしないとダメということですね。

ちなみに、ワークフローのアクションについては、Salesforceヘルプ:ワークフローの考慮事項に「個々のアクションおよびアクションの種類が実行される順序は保証されません。」とありますので、今回の「割り当て要素」についても同様に記載されているページがないか、Salesforceサポートへ確認いたしましたが、公開情報はないと回答をいただきました。
Salesforceのヘルプのニホンゴ、ムズカシーネ🤷♂️
「各変数は、演算子と値の組み合わせによって変更されます。実行時に、指定した順に変数が割り当てられます。」と記載されています。
そのため、私は「1つの割り当て要素内で指定した順に実行される」と認識していました。
このように①②③の順で実行される認識でした。
しかし、先日、質問広場で「サポートへ問い合わせて、1つの割当要素内の実行順序は保証されない、と回答いただいた記憶があります。」との回答を見つけて、
「えっ⁉ヘルプに、”実行時に、指定した順に変数が割り当てられます。”って書いてあったよ!順序が保証されないってどういうこと⁉」と衝撃を受けました。
自分の理解力が足りなかったのかと、社内の仲間たちにも確認しましたが、自分と同じ認識でしたので、Salesforceサポートへ
結論(Salesforceサポートからの回答)
「1つの割り当て要素内の変数の割り当て順序の保証はされません」でした。
こちらは割り当て要素にて、変数に対し取得した複数の値を割り当てていきますが、変数へ格納される値の順番が取得時に指定した並び替え順で割り当てられるという意味になります。
(例)
①レコードの取得要素にて複数のレコードを取得(並び替え順を設定)
②①についてループを設定(並び替え順のとおりにループ)
③割り当て要素を追加し、特定の変数に②の順に値を割り当て
④割り当てられた順にその後の要素を実行
正直、納得(理解)はできていません…。
「ループの処理順で割り当てられるのは当然じゃないの?ヘルプページにわざわざ記載する内容かな?」とヘルプの文言の意味は理解はできませんでしたが、「1つの割り当て要素内の変数の割り当て順序の保証はされません」の結論は変わらないので、そういうものとして認識したいと思います。
そのため、↑の図のような設定ではなく、こうしないとダメということですね。
ちなみに、ワークフローのアクションについては、Salesforceヘルプ:ワークフローの考慮事項に「個々のアクションおよびアクションの種類が実行される順序は保証されません。」とありますので、今回の「割り当て要素」についても同様に記載されているページがないか、Salesforceサポートへ確認いたしましたが、公開情報はないと回答をいただきました。
さいごに
間違った認識で教えてしまった後輩たちよ、ごめんなさい。Salesforceのヘルプのニホンゴ、ムズカシーネ🤷♂️
コメント