關於資料倉儲中的子維度
發行︰ 2016年7月
適用於: System Center 2012 SP1 - Service Manager、System Center 2012 R2 Service Manager、System Center 2012 - Service Manager
在 System Center 2012 – Service Manager 中,資料倉儲中的子維度基本上是可利用邏輯方式將一組值群組在一起的清單。 下列表格顯示兩個範例,分別是表示優先順序和 Windows 作業系統的邏輯值群組。
優先順序 |
---|
低 |
Medium |
高 |
Windows 作業系統 |
---|
Windows XP |
Windows Vista |
Windows 7 |
子維度有兩種用途:
當您在 Service Manager 主控台中建立和檢視報表時,可以使用子維度提供的離散值作為報表參數的下拉式功能表。
您可以使用子維度值將報表中的資料群組在一起,以供進階分析。
資料倉儲中的子維度可以將一或多個類別內容設為目標,並將其合併成單一離散值集合。 這些內容只能屬於 String 或 ManagementPackEnumeration 資料類型。 當以列舉為基礎時,子維度也可會保留階層。Service Manager 不支援在 String 或 ManagementPackEnumeration 以外的資料類型上定義子維度。
雖然在列舉上定義子維度的好處很顯著,但在字串資料行上定義子維度的優點之一是,資料倉儲基礎結構能夠將來自執行個體空間的不同內容值合併成較小的清單。 您接著便可以在報表中易於使用的下拉式清單使用該清單。Computer 類別上的 Manufacturer
內容便是以字串為基礎的子維度,該類別在 Service Manager 資料庫中是模型化為字串。 藉由在該內容上定義子維度,Service Manager 可讓您從下拉式清單選取值,而不必在購置電腦的眾多製造商之間進行搜尋。
若要檢視在報表參數標頭中如何使用子維度的範例,請開啟 Service Manager 主控台;瀏覽至 [報表] 和 [活動管理];然後執行活動分佈報表。 接下,檢閱 [狀態] 清單來檢視子維度的值。 您可以在下列範例看到子維度在管理組件中如何模型化。 請注意 System.WorkItem.Activity 類別,此類別是在 System.Workitem.Activity.Library 管理組件中定義:
<ClassType ID="System.WorkItem.Activity" Accessibility="Public" Base="WorkItem!System.WorkItem" Hosted="false" Abstract="true">
< Property ID="SequenceId" Type="int" />
<Property ID="Notes" Type="richtext" MaxLength="4000" />
<Property ID="Status" Type="enum" EnumType="ActivityStatusEnum" />
<Property ID="Priority" Type="enum" EnumType="ActivityPriorityEnum" />
<Property ID="Area" Type="enum" EnumType="ActivityAreaEnum" />
<Property ID="Stage" Type="enum" EnumType="ActivityStageEnum" />
</ClassType>
接下來,您可能會想根據 Status
內容定義子維度。 下列範例顯示如何在您選擇的管理組件中定義子維度:
<Outrigger ID="ActivityStatus" Accessibility="Public">
<Attribute ID="Status" PropertyPath="$Context/Property[Type='CoreActivity!System.WorkItem.Activity']/Status$" />
</Outrigger>
如前所述,管理組件作者可以在一或多個類別內容上定義子維度。 每個類別內容是由子維度中的對應屬性模型化。 下列範例顯示以列舉為基礎的子維度。 在此範例中,[活動狀態] 以 ActivityStatusEnum 為基礎:
<EnumerationTypes>
<EnumerationValue ID="ActivityStatusEnum" Accessibility="Public" />
<EnumerationValue ID="ActivityStatusEnum.Ready" Parent="ActivityStatusEnum" Accessibility="Public" Ordinal="5.0" />
<EnumerationValue ID="ActivityStatusEnum.Active" Parent="ActivityStatusEnum" Accessibility="Public" Ordinal="10.0" />
<EnumerationValue ID="ActivityStatusEnum.OnHold" Parent="ActivityStatusEnum" Accessibility="Public" Ordinal="15.0" />
<EnumerationValue ID="ActivityStatusEnum.Completed" Parent="ActivityStatusEnum" Accessibility="Public" Ordinal="20.0" />
<EnumerationValue ID="ActivityStatusEnum.Failed" Parent="ActivityStatusEnum" Accessibility="Public" Ordinal="25.0" />
<EnumerationValue ID="ActivityStatusEnum.Cancelled" Parent="ActivityStatusEnum" Accessibility="Public" Ordinal="30.0" />
<EnumerationValue ID="ActivityStatusEnum.Rerun" Parent="ActivityStatusEnum" Accessibility="Public" Ordinal="35.0" />
...
</EnumerationTypes>
每個值均包含在子維度的離散值集合中。 下表列出 ActivityStatus 子維度的資料行識別碼和 ActivityStatusValue,其中包含 ActivityStatusEnum 的所有列舉值。
識別碼 | ActivityStatusValue |
---|---|
ActivityStatusEnum.Completed | 已完成 |
ActivityStatusEnum | 活動狀態 |
ActivityStatusEnum.Active | 進行中 |
ActivityStatusEnum.OnHold | 保留 |
ActivityStatusEnum.Rerun | 重新執行 |
ActivityStatusEnum.Failed | 失敗 |
ActivityStatusEnum.Ready | 擱置 |
ActivityStatusEnum.Cancelled | 已取消 |
在上表中,子維度的識別碼一欄包含 ActivityStatus 列舉類型的所有 EnumerationValue 識別碼。 ActivityStatusValue 是實際出現在報表下拉式功能表中的易記顯示名稱。
下列範例提供如何建構和模型化子維度的進一步詳細資料。 此範例同樣使用子維度 ActivityStatus:
<Outrigger ID="ActivityStatus" Accessibility="Public">
<Attribute ID="Status" PropertyPath="$Context/Property[Type='CoreActivity!System.WorkItem.Activity']/Status$" />
</Outrigger>
下表說明 <Outrigger> 標記的屬性。
屬性 | 說明 |
---|---|
識別碼 | 子維度元素的唯一識別碼。 這也是子維度在資料倉儲和資料超市中的資料表名稱。 |
Accessibility | 此元素應永遠設定為 Public。 |
每個 <Outrigger> 父標記均包含一或多個 <Attribute> 子元素標記。 下表說明此標記的屬性。
屬性 | 說明 |
---|---|
識別碼 | 每個子維度屬性的唯一識別碼 |
PropertyPath | PropertyPath 語法,此語法必須唯一識別子維度屬性的目標類別和屬性。 |