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

もうひとこと: コードについて

Visualforce カスタムアクションの背後には 2 つのコードオブジェクト (Apex クラス QuickOrderControllerVisualforce ページ QuickOrderPage) があります。

Apex クラスは、Visualforce ページのコントローラで、メソッドの @RemoteAction アノテーションを使用します。このアノテーションを使用すると、Visualforce ページは JavaScript 対応の方法でロジックをラップします。これは、Visualforce Remoting と呼ばれます。

Visualforce Remoting を使用すると、Apex と JavaScript 間を迅速かつ緊密に統合できます。この通信モデルは、従来の Visualforce/Apex MVC パラダイムの同期モデルと異なり、非同期で動作します。そのため、パラメータをコントローラに渡したら、DOM 操作を実行して、モバイルテンプレートやフレームワークを使用してページを作成する前に、レスポンスハンドラ関数から結果を取得し、追加のクライアント側ロジックを記述できます。

Visualforce Remoting は、Salesforce オブジェクトへのサーバ側の直接アクセスを簡素化し、迅速なプラットフォーム開発のための Apex ツール (SOQL, Apex メソッドなど) を使用できるため、Salesforce1 Platform のモバイル開発者に最適です。また、ビューステートを処理する必要がないため、ページのパフォーマンスが向上します。

Apex クラス QuickOrderController

このクラスは Visualforce Remoting を使用します。また、このクラスには、倉庫を検索して注文および品目を作成するために Visualforce ページによってコールされるロジックが含まれています。

静的クエリとバインド変数を使用して SOQL インジェクション攻撃を防止します。たとえば、\'%'+merchName+'%\' ではなく :queryName を使用します。詳細は、Salesforce ヘルプの「Apex 開発および Visualforce 開発のセキュリティのヒント」を参照してください。

メモ

次のコードスニペットに示すように、Apex コントローラには、取引先フィードの新しい注文に関するフィード項目を作成する insertQuickOrder メソッドもあります。フィード項目は、請求書にリンクするリンク投稿です。

Visualforce ページ QuickOrderPage

このページは、ユーザ入力を使用してコントローラをコールし、商品および倉庫情報をユーザに表示します。ユーザが注文を作成する場合、このページはコントローラをコールし、カスタマー取引先に関連付けられている注文を作成して品目を追加します。また、コードはページの最初で Salesforce モバイル設計テンプレートを使用して、ページのスタイル設定も行います。

また、QuickOrderPage は、Force.com Canvas SDK をコールし、パブリッシャーの [登録] ボタンを有効にして、パブリッシャーウィンドウを閉じます。

まず、SDK への参照を指定します。
次に、setValidForSubmit メソッドをコールして、パブリッシャーの [登録] ボタンを有効にします。
setValidForSubmit がコールされて、ユーザが [登録] をクリックすると、この subscribe メソッドが起動します。このメソッドは、JavaScript Remoting を使用して品目を挿入し (これにより、簡易注文が完了する)、フィード項目を取引先に投稿する最終的な JavaScript 関数を呼び出します。
最後に、Remoting メソッドからのコールバックが正常に返されたら、このメソッドはパブリッシャーウィンドウを閉じます。