販売オーダーのアプリケーション・ページの拡張
アプリケーション・コンポーザを使用すると、販売オーダーの一連のアプリケーション・ページに表示される多くのアイテムを変更できます。 販売オーダー・オブジェクトは、Oracle Configure, Price, and Quote (CPQ) Cloudとの統合をサポートするために使用できます。
このオブジェクトには、Oracle CPQ Cloudから同期された見積要約情報が格納されます。
Oracle CPQ Cloudとの統合がすでに設定されていないかぎり、販売オーダー・オブジェクトは拡張しないでください。 詳細は、関連トピックの「見積との統合について」を参照してください。
販売オーダー・オブジェクトは、次の領域にサブタブとして表示されます。
-
アカウント・レコードの「見積およびオーダー」サブタブ
-
商談レコードの「見積およびオーダー」サブタブ
アプリケーション・コンポーザを使用して、販売オーダー・オブジェクトのカスタム属性(カスタム・フィールド)を作成します。 作成したカスタム・フィールドは、アカウント・レコードと商談レコードの「見積およびオーダー」サブタブに表示され、Webサービスで使用できます。
たとえば、次のことが可能です。
-
標準フィールドの表示と非表示を切り替えます。
-
列の順序を変更します。
-
カスタム・フィールドを追加します(すべてのタイプ)。
販売オーダー・オブジェクトの変更
Oracle CPQ Cloudとの統合を設定したら、販売オーダー・オブジェクトのカスタム・フィールドを定義できます。
カスタム・フィールドを定義するには:
-
「アプリケーション・コンポーザ」にナビゲートします。
-
「販売オーダー」オブジェクトを展開します。
-
「フィールド」ノードをクリックします。
「見積およびオーダー」サブタブの構成
次に、「アカウント」または「商談」の両方の詳細ページから使用できる「見積およびオーダー」サブタブを構成します。 サブタブを構成するには、アプリケーション・コンポーザで「アカウント」または「商談」ページ・レイアウトにナビゲートする必要があります。
-
アプリケーション・コンポーザで「アカウント」または「商談」のオブジェクトにナビゲートします。
-
「ページ」ノードをクリックします。
-
「アプリケーション・ページ」タブで、「詳細ページ・レイアウト」セクションにナビゲートします。 標準レイアウトを複製してカスタム・レイアウトを作成するか、既存のカスタム・レイアウトを編集します。
-
「詳細レイアウト」ページで、「見積およびオーダー」サブタブをクリックします。 次のことが可能です。
-
サブタブ名の横にある鉛筆アイコンをクリックして、サブタブの名前を変更します。
-
商談見積または顧客見積の見出しの横にある鉛筆アイコンをクリックして、実行時に表示される販売オーダー属性(標準またはカスタム)を指定します。
-
カスタム・スクリプトのための販売オーダー・オブジェクトへのアクセス
販売オーダー・オブジェクトを構成したら、作成した新しいカスタム・フィールドにアクセスするGroovyスクリプトを記述することもできます。 たとえば、商談の販売オーダー・データを検証できます。 ただし、商談オブジェクトに対するスクリプトを記述する場合、販売オーダー・オブジェクトのカスタム・フィールドは式ビルダーで直接使用できません。 これらのカスタム・フィールドにアクセスするには、newView()関数を使用して、販売オーダー・オブジェクトへのランタイム・リンクを作成する必要があります。 newView()が販売オーダー・オブジェクトに対して実行された後は、スクリプトのみが販売オーダー・フィールドにアクセスして分析できます。
商談番号に基づいて関連する販売オーダー・レコードを取得するnewView()関数の例を次に示します。
def myVO = newView('SalesOrderHeader')
def view_Criteria = newViewCriteria(myVO);
def view_criteria_row = view_Criteria.createRow();
def view_condition = view_criteria_row.ensureCriteriaItem('OptyNumber');
view_condition.setOperator('=');
view_condition.setValue(OptyNumber);
view_Criteria.insertRow(view_criteria_row);
myVO.appendViewCriteria(view_Criteria);
myVO.setMaxFetchSize(1);
myVO.executeQuery();
if(myVO.hasNext())
{
def rec= myVO.next()
def cust_field_from_order_value = rec.<custom_field_API_name>_c
}
この行は、特にカスタム販売オーダー属性の値を取得し、それを変数に割り当てます。
def cust_field_from_order_value = rec.<custom_field_API_name>_c
Groovyスクリプトの残りの部分を完成させて、検証ルールなどを実装できるようになりました。