機械翻訳について

DCLフィールドの値を別のフィールドの値に依存させる

動的選択リスト・フィールド(DCL)などのフィールドを作成し、異なるフィールドの値に応じて異なる値を表示できます。 この例では、「担当者の作成」ページのDCLフィールドを作成し、その担当者に関連付けられたアカウントの住所を表示します。 営業担当は、このフィールドを使用して、使用可能なアカウント住所から担当者の住所を選択できます。

動的選択リスト・フィールドの作成

  1. アプリケーション・コンポーザをサンドボックスで開きます。
  2. 左側のパネルで、「アプリケーション」フィールドでCRM Cloudが選択されていることを確認します。
  3. 「担当者」標準オブジェクトを展開します。
  4. 「フィールド」をクリックします。
  5. 「フィールド」ページで、「アクション」 > 「作成」をクリックします。
  6. 「選択リスト(動的)」オプションを選択します。
  7. 「動的選択リストの作成」 : 「基本情報」ページで、次のように入力
  8. フィールド サンプル・エントリ 説明
    表示ラベル 請求先所在地 UIに表示されるラベル・ユーザー。
    表示幅 40 住所要素を表示するボックスの幅。
    名前 BillToAddress 一意の内部名。
  9. 「制約」は、デフォルトの選択値のままにします。
  10. 「次」をクリックします。
  11. 「値リスト」ページで、次のエントリを作成します:
    フィールド サンプル・エントリ 説明
    関連オブジェクト Address 値のソース。
    リスト選択表示値 Country これらの値はこのユース・ケースには使用されないため、いずれかの値を選択できます。
  12. 他のセクションは空白のままにできます。
  13. 「送信」をクリックします。

DCLフィールドの動作の指定およびレイアウトへの追加

  1. Visual Builder Studioを開きます。
  2. 「レイアウト」タブをクリックします。
  3. 「レイアウト」タブで、「CX営業」 > 「担当者」をクリックします。

    「レイアウト」タブと「担当者」を強調するスクリーンショット。
  4. 「ルール・セット」 > 「レイアウトの作成(CX Sales)」をクリックします。

    「レイアウトの作成」動的フォームを強調表示した「ルール」「セット」タブ
  5. 「レイアウトのコピーも作成」オプションを選択してデフォルト・ルールを複製します。
  6. 新しいルールにルール条件を追加します。
  7. 新しいレイアウト・ルールで「オープン」をクリックして、レイアウト・コピーを開きます。

    「オープン」処理ボタンのロケーションが強調表示されたルール。
  8. 「PersonDEO_Bill_To_Address_id_c (請求先住所)」フィールドを検索し、レイアウトに追加します(次のスクリーンショットのコールアウト1で強調表示されています)
  9. フィールド・テンプレートの変数を作成します:

    1. 「担当者」レイアウト・タブで、「変数」をクリック

    2. 「変数の作成」をクリックします(次のスクリーンショットのコールアウト1)。
    3. billToAddressesなどの変数IDを入力します。
    4. 「タイプ」で、「任意」を選択します。
  10. レイアウトに必要なフィールド・テンプレートを作成します:

    1. 「ルール・セット」タブをクリックします。
    2. 「フィールド」(右側)ペインで、「テンプレート」フィールド(コールアウト2)の「作成」をクリックします。

      フィールドのテンプレートを作成するためのキー・ナビゲーションを示すスクリーンショット
    3. 「テンプレートの作成」ウィンドウで、スペースなしの名前(billToAddressTemplateなど)を入力し、「拡張機能を有効化」オプションを選択したままにします。
    4. 「作成」をクリックします。
    5. 「コード」オプションをクリック
    6. 入力するサンプル・コードは次のとおりです:

      <template id="billToAddress">
        <oj-select-single label-hint="billToAddressID" data="[[$variables.billToAddresses]]" value="{{$value}}"></oj-select-single>
      </template>
      
  11. 次のことを実行するアクション・チェーンを作成します:
    • レコードの更新されたフィールドがアカウント・パーティIDかどうかを確認します。
    • アカウント・パーティIDが更新された場合は、そのパーティIDを定数accountPartyNumberに格納
    • そのパーティIDのすべての住所を返すRESTコールを作成
    • 返されたアドレス(FormattedAddresses)を配列に格納します。
    • 配列内の値を、コンタクトの作成UIの一部となる変数billToAddressesに割り当てます。
    1. 「担当者」タブで、「アクション・チェーン」をクリックします。

      「アクション・チェーンの作成」ウィンドウを開いた状態で「アクション・チェーン」タブが選択されています
    2. 「処理チェーンの作成」 (+Actionチェーン)をクリックします。
    3. 「アクション・チェーンの作成」ウィンドウで、「Javaスクリプト」オプションを選択したままにし、IDとして任意の名前を入力します(この例では): GetAddresses.
    4. 「作成」をクリックします。
    5. 「コード」ビューに切り替えて、コードを入力します:
    6. 次にサンプルを示します:

      define([
        'vb/action/actionChain',
        'vb/action/actions',
        'vb/action/actionUtils',
        'ojs/ojarraydataprovider',
        ], (
        ActionChain,
        Actions,
        ActionUtils,
        ArrayDataProvider
      ) => {
        'use strict';
        class test extends ActionChain {
          /**
           * @param {Object} context
           * @param {Object} params
           * @param {{row:object,related:object[],fieldsToShow:string[]}} params.previous
           * @param {{row:object,previousRow:object,modifiedField:string,pickedRowsData:object,parentRow:object,mode:string}} params.event
           * @return {{row:object,related:object[],fieldsToShow:string[]}}
           */
          async run(context, { previous, event }) {
            const { $layout, $extension, $responsive, $user } = context;
            if (event.modifiedField === 'AccountPartyId') {
              const accountPartyNumber = event.pickedRowsData ['accounts.AccountPartyId'];
              const addressesResponse = await Actions.callRest(context, {
              endpoint: 'oracle_cx_salesUI:cx/getall_accounts-Address',
              uriParams:{
                 'accounts_Id': accountPartyNumber.PartyNumber,
              },
              });
             if (addressesResponse.ok){
             const billToAddresses = addressesResponse.body.items.map((address)=> {return {label:address.FormattedAddress,value:address.FormattedAddress}});
                   $layout.variables.billToAddresses = new ArrayDataProvider(billToAddresses,{keyattributes:"value"});
             }
            }
            if (event.modifiedField === 'PersonDEO_BillToAddress_Id_c'){
             debugger;
            }
          return previous;
          }
        }
        return test;
      });
  12. フィールド・テンプレートのイベント・リスナーを作成します:

    1. 「イベント・リスナー」タブをクリックします。
    2. 「リスナーの作成」ボタン(+Eventリスナー)をクリックします。
    3. 「イベント・リスナーの作成」ページで、ContactsOnFieldValueChangeEventを選択します。
    4. 「次」をクリックします
    5. 作成したアクション・チェーンを選択します。 この例では、GetAddressesです。
    6. 「終了」をクリックします。
  13. フィールドをテストします:

    1. 「プレビュー」ボタンをクリックして、新しく作成したフィールドをテストします。

      これは、Visual Builder Studioの「プレビュー」ボタンのスクリーンショットです。
    2. 「担当者」リスト・ページで、「アクション・バー」Create Contactと入力します。
    3. 複数の所在地を含むアカウントを選択します。
    4. Bill-To-Addressフィールド内をクリックして、アドレスを選択します。