サブタブ・レコード作成時の親データへのアクセス
サブタブを任意の「親」ページに追加するときに、親データを新規レコードにデフォルト設定するようにサブタブを構成することもできます。
つまり、ユーザーが新しいサブタブ・レコードを作成すると、1つ以上のフィールドに親レコードのデータが自動的に移入されます。 この機能は、サブタブが標準オブジェクトまたはカスタム・オブジェクトに基づく場合に使用でき、関連するオブジェクト・サブタブと子オブジェクト・サブタブの両方で使用できます。 このトピックでは、この設定方法について説明します。
関係とサブタブ
2つのオブジェクトは、1対多リレーションシップまたは多対多リレーションシップのいずれかで関連付けることができます。 関係を使用すると、あるオブジェクトのレコードを別のオブジェクトのレコードに関連付けることができるため便利です。 たとえば、アカウントに対して作成されるトラブル・チケットをユーザーが追跡する場合があります。 最初にオブジェクト間の関係を作成し、次にサブタブを作成して、レコード間のこの関連付けを有効にします。
サブタブからの親データへのアクセス
ユーザーがサブタブに新しいレコードを作成するとき、親レコードの値が自動的にサブタブのフィールドにデフォルト設定されるように選択できます。 あるフィールドから別のフィールドにデータをプルするGroovyを記述して、この機能を手動で有効にする必要があります。
この機能を有効にするには、Groovy AfterCreateトリガーを使用して親オブジェクト・データにアクセスします。 トリガーは、親オブジェクトのカスタム・サブタブで作成された新しいレコードに親データをコピーします。 次のように、このGroovyを追加する必要があります:
-
サブタブが1対多関係に基づいている場合:
-
Groovyを「多」オブジェクトに追加します。
-
-
サブタブが多対多関係に基づいている場合:
-
Groovyを交差オブジェクトに追加します。
-
次の項の次の例を見てみましょう。
1対多関係のGroovyの例
アカウント・オブジェクトに車両サブタブがあります。 ユーザーがこのサブタブで新しい車両レコードを作成するとき、新しい車両レコードに、アカウント・オブジェクトの市区町村フィールドからアカウントの市区町村を移入する必要があります。
これを有効にするには、次のコードを使用して、Vehicleオブジェクトに対してAfterCreateトリガーを作成します:
setAttribute('AccountCity_c',Account_AccToVehicle_Src?.PrimaryAddressCity);
-
AccountCity_cは、アカウント・オブジェクトの市区町村フィールドの値を移入する、Vehicleオブジェクトのターゲット・フィールドです。
-
Account_AccToVehicle_Src?のアカウントは、データをプルするソース・オブジェクトを示します。
-
Account_AccToVehicle_SrcのAccToVehicleは、1:M Account to Vehicle関係の名前です。
-
PrimaryAddressCityは、VehicleオブジェクトのAccountCity_cターゲット・フィールドに移入するために使用するアカウント・オブジェクトのソース・データです。
多対多関係でのGroovyの例
アカウント・オブジェクトにCountry Clubメンバーシップ・サブタブがあります。 ユーザーがこのサブタブで新しいCountry Clubメンバーシップ・レコードを作成するときに、新しいCountry Clubメンバーシップ・レコードに、アカウント・オブジェクトの市区町村フィールドからアカウントの市区町村を移入する必要があります。
これを有効にするには、次のコードを使用してAccountCountryClub交差オブジェクトにAfterCreateトリガーを作成します:
setAttribute('AccountCity_c',Account_AccToCountryClub_Src?.PrimaryAddressCity
-
AccountCity_cは、AccountオブジェクトのCityフィールドの値を移入するCountry Clubメンバーシップ・オブジェクトのターゲット・フィールドです。
-
Account_AccToCountryClub_Src?のアカウントは、データをプルするソース・オブジェクトを示します。
-
Account_AccToCountryClub_SrcのAccToCountryClub?は、M:M Account to Country Club Membershipの関係の名前です。
-
PrimaryAddressCityは、Country Clubメンバーシップ・オブジェクトのAccountCity_cターゲット・フィールドに移入するために使用するアカウント・オブジェクトのソース・データです。
自己参照関係に基づくサブタブ
自己参照オブジェクト関係(1:MとM:Mの両方)の場合、カスタム・サブタブでレコードを作成するときに親オブジェクト・データにアクセスすることはできません。 たとえば、ソースと1:MまたはM:Mの関係のターゲットの両方と同じオブジェクト(トラブル・チケットなど)を持つことができます。 ただし、このような関係のサブタブに新しいレコードを作成する場合は、親レコード・データにアクセスできません。