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

Newer Version Available

This content describes an older version of this product. View Latest

Apex in AJAX

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

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

1<script src="/soap/ajax/56.0/connection.js" type="text/javascript"></script>
2<script src="/soap/ajax/56.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;