商談の価格台帳の有効化
アカウントおよび商談ベースの価格設定をCX Sales Mobileに導入することにより、営業担当の価格設定に関する顧客とのディスカッションのスピードと精度を向上させます。
これが完了したら、これらのステップに進んでCX Sales Mobileを有効にします。
Mobileのアカウント・ページおよび商談ページへの作成した価格表フィールドの追加
「アカウントおよび商談の価格台帳フィールドの作成」のトピックで作成した価格表フィールドを、それぞれのCX Sales Mobileのアカウントおよび商談の「要約」ページと「編集」ページに追加します。 フィールドを追加する方法は次のとおりです。
- 営業管理者ロールを持つユーザーとしてOracle CX Salesアプリケーションにサインインします。
- アプリケーション・コンポーザを含む公開可能なサンドボックスを作成します。
- 「ナビゲータ」メニューの「構成」カテゴリで「アプリケーション・コンポーザ」を選択して、アプリケーション・コンポーザを開きます。
- 「共通設定」メニューまたは「概要」ページで、「モバイル・アプリケーション設定」をクリックします。
- 「CX Sales Mobileコンポーザ」タブをクリックします。
- 「アプリケーション機能」ペインで、「アカウント」をクリックします。
- 「アカウント・ビュー」ペインで、「要約」をクリックします。
- デフォルトの「アカウント詳細」レイアウトの横にあるクリックして複製アイコンをクリックし、新しいレイアウトに名前を付けます。 「OK」をクリックします。
- 「割当済ロール」ペインを開き、価格台帳の管理ロールを持つカスタムの営業担当ロールを検索します。 ロール名をクリックして、ロールを追加します。
- フィールドを表示する場所で「+フィールドの追加」を選択して、このレイアウトに価格表フィールドを追加します。 価格表フィールドを検索し、フィールド名をクリックしてレイアウトに追加します。
- ヘッダーで、「保存」をクリックします。
- 「アカウント・ビュー」ペインで、「編集」をクリックします
- デフォルトの「アカウント詳細」レイアウトの横にあるクリックして複製アイコンをクリックし、新しいレイアウトに名前を付けます。 「OK」をクリックします。
- 「割当済ロール」ペインを開き、価格台帳の管理ロールを持つカスタムの営業担当ロールを検索します。 ロール名をクリックして、ロールを追加します。
- 「+フィールドの追加」を選択して、価格表フィールドをこのレイアウトに追加します。 価格表フィールドを検索し、フィールド名をクリックしてレイアウトに追加します。
- ヘッダーで、「保存」をクリックします。
- 商談に対してステップ6から16を繰り返します。
価格表フィールドの値が変更された場合に、更新された価格設定を適用するスクリプトの作成
次に、売上明細項目の単価を更新し、それらを数量で乗算して明細品目合計を取得し、価格表フィールドの値が変更されたときに商談売上を更新するモバイル・スクリプトを作成します。 スクリプトの作成方法を次に示します。
- 「CX Sales Mobileスクリプト」タブをクリックします。
- CXオブジェクト・ペインで、「商談」をクリックします
- 商談イベント・ペインで、フィールド値の変更時をクリックします。
- 依存フィールドの選択ペインで、「価格表」を選択します。
- 依存フィールドの選択ペインの上に価格表スクリプト・ペインが表示されます。 価格表スクリプト・ペインで「+」アイコンをクリックして、スクリプトを追加します。
- 「スクリプト名」フィールドにOnFieldValueChange_PriceListと入力し、スクリプトの説明フィールドに適切な説明を追加します。
- 「作成」をクリックします。
- 次のスクリプトを入力します。
const row = getCurrentRow(); let priceListName = row.getColumn('PriceList_c'); if(!(priceListName == null)){ let q = queryWithParameters("priceBookHeaders", [{'field': 'Name', 'operator': 'contains', 'value': priceListName}]); let rows = q.execute(); let priceBookItems = rows[0].getColumn('PriceBookItem').items; let prodGroupItems = row.getColumn('ChildRevenue').items; for(var i =0; i< prodGroupItems.length; i++){ for(var j =0; j< priceBookItems.length; j++){ if(prodGroupItems[i].Description === priceBookItems[j].ItemDescription){ prodGroupItems[i].UnitPrice = priceBookItems[j].ListPrice; prodGroupItems[i].RevnAmount = priceBookItems[j].ListPrice * prodGroupItems[i].Quantity; break; } } } }
- 「検証」をクリックします。
- ヘッダーで、「保存」をクリックします。
売上明細項目が変更または追加された場合に、更新された価格設定を適用するスクリプトの作成
最後に、単価を更新または入力し、それらを数量で乗算して明細品目合計を取得し、売上明細品目が変更されたとき、またはさらに品目が追加されたときに商談売上を更新するモバイル・スクリプトを作成します。 スクリプトの作成方法を次に示します。
- 「CX Sales Mobileスクリプト」タブを選択します。
- CXオブジェクト・ペインで、「商談」をクリックします。
- 商談の子オブジェクト・ペインで、「商談売上」をクリックします。
- 商談売上イベント・ペインで、フィールド値の変更時を選択します。
- 依存フィールドの選択ペインで、「製品グループ」を検索して選択します。
- 依存フィールドの選択ペインの上にフィールド値の変更時スクリプト・ペインが表示されます。 フィールド値の変更時スクリプト・ペインで「+」アイコンをクリックして、新しいスクリプトを作成します。
- 「スクリプト名」フィールドにonfieldvaluechange_productgroupと入力し、スクリプトの説明フィールドに適切な説明を追加します。
- 「作成」をクリックします。
- 次のスクリプトを入力します。
const row = getCurrentRow(); let priceListName = row.getColumn('PriceList_c'); let q = queryWithParameters("priceBookHeaders", [{'field': 'Name', 'operator': 'contains', 'value': priceListName}]); let rows = q.execute(); let priceBookItems = rows[0].getColumn('PriceBookItem').items; const childRow = getCurrentChildRow(); let productName = childRow.getColumn('Description'); for(var i =0; i< priceBookItems.length; i++){ if(priceBookItems[i].ItemDescription === productName){ childRow.setColumn('UnitPrice',priceBookItems[i].ListPrice); break; } else { childRow.setColumn('UnitPrice',null); } }
- 「検証」をクリックします。
- ヘッダーで、「保存」をクリックします。
構成のテスト
更新をテストし、構成に問題がなければ、サンドボックスを公開します。 モバイル構成を確認する方法の詳細は、構成のテストのトピックを参照してください。