エンティティの作成
このトピックでは、新しいエンティティを作成する方法と、そのプロパティについて説明します。
エンティティを作成するには、[+エンティティ(+ ENTITY)]をクリックし、必要なフィールドをすべて入力します。完了したら[変更を保存(SAVE CHANGES)]をクリックしてください。エンティティのプロパティについての詳細は、次の段落を参照してください。
エンティティ作成パネルでは、[コンテンツ(CONTENT)]タブおよび [分析(ANALYSIS)]タブにアクセスする前に、[変更を保存(SAVE CHANGES)]を行う必要があります。
各データモデルに含まれるエンティティの数は、1,000を超えないようにしてください。
エンティティのプロパティ
エンティティの新規作成時には、以下のプロパティを使用できます。
- [名前(Name)](必須):アプリケーション全体に表示されるエンティティの名前。このフィールドには任意の文字を入力できます。
新しいエンティティが作成されると、Boardはそのエンティティに一意の内部識別子(UID)を割り当てます。このUIDは、Board全体でエンティティを参照するために使用されます。レポート、プロシージャ、データリーダー、およびその他のオブジェクトはすべてUIDを使用して1つのエンティティを参照します。そのため、エンティティ名を変更しても、既存のカプセル(および関連するレポートやプロシージャ)やその他のデータモデル・オブジェクトに影響はありません。
- [グループ(Group)](必須):エンティティのグループを選択するか、名前を入力して新しいグループを作成します。グループは、特定のエンティティを検索したり、エンティティの目的を理解するのに便利です。
グループは、多次元データモデルの一部ではありません(つまり、レポートやプロシージャでは使用できません)。グループの唯一の目的は、エンティティをリストから探しやすくすることです。
- [コード幅(Code width)]:メンバのコードに使用する最大文字数。コードは、エンティティのすべてのメンバを識別する一意の値です。コード幅を0に設定した場合、任意の文字数で入力できます。
コード幅を厳密に指定する必要はありません。エンティティメンバーが(手動またはデータリーダーを介して)ロードされると、システムはそれに応じて最適な値を設定します。
コード幅は、入力されるデータのサイズの制限を表すものではありません。手動またはデータリーダーを使用してエンティティメンバーをロードするときに動的に変更できます。Boardは自動的にコード幅の値を10の倍数だけ増加させるので、最大コード幅を超えて読み込まれた項目が破棄されたり、切り捨てられたりすることはありません。
[幅を固定(fixed width)]オプションがオンになっているデータリーダーを経由してメンバがロードされた場合、コード幅を変更するとデータリーダーは失敗します。 - [説明幅(Desc width)]:メンバの説明に使用する最大文字数。メンバの説明が不要または任意の文字数の説明を受け付けるように設定する場合は、このフィールドを0に設定してください。
説明幅を指定することは厳密には必須ではありません。エンティティメンバーが(手動またはデータリーダーを介して)ロードされると、システムはそれに応じて最も適切な値を設定します。
説明幅は、入力されるデータのサイズの制限を表すものではありません。エンティティメンバーを手動またはデータリーダー経由でロードするときに動的に変更できます。Boardは自動的に説明幅の値を10の倍数だけ増加させるため、最大説明幅を超えて読み込まれた項目が破棄されたり、切り捨てられたりすることはありません。 - [最大アイテム数(Max Item number)]:エンティティが保持できるメンバの最大数。アプリケーションのライフサイクルにおけるメンバの潜在的な増加率に適した値を設定することが重要です。この値は、アプリケーションのメモリ割り当てや、エンティティやキューブの物理的なデータ構造の最適化に使用されるため、非現実的に大きな値を設定すべきではありません。
- 新しいエンティティを作成する時点では、最大アイテム数を定義する必要はありません。エンティティが作成されると、データリーダーを介してエンティティにデータを入力し、エンティティが保持する実際のメンバ数に応じて最大アイテム数を設定することができます。この数を設定するときは、現在のアイテム数だけでなく、アプリケーションのライフサイクルにおける潜在的な増加率にも注意を払う必要があります。
- 最大アイテム数は[自動(Auto)]に設定することもでき、その場合Boardは内部最適化アルゴリズムに基づいて自動的にその値を定義します。
- キューブ構造でエンティティが使用されると、圧縮とパフォーマンスを最適化する内部アルゴリズムを使用して、その構造内のそのエンティティに対して最大アイテム数が自動的に計算されます。最大アイテム数の計算は、エンティティにメンバが入力された後、およびそのエンティティが存在する構造内のキューブでデータが最初にロードされたときにのみ行われます (つまり、キューブが空の間は、最大アイテム数は定義されません)。
- キューブバージョンでエンティティが使用されている場合、最大アイテム数が0の場合はキューブにデータを入力できないため、常に0以外の値を入力する必要があります。
- エンティティのメンバ数の最大アイテム数に対する比率は、[エンティティ(Entities)]ページに表示される[使用率(Saturation)]の値です。これは常に100%よりも小さい値であるべきです。
- データリーダーがエンティティのメンバをロードするときに最大アイテム数を超えると、警告メッセージが表示され、その時点からデータリーダーはすべての余分なメンバを破棄します。データリーダーのテーブルでデータリーダーログを有効にすると、各データリーダーの拒否されたレコードのログファイルが作成されます。データリーダーログについて詳しくはこちらのページをご覧ください。 - [ソート(Sort by)]:デフォルトの並べ替えオプション。利用可能な4つのオプションから1つを選択します。
- [なし(None)]:エンティティメンバーを作成された順序に従って表示します。
- [コード(Code)]:エンティティメンバーを[コード(Code)]フィールドに従って昇順/アルファベット順で表示します。
- [説明(Desc)]:エンティティメンバーを[説明(Desc)]フィールドに従って昇順/アルファベット順で表示します。
- [カスタム(Custom)]:以下に説明するように、エンティティメンバーにカスタムのソート順を適用します。
- [コンテンツ(CONTENT)]タブから手動で設定:要素をリスト内の希望の位置にドラッグ・アンド・ドロップします。たとえば、最初のメンバを3番目の位置に移動するには、先頭から3番目の位置にドラッグします。左側のドラッグ・アンド・ドロップ・ハンドル(6つの点のアイコン)を使ってメンバをドラッグします。各メンバの順序は、[順序(Order)]フィールドをダブルクリックして希望の位置(数字)を入力することでも設定できます。たとえば、最初のメンバを3番目の位置に移動させたい場合は、最初の要素の前にある[順序(Order)]フィールドに「3」を入力します。
- データリーダーを使用:少なくとも1つのエンティティのソートオプションが[カスタム(Custom)]に設定されている場合、新しいデータリーダーを作成するときに[エンティティメンバのソート(Sorting entity members)]チェックボックスが表示されます。このオプションを有効にした場合、メンバの順序のみ設定可能なため、データリーダーで使用できるのはエンティティフィールドのみです。データリーダーによってファイル/クエリから読み込まれた順序は、カスタムのソート順として使用されます。
- [コンテンツ(CONTENT)]タブから手動で設定:要素をリスト内の希望の位置にドラッグ・アンド・ドロップします。たとえば、最初のメンバを3番目の位置に移動するには、先頭から3番目の位置にドラッグします。左側のドラッグ・アンド・ドロップ・ハンドル(6つの点のアイコン)を使ってメンバをドラッグします。各メンバの順序は、[順序(Order)]フィールドをダブルクリックして希望の位置(数字)を入力することでも設定できます。たとえば、最初のメンバを3番目の位置に移動させたい場合は、最初の要素の前にある[順序(Order)]フィールドに「3」を入力します。
- [メンバーを表示(Display)]:メンバのデフォルトの表示設定。コード、説明、またはその両方。利用可能な3つのオプションから1つを選択します。
- [説明(Desc)]:メンバの説明を表示します。
- [コード(Code)]:メンバのコードを表示します。
- [コードと説明(Both)]:メンバのコードと説明の両方を表示します。
- [表示(User view)]:カプセル環境(エンティティの選択ウィンドウやレイアウト編集ウィンドウなど)でのエンティティの表示順序やグループ化を設定します。
- [ビューを許可(Allow user in view)]. (デフォルトで有効):チェックボックスをオフにすると、カプセル環境においてデザインモードとプレイモードの両方でエンティティが非表示になります。
- [ロールアップエンティティ(Is rollup entity)]:このフラグはエンティティがメンバのコードに基づいて自動的に集計階層を決定するロールアップエンティティとして動作するかどうかを決定します。このオプションを有効にすると、Boardは自動的にメンバのコードに基づいて合計と小計を計算します。この機能は後方互換性の理由から利用可能ですが、代わりに[不規則階層(Unbalanced Hierarchy)]機能を使用することを強くお勧めします。詳細については、以前のドキュメントのこちらのページを参照してください。
- [不規則階層(Unbalanced Hierarchy)]:このフラグは、エンティティが不規則階層エンティティであるかどうかを決定します。このタイプのエンティティはメンバ間の親子関係の定義をサポートし、定義した階層に応じた即時のデータ集計が可能です。このような構造は通常、財務報告や組織構造で使用され、他の多くのビジネスモデルで一般的です。詳細については、「不規則階層」を参照してください。
このタイプのエンティティはロールアップエンティティに似ていますが、メンバコードがロールアップに基づいて階層化されている必要がありません。ロールアップエンティティは後方互換性のために引き続きサポートされますが、より強力な不規則階層エンティティの使用を強くお勧めします。
エンティティへのメンバ追加
エンティティに新しいメンバを追加するには、2つの方法があります。
- [コンテンツ(CONTENT)]タブから手動入力:このプロセスは、単一のメンバを追加する場合、またはソースのデータ・システムに存在しない小規模のエンティティへ追加する場合に便利です。
エンティティに新しいメンバを手動で追加するには、以下の手順に従います。- 必要なエンティティを選択します。
- [コンテンツ(CONTENT)]をクリックします。
- [新しいメンバを追加(ADD NEW MEMBER)]をクリックします。
- 新しいメンバの[コード(Code)]と[説明(Description)]を入力します。
- [新しいメンバを追加(ADD NEW MEMBER)]をクリックします。必要な数のメンバを追加するために、前のステップからのプロセスを繰り返します。
- [追加されたメンバを保存(SAVE ADDED MEMBERS)]をクリックします。
エンティティを新規作成した場合、[コンテンツ(CONTENT)]タブは最初の[変更を保存(SAVE CHANGES)]を行った後にのみ使用可能になります。
[新しいメンバを追加(ADD NEW MEMBER)]セクションでは、スプレッドシートから使用したい列をコピー&ペーストすることで、簡単に新規メンバを一括登録することができます。コピーするデータは2列のみとし、1列目は[コード(Code)]、2列目は[説明(Description)]とします。また、列のヘッダーは選択範囲に含めないようにしてください。
また、エンティティに設定されている[コード(Code)]と[説明(Description)]の幅、および最大アイテム数にも注意してください。いずれかのパラメータが超過している不正なメンバが存在する場合、新しいメンバは追加されません。 - データリーダーを使用:データリーダーは、テキストファイル、ODBC、OLE DB、またはOLAP接続からBoardデータベースにデータをインポートするためのBoardツールです。ソースデータをエンティティにマッピングした後、データリーダーを実行すると、保存された設定に従ってエンティティにメンバがロードされます。この方法は最も一般的であり、大規模なエンティティへの入力に適しています。詳細はデータリーダーの基本概念を参照してください。