tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:RemoteActionの戻り値の使用可能な範囲を確認してみました

@RemoteActionの戻り値は一度変数にセットしたら後は自由に使用できると思っていたのですが、実際に使用してみたときに使用できる箇所と、できない箇所があったので、どこまでが使用範囲かきちんと確認してみました。


検証用のコードは次のとおりです。


検証時のブラウザはFireFoxとなります。ボタンをクリックするとデバッグログが出力されます。処理の最後にアラートを表示するようにしているのでこれで途中で処理が止まっていないことを確認しています。


検証結果は次のようになりました。

f:id:tyoshikawa1106:20131213202510p:plain


@RemoteAction内で変数「checkValue」にセットした取引先名が、@RemoteAction外ではセット前に戻ってしまいました。


一度セットした値がなぜ戻ってしまうのか不思議だったのですが、デバッグログの出力結果を見ていて原因を理解できました。JSの処理は@RemoteActionの処理が終わるまで待機されると思っていたのですが、そういうわけでは無いみたいで@RemoteAction内の処理は最後に実行されています。これが原因でセット前に戻るように見えただけでした。


@RemoteActionを使用するときは、@RemoteActionの処理が最後に実行されるといことに注意が必要みたいです。

tyoshikawa1106/Apex_CheckRemoteActionScope · GitHub