この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

名前空間および JavaScript Remoting

$RemoteAction グローバルを使用して、リモートアクションの正しい名前空間 (存在する場合) を自動的に解決できます。これにより、パッケージで提供されるメソッドに対してリモートコールを実行するページの場合は特に名前空間の作業が容易になります。
この機能を使用するには、JavaScript Remoting を明示的に呼び出す必要があります。これを実行するパターンは次のとおりです。
1Visualforce.remoting.Manager.invokeAction(
2    'fully_qualified_remote_action', 
3     invocation_parameters
4);

完全修飾リモートアクションは、namespace[.BaseClass][.ContainingClass].ConcreteClass.Method のように、名前空間、ベースクラスなどを含むリモートアクションメソッドへの完全なパスを表す文字列です。名前空間を自動的に解決するには、たとえば、{!$RemoteAction.MyController.getAccount} のように、式に $RemoteAction を使用します。

呼び出しパラメータは、リモートメソッドの呼び出しの実行に使用される引��であり、標準リモートコールを行うために使用される引数と同じです。
  • @RemoteAction メソッドに送信するためのパラメータ (ある場合)。
  • 返される結果を処理するコールバック関数。
  • 呼び出しに関する設定詳細 (ある場合)。
たとえば、次のような取引先を取得するリモート呼び出しを定義するとします。
1<script type="text/javascript">
2function getRemoteAccount() {
3    var accountName = document.getElementById('acctSearch').value;
4
5    Visualforce.remoting.Manager.invokeAction(
6        '{!$RemoteAction.MyController.getAccount}', 
7        accountName, 
8        function(result, event){
9            if (event.status) {
10                document.getElementById('acctId').innerHTML = result.Id
11                document.getElementById('acctName').innerHTML = result.Name;
12            } else if (event.type === 'exception') {
13                document.getElementById("responseErrors").innerHTML = event.message;
14            } else {
15                document.getElementById("responseErrors").innerHTML = event.message;
16            }
17        }, 
18        {escape: true}
19    );
20}
21</script>
この JavaScript Remoting コールでは、コントローラが定義されている名前空間、自分の名前空間内にあるか、インストールされたパッケージが提供する名前空間内にあるなどの詳細を把握している必要がありません。また、組織に定義済みの名前空間がない状況にも対応します。

invokeAction のコール時に発生したエラーは JavaScript コンソールでのみレポートされます。たとえば、$RemoteAction で複数の名前空間に一致する @RemoteAction メソッドが見つかった場合、最初に一致したメソッドを返し、JavaScript コンソールに警告を記録します。一致するコントローラまたはアクションが見つからない場合は、そのコールはエラーを表示することなく失敗し、エラーは JavaScript コンソールに記録されます。

メモ