22価格台帳

この章の内容は次のとおりです。

価格台帳を使用して、価格を含む製品リストを作成し、それを契約、アカウント、商談などの他の営業アプリケーションで使用できます。

組織が価格台帳を使用する方法をいくつか示します。

  • 価格設定の柔軟性を高めるために、価格台帳をアカウントおよび商談と統合します。詳細は、この章の「商談およびアカウントの価格台帳」の項を参照してください。

  • 契約販売契約におけるデフォルトの定価を設定します。詳細は、「販売契約明細の作成」のトピックを参照してください。

価格台帳を使用する前に

価格台帳の使用を開始する前に、製品グループに含まれる価格台帳製品を使用して販売カタログを設定します。詳細は、販売製品および販売カタログに関するトピックを参照してください。

価格台帳のステータス

価格台帳には、「ドラフト」や「アクティブ」などのステータスがあります。価格台帳のステータスによって、価格台帳に対して実行できる処理が決まります。

次に、価格台帳のステータスと、特定のステータスの価格台帳の動作に関する詳細を示します。

ステータス 説明 詳細

ドラフト

まだ使用できない価格台帳を示します。

  • 「ドラフト」ステータスの価格台帳のみ削除できます。

  • 「アクティブ」ステータスに移行できます。

アクティブ

使用可能な価格台帳を示します。

  • 「失効済」ステータスに更新できます。失効済の価格台帳は削除できません。

  • 「ドラフト」ステータスに更新できません。

失効済

使用できなくなった価格台帳を示します。

  • 「ドラフト」ステータスに移行できないため、削除できません。

価格台帳のステータスについて可能な遷移を次に示します。価格台帳は、最初はドラフト・ステータスで、次にアクティブに移行して、最後に失効済になります。

価格台帳のステータス遷移

価格台帳を使用して、価格を含む製品リストを作成し、それを契約、アカウント、商談などの他の営業アプリケーションで使用できます。

価格台帳の作成

価格台帳の作成方法を次に示します。

  1. 「営業」「価格台帳」に移動します。

  2. 「価格台帳」ページで、「価格台帳の作成」をクリックします。

  3. 「価格台帳の作成」ページに、価格台帳の詳細を入力します。

    • 名前: 価格台帳の一意の名前を入力します。

    • 通貨: 実装済通貨のリストから通貨を選択します。最初は、ユーザー・プリファレンスで設定した通貨がデフォルト通貨として使用されます。

    • 摘要: オプションで、価格台帳の摘要を入力します。

  4. 「保存して続行」をクリックします。または、「保存」をクリックして価格台帳を保存し、後で編集できるようにします。

    新しい価格台帳のデフォルト・ステータスは「ドラフト」です。

  5. 「価格台帳の編集」ページで、製品を追加します。単一の製品明細を追加するには、「追加」をクリックします。複数の製品明細を追加するには、「一括追加」をクリックします。

  6. 製品を検索して選択します。検索ページで「OK」をクリックして編集ページに戻ります。

  7. 各製品明細について、次の各フィールドに値を入力します。

    • 単位: 単位を選択します。

    • 定価: 価格を入力します。

  8. 「保存」または「保存して閉じる」をクリックして、変更を保存します。

  9. 価格台帳をアクティブにして使用する準備ができたら、ステータスを「アクティブ」に変更します。価格台帳を「アクティブ」ステータスで保存した後は、名前を更新できません。

価格台帳の編集

価格台帳は編集できますが、すべてのフィールドをアクティブなときに編集できるわけではありません。各ステータスで編集可能なフィールドの詳細は、このトピックの「価格台帳のステータス」の項を参照してください。

価格台帳を編集するには:

  1. 「営業」「価格台帳」に移動します。

  2. 「価格台帳」ランディング・ページで、価格台帳の名前をクリックします。

  3. 「価格台帳の編集」ページで、必要に応じて価格台帳を編集します。

価格台帳のコピー

価格台帳をコピーして、新しい価格台帳の作成に必要な時間を節約できます。価格台帳は、どのようなステータスでもコピーできます。

価格台帳をコピーする方法を次に示します。

  1. 「営業」「価格台帳」に移動します。

  2. リスト内の価格台帳の名前をクリックします。

  3. 編集ページの「アクション」メニューから、「価格台帳のコピー」を選択します。

  4. ダイアログ・ボックスで、価格台帳の新しい一意の名前を入力し、「保存して続行」をクリックします。

  5. 必要に応じて価格台帳を編集します。

価格台帳の削除

価格台帳を削除すると、その価格台帳は価格台帳のリストから削除され、消費アプリケーションで使用できなくなります。削除できるのは「ドラフト」ステータスの価格台帳のみであることに注意してください。

価格台帳を削除するには:

  1. 「営業」「価格台帳」に移動します。

  2. 価格台帳の名前をクリックします。

  3. 「アクション」メニューから「価格台帳の削除」を選択します。

商談およびアカウントの価格台帳

アカウントおよび商談への価格台帳の統合の概要

価格台帳を商談およびアカウントと統合して、営業担当が適切な価格を適切なタイミングで提示できるようにします。価格台帳を使用して価格設定機能を合理化するいくつかの方法を次に示します。

  • 顧客との特定の契約に従って商談製品の価格を設定します。これを行うには、価格台帳をアカウントに関連付け、アカウントからそのアカウントに関連付けられた商談に価格台帳をデフォルト設定します。

  • Groovyスクリプトを使用して、国、チャネル、パートナなどの様々な商談属性に基づいて適切な価格台帳をデフォルト設定します。

  • Groovyスクリプトを使用して、価格表の品目が変更されたときに価格を更新します。

  • カスタム価格台帳フィールドをアカウントおよび商談に追加します。

この項では、アカウントのデフォルト価格を設定し、関連するUI変更を行う方法について説明します。

前提条件として、価格台帳アプリケーションで価格台帳を作成します。手順は、この章の「価格台帳の使用」の項を参照してください。

この項では、次のタスクについて説明します。

  1. アカウントおよび商談のカスタム価格台帳フィールドを作成します。

  2. カスタム・フィールドをアカウント・ページと商談ページに追加します。

  3. Groovyトリガーを作成して、デフォルトの価格台帳を設定し、価格を取得します。

  4. Groovyスクリプトを作成して、変更された可能性のある更新された価格を検索します。

  5. 商談の価格再設定処理を「商談の編集」ページに追加します。

  6. 提供されている営業担当ロールをコピーし、価格台帳の管理権限を新しいカスタム・ロールに追加します。

注意: サンドボックスでこれらの変更を行い、会社のプロセスに従って公開します。

アカウントおよび商談の価格台帳フィールドの作成

営業担当が「アカウントの編集」および「商談の編集」ページで価格台帳を選択するには、「価格台帳」というカスタム・フィールドを作成する必要があります。

カスタム・フィールドの作成方法を次に示します。

  1. 「構成」「アプリケーション・コンポーザ」に移動します。

  2. 「標準オブジェクト」「アカウント」「フィールド」に移動します。商談の場合は、「標準オブジェクト」「商談」「フィールド」に移動します。

  3. 「カスタム」タブが表示されていることを確認します。

  4. 「カスタム・フィールドの作成」アイコンをクリックします。

  5. 「フィールド・タイプの選択」ダイアログ・ウィンドウで「選択リスト(動的)」を選択します。

  6. 「OK」をクリックします。

  7. 「動的選択リストの作成: 基本情報」ページの「表示ラベル」フィールドに、Price Listと入力します。

  8. 「名前」フィールド内をクリックすると、内部名が自動的に移入されます。この名前は今すぐ変更できますが、新しいフィールドを保存した後は変更できません。

  9. 「更新可能」が選択され、「必須」が選択解除されていることを確認します。

  10. 「次」をクリックします。

  11. 「関連オブジェクト」フィールドで、「価格台帳ヘッダー」を選択します。

  12. 「リスト選択表示値」フィールドで「名前」を選択します。

  13. 「発行」をクリックします。

  14. 次に、「アカウントの編集」および「商談の編集」ページにフィールドを追加します。

「アカウント」および「商談」ページへの価格台帳フィールドの追加

新しい価格台帳フィールドを作成したので、「アカウントの編集」および「商談の編集」ページにフィールドを追加する必要があります。

  1. アプリケーション・コンポーザで、「標準オブジェクト」「アカウント」「ページ」に移動します。商談の場合は、「標準オブジェクト」「商談」「ページ」に移動します。

  2. 「アプリケーション・ページ」タブが表示されていることを確認します。

  3. 「アカウント: ページ」または「商談: ページ」の「詳細ページ・レイアウト」リージョンで、標準レイアウトを複製し、結果レイアウトを編集します。

    詳細ステップは、アカウントと商談で異なります。

    アカウントの詳細ステップ:

    1. 「サブタブ」リージョンで、「プロファイル」サブタブを編集します。

    2. 「要約サブタブの編集」リージョンを編集します。

    商談の詳細ステップ:

    1. 「詳細レイアウト」ページで、「サブタブの編集: 要約」リージョンを編集します。

  4. 「使用可能なフィールド」ウィンドウで、カスタム価格台帳フィールドを選択して「選択したフィールド」リストに移動します。

  5. 「保存して閉じる」をクリックします。

  6. 「完了」をクリックします。

デフォルトの価格台帳の設定および価格の取得

Groovyスクリプトを使用して、商談にデフォルトの価格台帳を設定し、最新の価格を価格台帳に取得できます。デフォルトの価格台帳は、通貨、顧客地理、顧客アカウントなどの様々な商談属性に基づいて設定できます。

この手順では、商談にデフォルトのアカウント価格台帳を設定する方法について説明します。アカウント価格台帳が見つからない場合は、商談にデフォルトの企業価格台帳も設定されます。

  1. アクティブなサンドボックスで作業していることを確認します。

  2. アプリケーション・コンポーザで、「標準オブジェクト」「商談」「サーバー・スクリプト」に移動します。

  3. 「トリガー」タブを選択します。

  4. 「新規トリガーの追加」アイコンを選択します。

  5. 「トリガー」フィールドで、「データベースでの挿入の前」を選択します。

  6. 「トリガー名」フィールドにSetPriceListと入力します。

  7. 「トリガー定義」リージョンに、次のスクリプトを入力します。

    //Fetch the Id of Account Pricebook
    def pricelistId = Organization?.PriceList_Obj_c?.PricebookId;
    
    // Set the Id of Account PriceBook to Opty
      setAttribute('PriceList_Id_c', pricelistId);
  8. 「保存して閉じる」をクリックします。

  9. 変更をテストし、サンドボックスを公開します。

製品明細の価格の更新

Groovyスクリプトを使用して、選択した価格台帳から製品の定価を取得し、製品明細の「金額」フィールドにその値をスタンプすることもできます。

  1. アクティブなサンドボックスで作業していることを確認します。

  2. アプリケーション・コンポーザで、「標準オブジェクト」「商談」「サーバー・スクリプト」に移動します。

  3. 「トリガー」タブを選択します。

  4. 「新規トリガーの追加」アイコンを選択します。

  5. 「トリガー」フィールドで、「データベースでの挿入の前」を選択します。

  6. 「トリガー名」フィールドにSetPriceListと入力します。

  7. 「トリガー定義」リージョンに、次のスクリプトを入力します。

    //Get the ID of the item:
    def var_InventoryItemId = nvl(getAttribute('InventoryItemId'), (long) 0) 
    //Get the ID of the price book (this is useful if you have multiple price books):
    def var_DCL_PriceBook = Opportunity?.PriceBook_Id_c // 
    //PriceBook is a dynamic choice list on the opportunity.
    //Make a view of the PriceBookItem object, since that's where the prices for items are stored:
    def view_PriceBookItem = newView('PriceBookItem')
    def view_Criteria = newViewCriteria(view_PriceBookItem)
    def view_criteria_row = view_Criteria.createRow()
    
    //Define the first sort criteria. Basically, find all records in PriceBookItem that match the ID of the InventoryItemId on revenue.
    def view_condition = view_criteria_row.ensureCriteriaItem('InvItemId')
    view_condition.setOperator('=')
    view_condition.setValue(var_InventoryItemId)
    
    //Define the second sort criteria. If there are multiple price books that contain the same item with different prices, get the price of the item corresponding to the price book selected in the dynamic choice list on the opportunity.
    def view_condition_1 = view_criteria_row.ensureCriteriaItem('PricebookId')
    view_condition_1.setOperator('=')
    view_condition_1.setValue(var_DCL_PriceBook)
    
    //Execute the sort and query the records:
    view_Criteria.insertRow(view_criteria_row)
    view_PriceBookItem.appendViewCriteria(view_Criteria)
    view_PriceBookItem.setMaxFetchSize(1400) //1,400 is the number of records in the system; change this number according to your system records.
    view_PriceBookItem.executeQuery()
    
    def var_price // This is a variable that will hold the price from PriceBookItem
    while(view_PriceBookItem.hasNext()){
    def var_Row = view_PriceBookItem.next()
    
    //Get the price from PriceBookItem for the item you want:
    var_price = var_Row.getAttribute('ListPrice') 
    }
    //Assign the price to the revenue field UnitPrice:
    setAttribute('UnitPrice',var_price) 
  8. 「保存して閉じる」をクリックします。

  9. 変更をテストし、サンドボックスを公開します。

「商談の編集」ページへの価格再設定処理の追加

営業担当が更新された価格を取得するために使用できる処理を「商談の編集」ページに追加します。

  1. アプリケーション・コンポーザで、「標準オブジェクト」「商談」「処理およびリンク」に移動します。

  2. 「作成」アイコンをクリックします。

  3. 「表示ラベル」フィールドに、Reprice Opportunityと入力します。

  4. 「名前」フィールドをクリックすると、内部名が自動的に移入されます。

  5. 「タイプ」フィールドで、「処理」が選択されていることを確認します。

  6. 「スクリプト」リージョンで、「新規」アイコンをクリックします。

  7. 「機能名」フィールドに、RepriceOptyと入力します。

  8. 「関数本体」リージョンに、次のスクリプトを入力します。

    def revenueItems = ChildRevenue
    while (revenueItems.hasNext()) {
    def revenueLine = revenueItems.next()
    def itemid= nvl(revenueLine.InventoryItemId, 0)
    def invorgid = nvl (revenueLine.InventoryOrgId, 0)
    def uom = nvl (revenueLine.UOMCode, null)
    def pricebook = nvl (PriceList_Obj_c, null)
    if (pricebook == null)
    return
    def priceBookId = pricebook?.getAttribute("PricebookId")
    def itemIterator = pricebook.getAttribute("PriceBookItem");
    while (itemIterator.hasNext())
    {
    def itemrow = itemIterator.next()
    if (itemrow.InvItemId == itemid ) {
    println ("row "+itemrow.InvItemId)
    revenueLine.UnitPrice=itemrow.ListPrice
    }
    }
    }
  9. 「保存して閉じる」をクリックします。

  10. 「商談: 処理およびリンク」ページに戻り、「保存」をクリックします。

  11. 商談詳細ページに処理を追加します。「商談」ページに移動します。

  12. 「アプリケーション・ページ」タブが選択されていることを確認します。

  13. 「詳細ページ・レイアウト」リージョンで、デフォルト・レイアウトをコピーして編集します。

  14. ページの右上の「アクション」ドロップダウン・リストの横にある編集アイコンをクリックします。

  15. 「ボタンおよび処理」ページで、作成した処理を検索し、「使用可能な処理」シャトル領域から「選択した処理」シャトル領域に移動します。

  16. 「保存して閉じる」をクリックします。

  17. 「完了」をクリックします。

新規営業担当ロールの作成および価格台帳権限の追加

営業担当が商談の価格台帳にアクセスするには、付与するジョブ・ロールに価格台帳の管理権限が必要です。

ステップの概要

新しいロールを設定してユーザーに割り当てるには、次の3つのステップを実行します。

  1. 提供されている営業担当ロールをコピーします。

  2. 新しいカスタム営業担当ロールを編集して、価格台帳の管理権限を追加します。

  3. 商談の価格台帳へのアクセス権が必要なすべてのユーザーに、新しい営業担当ロールを割り当てます。

これらのタスクを実行するには、ITセキュリティ・マネージャ・ジョブ・ロールが必要です。

営業担当ロールのコピー

最初に、提供されている営業担当ロールをコピーします。

  1. 「ツール」「セキュリティ・コンソール」に移動します。

  2. セキュリティ・コンソールの「ロール」タブで、営業担当ジョブ・ロール(ORA_ZBS_SALES_REPRESENTATIVE_JOB)を検索します。

  3. 検索結果でロールを選択します。

  4. 検索結果で、選択したロールの下矢印をクリックして、「ロールのコピー」を選択します。

  5. 「コピー・オプション」ダイアログ・ボックスで、「最上位ロールのコピー」オプションを選択します。

  6. 「ロールのコピー」をクリックします。

  7. 「ロールのコピー: 基本情報」ページで、必要に応じて、「ロール名」「ロール・コード」、および「摘要」の値をレビューおよび編集します。

  8. 「要約」トレイン・ストップをクリックします。

  9. 「送信してクローズ」をクリックし、OKをクリックして確認メッセージを閉じます。

  10. 「管理」タブに移動します。

  11. 「ロール・コピー・ステータス」サブタブをクリックして、コピーの進捗を監視します。完了後、コピーしたロールを編集します。

ロールの編集および割当

次に、新しいロールを編集して価格台帳の管理権限を追加し、そのロールをユーザーに割り当てます。

  1. 「ロール」タブに移動します。

  2. カスタム・ロールを検索して選択します。

  3. 検索結果で、選択したロールの下矢印をクリックして、「ロールの編集」を選択します。

  4. 「ロールの編集: 基本情報」ページで、必要に応じてロール名と説明を編集します。ロール・コードは編集できません。

  5. 「次」をクリックします。

  6. 「ロールの編集: 機能セキュリティ・ポリシー」ページで、コピーしたロールに価格台帳の管理権限を追加します。

    1. 「機能セキュリティ・ポリシーの追加」をクリックします。

    2. 「機能セキュリティ・ポリシーの追加」ダイアログ・ボックスで、価格台帳の管理権限を検索して選択します。

    3. 「ロールに権限追加」をクリックします。

    4. 「機能セキュリティ・ポリシーの追加」ダイアログ・ボックスを閉じます。

    5. 「ロールの編集: 機能セキュリティ・ポリシー」ページで、権限のリストの最後までスクロールして、追加した新しい権限を表示します。

    6. 「次」をクリックします。

  7. 「要約」トレイン・ストップをクリックし、新しい権限がカスタム・ロールに追加されたことを確認します。

  8. 「送信してクローズ」をクリックし、OKをクリックして確認メッセージを閉じます。

ロール・プロビジョニングを使用した営業担当へのロールの割当

ロールを割り当てるためのいくつかの異なるオプションがあります。

  • すべての営業担当がカスタム・ロールを取得できるようにする場合は、営業担当リソース・ロールの既存のプロビジョニング・ルールを編集してカスタム・ロールをプロビジョニングします。手順は、「営業ユーザーにジョブ・ロールを自動的にプロビジョニングするルールの作成」を参照してください。

  • ただし、特定のユーザー・グループのみが新しいカスタム・ロールを取得できるようにする場合は、新しいリソース・ロールとそのリソース・ロールの新しいプロビジョニング・ルールを作成し、インポート/エクスポートを使用して特定のユーザーに割り当てられたリソース・ロールを変更します。詳細は、「追加のリソース・ロールの作成」のトピックを参照してください。

  • 少数のユーザーにのみロールを割り当てる場合は、「ユーザーの編集」ページで手動で実行できます。個々のユーザーのリソース・ロールを変更する例は、「ジョブ割当が変更されたユーザーのリソース・ロールの変更」のトピックを参照してください。