多数のルールを作成する場合は、モデル・コンテキストとルール・セット・コンテキストを使用して、モデルまたはルール・セットのすべてのルールに同じメンバーを使用するディメンションに対して、デフォルト・メンバー選択を定義できます。これにより、ルールでディメンションが使用されるたびに、ディメンションの同じメンバーを選択する必要がなくなります。
Enterprise Profitability and Cost Managementに付属のBksML50サンプル・アプリケーションを使用した例について考えてみましょう。サンプル・アプリケーションには、Enterprise Profitability and Cost Managementで必要なエンティティ・ディメンションおよび勘定科目ディメンションに加えて、顧客、アクティビティ、ドライバおよび製品のカスタム・ディメンションが含まれます。そのため、サンプル・アプリケーションで作成するルールごとに、エンティティ、勘定科目、顧客、アクティビティ、ドライバおよび製品のメンバーを選択する必要があります。ルールの作成時のディメンションおよびメンバーの要件を参照してください。
この例では、次のようにモデルおよびルール・セットを設定します:
モデル: 10 Actuals Allocation Process
ルール・セット: Occupancy Expense Allocations
まず、10 Actuals Allocation Processモデルを設定します。この例では、モデル・コンテキストを設定して、エンティティ、勘定科目、顧客、アクティビティ、ドライバおよび製品の任意のディメンションのデフォルト・メンバーを選択できます。
実行する計算のタイプを検討する場合、これらのいずれかのディメンションの特定のメンバーに計算を絞り込むことが合理的かどうかについて考えます。
この例では、いくつかの時点で、配賦およびカスタム計算が、アクティビティ、顧客、製品、エンティティのすべてと、いくつかの勘定科目に影響します。ドライバ・ディメンションはその影響を受けません。ドライバには1つのメンバーのみがあり、そのメンバーを使用する1つのルールのみがあると仮定します。ドライバは1つのルールでのみ使用されるため、ドライバ・ディメンションのデフォルト選択を定義するモデル・コンテキストを作成すると、モデリング・プロセスで時間を節約できます。
ドライバ・ディメンションに実際のディメンション・メンバーを割り当てることはないため、デフォルト・メンバー選択にはNoDriverを選択します。NoDriverは、ルールで使用されないディメンションであってもすべてのディメンションでメンバーが必要であるという要件を満たすメンバーです。(ドライバ・ディメンションの作成時に、NoDriverメンバーが設定されて、ドライバのカスタム・ディメンションに追加されています。)
この時点では、コンテキストの選択は次のとおりです:
次のステップは、Occupancy Expense Allocationsルール・セットの作成です。このルール・セットでは、10 Actuals Allocation Processモデルの作成時にドライバ・ディメンションをNoDriverに設定して定義したモデル・コンテキストを使用します。これを行うには、ルール・セットの作成ページの「定義」タブで「モデル・コンテキストの使用」を選択します。
モデル・コンテキストの使用に加えて、ルール・セット・コンテキストを作成して、エンティティ、勘定科目、顧客、アクティビティおよび製品の任意のディメンションのデフォルト・メンバーを定義できます。(このルール・セット・コンテキストでは、ドライバ・ディメンションを選択できないことに注意してください。これは、ドライバ・ディメンションに対してNoDriverが定義されたモデル・コンテキストを有効化したためです。モデル・コンテキストで定義されたディメンションは、ルール・セット・コンテキストでは選択できません。)
Occupancy Expense Allocationsルール・セットのルールの作成中であるため、アクティビティ、製品または顧客のディメンションのデータは移動しませんが、エンティティ・ディメンションと勘定科目ディメンションのデータは移動します。アクティビティ、製品および顧客のディメンションは、ルール・セットに作成するルールには適用されないため、これらのディメンションに対して、ルール・セット・コンテキストをNo Activity、No CustomerおよびNo Productに設定します。
モデル・コンテキストで定義したNoDriverの選択での対応と同様に、これらの"No<dimname>"メンバーを割り当てて、ルールで適用されないディメンションであってもすべてのディメンションでメンバーが必要であるという要件を満たします。ルール・セット・コンテキストでこれらの選択を行うことは、ルール・セットに作成するすべての新規ルールでこれらのディメンションのメンバーを選択する必要がないことを意味します。
この時点では、コンテキストの選択は次のとおりです:
これで、Occupancy Expense Allocationsルール・セットにルールを作成する準備ができました。このルール・セットに作成するルールごとに、「ルール・セット・コンテキストの使用」を選択します。
この例のルール・セット・コンテキストには、アクティビティ、顧客および製品のディメンションが含まれることに留意してください。さらに、このルール・セットでは、ドライバ・ディメンションにデフォルト値を設定したモデル・コンテキストも使用します。そのため、ルール・レベルの定義画面に移動すると、エンティティと勘定科目のメンバーを選択するためのオプションのみが表示されます。
この時点では、コンテキストの選択は次のとおりです:
モデル・コンテキストとルール・セット・コンテキストのいずれかが適用されないルールを作成する場合は、これらの選択を無効化できます。ルール・レベルでは、「ルール・セット・コンテキストの使用」の選択を解除して、例外を処理します。ルール・セット・レベルでは、「モデル・コンテキストの使用」の選択を解除して、例外を処理します。ルール・セット・コンテキストにはモデル・コンテキストも含まれるため、「ルール・セット・コンテキストの使用」の選択を解除する場合は、「モデル・コンテキストの使用」の選択も解除します。
例では、「ルール・セット・コンテキストの使用」の選択を解除すると、アプリケーションのすべてのディメンションが、配賦ルール用の「ソース/宛先」タブとカスタム・ルール用の「ターゲット」タブに表示されます。具体的には、エンティティ・ディメンションと勘定科目ディメンションに加えて、ルール・セット・コンテキストからのアクティビティ、顧客および製品のディメンションが表示されて、モデル・コンテキストからのドライバ・ディメンションが表示されるようになりました。
ここで、BksML50サンプル・アプリケーションにルールを設定して、モデル・コンテキストとルール・セット・コンテキストを定義しなかった場合にどうなるかについて考えてみましょう。引き続き各ルールには、配賦ルールのソースおよび宛先またはカスタム・ルールのターゲットに定義された6つすべてのディメンションが必要です。モデルとルール・セットのコンテキストを定義しなかった場合は、作成するすべてのルールで、すべてのディメンションのメンバーを手動で選択する必要があります。ルール・セットに200個のルールが含まれ、そのすべてで同じディメンションを使用する場合は、ルール・セット・コンテキストでディメンションのメンバーを定義する方が、その後の各ルールの定義時に選択するよりも効率的です。