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

納入先請求書の例の模擬体験

このセクションで示すサンプルアプリケーションには、Apex と組み合わされた従来の Salesforce 機能が含まれています。このアプリケーションでは、一般的なイディオムと共に、Apex の構文上および意味上の多くの機能が例示されます。

納入先請求書サンプルにはカスタムオブジェクトが必要です。カスタムオブジェクトを自分で作成するか、オブジェクトと Apex コードを未管理パッケージとして Salesforce AppExchange からダウンロードできます。組織でサンプルアセットを取得するには、Apex Tutorials パッケージをインストールします。このパッケージには、Apex クイックスタートのサンプルコードとオブジェクトも含まれています。

メモ

シナリオ

このサンプルアプリケーションでは、納入先請求書、または注文を新規作成し、品目を請求書に追加します。納入費用を含む注文金額合計は、請求書に追加または削除された品目に基づいて自動的に計算され、更新されます。

データおよびコードモデル

このサンプルアプリケーションでは、Item と Shipping_invoice の新しい 2 つのオブジェクトを使用します。

次のように想定します。
  • Item A は shipping_invoice1 および shipping_invoice2 のいずれの注文にも含めることができません。2 人の顧客は同じ (物理的) 商品を取得できません。
  • 消費税率は 9.25% です。
  • 輸送料は 1 ポンドあたり 75 セントです。
  • 注文が $100 を超えた場合、輸送料の割引が適用されます (輸送量は無料)。

Item カスタムオブジェクトの項目には、次のものがあります。

名前 説明
Name String 品目の名前
Price Currency 品目の価格
Quantity Number 注文に含まれる品目数
Weight Number 品目の重量。輸送費用の計算に使用します。
Shipping_invoice Master-Detail (shipping_invoice) この品目が関連付けられた注文

Shipping_invoice カスタムオブジェクトの項目は次のとおりです。

名前 説明
Name String 納入先請求書/注文の名前
Subtotal Currency 小計
GrandTotal Currency 消費税、輸送料を含む合計金額
Shipping Currency 輸送料として請求する金額 (1 ポンドあたり $0.75 と想定)
ShippingDiscount Currency 小計金額が $100 に達した場合に 1 回のみ適用
Tax Currency 消費税金額 (9.25% と想定)
TotalWeight Number すべての品目の総重量

このアプリケーションのすべての Apex がトリガーに含まれます。このアプリケーションには、次のトリガーがあります。

オブジェクト トリガー名 実行タイミング 説明
Item Calculate 挿入後、更新後、削除後 納入先請求書を更新し、合計および輸送料を計算します。
Shipping_invoice ShippingDiscount 更新後 納入先請求書を更新し、送料割引があるかどうかを計算します。
次に、��ーザーアクションとトリガーが実行されるタイミングの一般的な流れを示します。
ショッピングカートアプリケーションのユーザーアクションおよびトリガーの流れ ショッピングカートアプリケーションのユーザーアクションおよびトリガーの流れ
  1. ユーザーが [注文] | [新規] をクリックして納入先請求書の名前を付け、[保存] をクリックします。
  2. ユーザーが [新規項目] をクリックし、情報を入力して [保存] をクリックします。
  3. Calculate トリガーが実行されます。Calculate トリガーの一部として、納入先請求書が更新されます。
  4. ShippingDiscount トリガーが実行されます。
  5. 請求書の品目を追加、削除、変更できます。

納入先請求書のコード例にトリガーおよびテストクラスが表示されます。このコードのコメントは、機能について説明しています。

納入先請求書アプリケーションのテスト

パッケージの一部としてアプリケーションを追加するには、単体テストでコードの 75% をカバーする必要があります。そのため、納入先請求書アプリケーションの一部は、トリガーのテストに使用するクラスとなります。

テストクラスは、次のアクションが正常に行われたことを確認します。
  • 品目の挿入
  • 品目の更新
  • 品目の削除
  • 送料割引の適用
  • 不正入力のネガティブテスト