機能パラメータのメタデータ型とカスタムオブジェクト
機能パラメータは、パッケージ化組織内ではメタデータ API の型として、LMO ではカスタムオブジェクトのレコードとして、登録者の組織内ではカスタムオブジェクトの非表示のレコードとして表されます。FMA はカスタムオブジェクトを作成します。機能パラメータの 3 つの種別には、値の 3 つの型 (ブール、整数、日付) が保存されます。これらの値は、顧客の組織内の他の値を参照する場合と同様に、コード内で参照できます。
機能パラメータの項目
機能パラメータは、メタデータ API の型として表され、パッケージ化組織内で操作できます。FeatureParameterBoolean、FeatureParameterDate、FeatureParameterInteger 型には、値の 3 つの型 (ブール、整数、日付) が保存されます。管理パッケージで次の型を使用して、各値を保存できます。
- dataFlowDirection の値: LmoToSubscriber または SubscriberToLmo。
- 各機能パラメータの masterLabel 値。
- 各機能パラメータのデフォルトの value。その値は、顧客の組織内の他の値を参照するように、コード内で参照できます。
登録者が最初にパッケージをインストールすると、各機能パラメータの LMO 内に FeatureParameter__c レコードが作成されます。機能パラメータレコードは、次の項目に値を保存します。
- FullName__c
- DataType__c (Boolean、Integer、または Date)
- DataFlowDirection__c
- Package__c
- IntroducedInPackageVersion__c
- Namespace_Prefix__c
LMO 内および登録者の組織内で、カスタム連結オブジェクトのレコードは機能パラメータを表します。FeatureParameterBoolean__c、FeatureParameterDate__c、FeatureParameterInteger__c のレコードです。登録者がパッケージをインストールすると、FMA は、LMO 内および顧客の組織にこれらの連結オブジェクトのレコードを作成します。このレコードによって、機能パラメータは登録者のライセンスと機能パラメータの値セットに関連付けられます。LMO 内および登録者の組織内のそれらの値はリンクされます。各レコードは次の値を保存します。
- FeatureParameter__r
- License__c
- Value__c
機能パラメータのライフサイクル
機能パラメータとその項目に関する情報をもう少し関連付けましょう。ここでは、こうした型とオブジェクトがどのように機能するのか、始めから終わりまでその概要を説明します。
- 組織の管理パッケージのパッケージ詳細ページにある [機能パラメータ] タブから、ISV がパッケージ化組織で機能パラメータを定義します。dataFlowDirection の値 ([LMO から登録者] または [登録者から LMO]) に応じて、機能パラメータは登録者組織の関連付けられたデータを変更するか、有効化総計値を収集します。次に、ISV は機能パラメータとやりとりして、アクセス権を確認するか、使用状況情報を収集する、別のコードを記述します。
- 顧客が AppExchange からそのパッケージをインストールします。
- パッケージが登録者組織にインストールされると、機能パラメータごとに 1 件の FeatureParameter__c レコードが、まだ存在していなければ LMO に作成されます。
- 登録者組織でのパッケージインストール中、連結オブジェクトレコードが LMO と登録者の組織に作成されます。機能パラメータごとに、機能パラメータを登録者組織のライセンスに関連付ける連結オブジェクトのレコードが各組織に作成されます。連結オブジェクトは、2 つの主従関係を持つカスタムオブジェクトです。この場合は、FeatureParameter__c と License__c の関係です。連結オブジェクトの種別は、FeatureParameterBoolean__c、FeatureParameterDate__c、FeatureParameterInteger__c のいずれかです。このレコードには、登録者組織の関連付けられた機能パラメータの値が保存されます。最初に、Value__c 項目にはパッケージ化組織から defaultValue が入力されます。LMO および登録者の組織のそれらの値はリンクされます。
- ISV は連結オブジェクトを使用して機能パラメータのデフォルト値を上書きしたり、データを収集したりします。各パラメータの DataFlowDirection__c 項目の値に応じて、データは (LMO から) 登録者組織へ、または (登録者組織から) LMO へ流れます。そのデータは、連結オブジェクトレコードに保存されます。