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

Apex in AJAX

AJAX Toolkit には、匿名ブロックや webservice 公開メソッドを使用して Apex を起動するためのサポートが組み込まれています。

匿名ブロックや webservice 公開メソッドを使用して Apex を起動するには、AJAX コードに次の行を含めます。

1<script src="/soap/ajax/45.0/connection.js" type="text/javascript"></script>
2<script src="/soap/ajax/45.0/apex.js" type="text/javascript"></script>

AJAX ボタンの場合、これらを別の形式で使用します。

メモ

Apex を起動するには、次の 2 つのメソッドのいずれかを使用します。
  • sforce.apex.executeAnonymous (script) を使用して匿名で実行します。このメソッドは API の結果型と似た結果を返しますが、JavaScript 構造として返します。
  • WSDL クラスを使用します。たとえば、次の Apex クラスをコールします。
    1global class myClass { 
    2  webservice static Id makeContact(String lastName, Account a) { 
    3        Contact c = new Contact(LastName = lastName, AccountId = a.Id); 
    4        return c.id; 
    5    }
    6}

    次の JavaScript コードを使用します。

    1var account = sforce.sObject("Account");
    2var id = sforce.apex.execute("myClass","makeContact",
    3                             {lastName:"Smith",
    4                              a:account});

    execute メソッドはプリミティブデータ型、sObjects、プリミティブデータ型または sObjects のリストを使用します。

    パラメータを指定せずに webservice メソッドをコールするには、sforce.apex.execute の 3 つ目のパラメータに {} を使用します。たとえば、次の Apex クラスをコールするとします。

    1global class myClass{ 
    2   webservice static String getContextUserName() {
    3        return UserInfo.getFirstName();
    4   }
    5}

    次の JavaScript コードを使用します。

    1var contextUser = sforce.apex.execute("myClass", "getContextUserName", {});

    組織内で名前空間が定義されている場合、クラスを起動するときにその名前空間を JavaScript コードに含める必要があります。たとえば、上記のクラスをコールするには、JavaScript を次のように書き換えます。

    1var contextUser = sforce.apex.execute("myNamespace.myClass", "getContextUserName", {});

    組織に名前空間があるかどうかを確認するには、Salesforce 組織にログインして、[設定] から、[クイック検索] ボックスに「パッケージ」と入力し、[パッケージ] を選択します。名前空間が定義されている場合、[開発者設定] の下に表示されます。

    メモ

    どちらの例も、メソッドの戻り値を表すネイティブな JavaScript 値となります。

デバッグ���報を含むポップアップウィンドウを表示するには、次の行を使用します。

1sforce.debug.trace=true;