如何在 icCube 的范围维度 II 中使用流程管理开始和结束日期

how to use process management start and end dates in the ranged dimension II in icCube

icCube 可以处理范围维度来解决流程管理的复杂建模解决方案。 Here 给出了订单日期和发货日期的示例。很好的例子,几乎适用,但不完全适用。

我想显示最新阶段的变化。这些变化来自 ITSM 软件 SAAS 解决方案。简而言之,更改会经历以下阶段:

每个阶段都有开始和结束日期。而且没有间隙。

现在我想使用范围 II 维度的解决方案在图表中显示一个更改(或多个更改)的生命周期。但我得到以下图表:

我怎样才能产生所需的结果。意思是,只显示特定时间间隔内变化的最新阶段?

我按照 purple frog 给出的方法找到了使用常规 MDX 的解决方案。不幸的是,icCube 提供的标准解决方案不支持我的问题中指出的 "end-of-period-interval" 问题。

我已经将问题重建在附带的icCube方案中以供参考,可能其他人运行也会遇到类似的问题。在此解决方案的末尾,我将 icCube 架构添加为 XML 代码。

  • 1st - 数据 (左:Ranged Dimension II 的数据集 - 但不适用于阶段,右:提供所需结果的数据集)

  • 不正确的结果 - 基于 LEFT 的 MDX - 范围维度:

  • 正确的结果 - 基于正确数据集的 MDX:

一些注意事项: - 请注意,在 "CORRECT RESULT" 中,2018 年 6 月的“1”值已被删除。这可能看起来出乎意料,但它符合问题的定义:显示所选期间结束的值(在本例中为月)。由于阶段 "e" 已于 6 月 13 日结束,因此它在 6 月 30 日是空的。

希望你也能从中受益。

这是 XML 构建器模式:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<schemaFactory revisionNumber="7">
    <schemaDefinition name="Phases - ranged dimension II" description="issue description Whosebug" group="Whosebug" loadOnStartup="false">
        <activateIncrementalLoad>false</activateIncrementalLoad>
        <useUnknownMembersInFacts>false</useUnknownMembersInFacts>
        <autoCleanUpTableColumns>false</autoCleanUpTableColumns>
        <useFactPartitioning>false</useFactPartitioning>
        <callGarbageCollector>NONE</callGarbageCollector>
        <backup>NONE</backup>
        <nonEmptyCachePolicy>NONE</nonEmptyCachePolicy>
        <nonEmptyCacheType>REGULAR</nonEmptyCacheType>
        <nonEmptyCachePersistency>MEMORY</nonEmptyCachePersistency>
        <storagePolicy>DEFAULT</storagePolicy>
        <hierarchyUniqueNameStyle>IncludeDimensionName</hierarchyUniqueNameStyle>
        <inMemoryDS name="manual">
            <memoryDataTable tableName="facts" rowLimit="-1" id="c41cc2b5-1412-4da1-8e0e-3bd1b07e9d66">
                <column name="start" tableType="STRING" type="DATE" selected="true" primaryKey="false" nullObjectAsString=""/>
                <column name="end" tableType="STRING" type="DATE" selected="true" primaryKey="false" nullObjectAsString=""/>
                <column name="phase" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
                <column name="chg" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
                <column name="#changes" tableType="STRING" type="INTEGER" selected="true" primaryKey="false" nullObjectAsString=""/>
                <addRowNumber>false</addRowNumber>
                <stringDateConverter>d MMM, yyyy</stringDateConverter>
                <stringDateConverterLocale>en</stringDateConverterLocale>
                <trimStrings>true</trimStrings>
                <columnSeparator>;</columnSeparator>
                <commentMarker>#</commentMarker>
                <dataAsString>start;end;phase;chg;#changes
1 January, 2018;1 February, 2018; a;chg001;1
1 February, 2018;5 March, 2018;b;chg001;1
5 March, 2018;20 March, 2018;c;chg001;1
20 March, 2018;20 March, 2018;d;chg001;1
20 March, 2018;3 June, 2018;e;chg001;1
</dataAsString>
            </memoryDataTable>
            <memoryDataTable tableName="phases" rowLimit="-1" id="b24aaebb-7ce3-42a9-bab0-a54bc4c4b896">
                <column name="phase" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
                <addRowNumber>false</addRowNumber>
                <stringDateConverter></stringDateConverter>
                <trimStrings>true</trimStrings>
                <columnSeparator>,</columnSeparator>
                <commentMarker>#</commentMarker>
                <dataAsString>phase
a
b
c
d
e
</dataAsString>
            </memoryDataTable>
            <memoryDataTable tableName="changes" rowLimit="-1" id="8ba9aaca-0d93-49b1-851f-4f325e05bbbe">
                <column name="chg" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
                <addRowNumber>false</addRowNumber>
                <stringDateConverter></stringDateConverter>
                <trimStrings>true</trimStrings>
                <columnSeparator>;</columnSeparator>
                <commentMarker>#</commentMarker>
                <dataAsString>chg
chg001
chg002
chg003</dataAsString>
            </memoryDataTable>
            <memoryDataTable tableName="facts - delta" rowLimit="-1" id="aea29582-84e2-4ef4-a169-5d9549141ba6">
                <column name="date" tableType="STRING" type="DATE" selected="true" primaryKey="false" nullObjectAsString=""/>
                <column name="phase" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
                <column name="chg" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
                <column name="delta" tableType="STRING" type="INTEGER" selected="true" primaryKey="false" nullObjectAsString=""/>
                <addRowNumber>false</addRowNumber>
                <stringDateConverter>d MMM, yyyy</stringDateConverter>
                <stringDateConverterLocale>en</stringDateConverterLocale>
                <trimStrings>true</trimStrings>
                <columnSeparator>;</columnSeparator>
                <commentMarker>#</commentMarker>
                <dataAsString>date;phase;chg;delta
1 January, 2018;a;chg001;1
1 February, 2018;b;chg001;1
5 March, 2018;c;chg001;1
20 March, 2018;d;chg001;1
20 March, 2018;e;chg001;1
1 February, 2018;a;chg001; -1
5 March, 2018;b;chg001;-1
20 March, 2018;c;chg001;-1
20 March, 2018;d;chg001;-1
13 June, 2018;e;chg001;-1
</dataAsString>
            </memoryDataTable>
        </inMemoryDS>
        <multiLevelDimension dataTableId="8ba9aaca-0d93-49b1-851f-4f325e05bbbe" isTimeDimension="false" isDefaultTimeDimension="false" isIndexingByRange="false" id="0c4cf980-73d9-4c42-ae47-a300421c29a2" name="Change">
            <multiLevelHierarchy hasAllLevel="true" allLevelName="All-Level" allMemberName="All" name="Change" isDefault="true">
                <level name="change" nameUnique="false" nameUniqueInParent="false" keyUnique="false" ignoreNameCollision="false">
                    <nameCol name="chg"/>
                    <orderType>BY_NAME</orderType>
                    <orderKind>ASC</orderKind>
                </level>
            </multiLevelHierarchy>
        </multiLevelDimension>
        <multiLevelDimension dataTableId="b24aaebb-7ce3-42a9-bab0-a54bc4c4b896" isTimeDimension="false" isDefaultTimeDimension="false" isIndexingByRange="false" id="ed48052e-2c11-48a8-9407-c4854b163cb6" name="Phase">
            <multiLevelHierarchy hasAllLevel="true" allLevelName="All-Level" allMemberName="All" name="Phase" isDefault="true">
                <level name="phase" nameUnique="false" nameUniqueInParent="false" keyUnique="false" ignoreNameCollision="false">
                    <nameCol name="phase"/>
                    <orderType>BY_NAME</orderType>
                    <orderKind>ASC</orderKind>
                </level>
            </multiLevelHierarchy>
        </multiLevelDimension>
        <timeWizardDimension isDefaultTimeDimension="false" isIndexingByRange="true" from="2018-06-01T00:00:00.000" to="2018-07-31T00:00:00.000" dataTableId="c41cc2b5-1412-4da1-8e0e-3bd1b07e9d66" unknownMemberName="" id="b545bf65-ec47-4267-a4f1-a8df35096bc4" name="Time">
            <timeHierarchy hasAllLevel="true" allLevelName="All-L" allMemberName="All-M" name="Time" isDefault="true" defaultMemberName="">
                <factAggregationType>MEMBER_AND_ANCESTORS</factAggregationType>
                <level name="Year" type="YEAR">
                    <useRelativeKey>false</useRelativeKey>
                </level>
                <level name="Month" type="MONTH" nameFormat="">
                    <useRelativeKey>false</useRelativeKey>
                </level>
                <level name="Day" type="DAY" nameFormat="">
                    <useRelativeKey>false</useRelativeKey>
                </level>
            </timeHierarchy>
            <timeWizardColumn name="start"/>
        </timeWizardDimension>
        <cube id="b9aceb66-c3dc-4d20-9f74-1ada8769cf75" name="Changes" description="">
            <defaultFacts measureGroupName="Facts" partitioningLevelName="" partitioningType="NONE" newGeneration="true" dataTableId="c41cc2b5-1412-4da1-8e0e-3bd1b07e9d66" aggregateDataSourceFacts="false" unresolvedRowsBehavior="ERROR">
                <rowFactAggregationType>ADD_ROW</rowFactAggregationType>
                <measure name="# changes" aggregationType="SUM">
                    <rollupHierarchy></rollupHierarchy>
                    <dataColumn name="#changes"/>
                    <cellProperties></cellProperties>
                    <emptyIsZero>false</emptyIsZero>
                </measure>
                <measure name="# changes close" aggregationType="CLOSE">
                    <rollupHierarchy>[Phase].[Phase]</rollupHierarchy>
                    <dataColumn name="#changes"/>
                    <cellProperties></cellProperties>
                    <emptyIsZero>false</emptyIsZero>
                </measure>
                <links dimensionId="0c4cf980-73d9-4c42-ae47-a300421c29a2">
                    <viewLinks type="LAST_LEVEL">
                        <toColumns name="chg"/>
                    </viewLinks>
                </links>
                <links dimensionId="ed48052e-2c11-48a8-9407-c4854b163cb6">
                    <viewLinks type="LAST_LEVEL">
                        <toColumns name="phase"/>
                    </viewLinks>
                </links>
                <links dimensionId="b545bf65-ec47-4267-a4f1-a8df35096bc4">
                    <viewLinks type="RANGE_FROM_TO">
                        <toColumns name="start"/>
                        <toColumns name="end"/>
                    </viewLinks>
                </links>
            </defaultFacts>
            <defaultFacts measureGroupName="Facts - delta" partitioningLevelName="" partitioningType="NONE" newGeneration="true" dataTableId="aea29582-84e2-4ef4-a169-5d9549141ba6" aggregateDataSourceFacts="false" unresolvedRowsBehavior="ERROR">
                <rowFactAggregationType>ADD_ROW</rowFactAggregationType>
                <measure name="# changes (based on delta)" aggregationType="SUM">
                    <rollupHierarchy></rollupHierarchy>
                    <dataColumn name="delta"/>
                    <cellProperties></cellProperties>
                    <emptyIsZero>false</emptyIsZero>
                </measure>
                <links dimensionId="0c4cf980-73d9-4c42-ae47-a300421c29a2">
                    <viewLinks type="LAST_LEVEL">
                        <toColumns name="chg"/>
                    </viewLinks>
                </links>
                <links dimensionId="ed48052e-2c11-48a8-9407-c4854b163cb6">
                    <viewLinks type="LAST_LEVEL">
                        <toColumns name="phase"/>
                    </viewLinks>
                </links>
                <links dimensionId="b545bf65-ec47-4267-a4f1-a8df35096bc4">
                    <viewLinks type="LAST_LEVEL">
                        <toColumns name="date"/>
                    </viewLinks>
                </links>
            </defaultFacts>
        </cube>
        <localization enabled="false"/>
        <script>
            <content>-- 
-- Automatically migrated from an old XML file definition format (v2.0.4 or before) 
-- 

-- 
-- Drop all calc. members, sets and functions declared at schema/cube levels 
-- 

DROP *


-- 
-- Functions 
-- 

-- 
-- Sets 
-- 

-- 
-- Calculated Measures/Members 
-- 

</content>
        </script>
    </schemaDefinition>
</schemaFactory>

两种解决方案都有效。

1) 对于范围解决方案,您需要在 时间维度 上添加一个使用 CLOSE aggregation 模式的度量,因为我们希望 'state' 作为任何时间段的最后一天。此外,使用范围时两个日期都包括在内,因此结束日期应为下一个存储桶开始前一天。

您可以使用 Sum or Eval instead of Aggregate。如果在同一查询中多次重复使用同一时间段作为缓存子多维数据集,则 Eval 会更快。

CREATE MEMBER [#changes ITD 2] as Eval( compactSet(NULL:[Time].[Time].currentMember) , ([Time].[Time].defaultMember,[Measures].[# changes (based on delta)]) )

2) 对于 Purple Frog one,我会使用 compactSet for the calculated member as without the calculated function will quickly degradated when getting more an more data. It's 365 days for each year, so if you've 10 years you'll have 3650 sums without de compactSet. With the compactSet, we can use it as the measure is additive,而不是 10 年,比如 9(年)+ 11(月)+ 31(天),很多在最坏的情况下更少。

使用哪一个?

1) 它使用更多的内存,但性能更快,而且非常稳定,因为我们使用的是周期值的最后一天。添加其他时间层次结构可能会产生一些意想不到的结果。

CREATE MEMBER [#changes ITD] as Aggregate( compactSet(NULL:[Time].[Time].currentMember) , [Measures].[# changes (based on delta)] )

2) 占用内存少,我们只节省了两点,但速度有点慢。

在两者上,我都会注意添加和使用其他时间层次结构和时间维度可能会产生一些 'strange' 结果。

这里是更新后的架构(包括 [#changes ITD] 定义)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<schemaFactory revisionNumber="11">
    <schemaDefinition name="Phases - ranged dimension II" description="issue description Whosebug" group="Whosebug" loadOnStartup="false">
        <activateIncrementalLoad>false</activateIncrementalLoad>
        <useUnknownMembersInFacts>false</useUnknownMembersInFacts>
        <autoCleanUpTableColumns>false</autoCleanUpTableColumns>
        <useFactPartitioning>false</useFactPartitioning>
        <callGarbageCollector>NONE</callGarbageCollector>
        <backup>NONE</backup>
        <nonEmptyCachePolicy>NONE</nonEmptyCachePolicy>
        <nonEmptyCacheType>REGULAR</nonEmptyCacheType>
        <nonEmptyCachePersistency>MEMORY</nonEmptyCachePersistency>
        <storagePolicy>DEFAULT</storagePolicy>
        <hierarchyUniqueNameStyle>IncludeDimensionName</hierarchyUniqueNameStyle>
        <inMemoryDS name="manual">
            <memoryDataTable tableName="facts" rowLimit="-1" id="c41cc2b5-1412-4da1-8e0e-3bd1b07e9d66">
                <column name="start" tableType="STRING" type="DATE" selected="true" primaryKey="false" nullObjectAsString=""/>
                <column name="end" tableType="STRING" type="DATE" selected="true" primaryKey="false" nullObjectAsString=""/>
                <column name="phase" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
                <column name="chg" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
                <column name="#changes" tableType="STRING" type="INTEGER" selected="true" primaryKey="false" nullObjectAsString=""/>
                <addRowNumber>false</addRowNumber>
                <stringDateConverter>d MMM, yyyy</stringDateConverter>
                <stringDateConverterLocale>en</stringDateConverterLocale>
                <trimStrings>true</trimStrings>
                <columnSeparator>;</columnSeparator>
                <commentMarker>#</commentMarker>
                <dataAsString>start;end;phase;chg;#changes
1 January, 2018;31 January, 2018; a;chg001;1
1 February, 2018;4 March, 2018;b;chg001;1
5 March, 2018;19 March, 2018;c;chg001;1
20 March, 2018;19 March, 2018;d;chg001;1
20 March, 2018;2 June, 2018;e;chg001;1
</dataAsString>
            </memoryDataTable>
            <memoryDataTable tableName="phases" rowLimit="-1" id="b24aaebb-7ce3-42a9-bab0-a54bc4c4b896">
                <column name="phase" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
                <addRowNumber>false</addRowNumber>
                <stringDateConverter></stringDateConverter>
                <trimStrings>true</trimStrings>
                <columnSeparator>,</columnSeparator>
                <commentMarker>#</commentMarker>
                <dataAsString>phase
a
b
c
d
e
</dataAsString>
            </memoryDataTable>
            <memoryDataTable tableName="changes" rowLimit="-1" id="8ba9aaca-0d93-49b1-851f-4f325e05bbbe">
                <column name="chg" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
                <addRowNumber>false</addRowNumber>
                <stringDateConverter></stringDateConverter>
                <trimStrings>true</trimStrings>
                <columnSeparator>;</columnSeparator>
                <commentMarker>#</commentMarker>
                <dataAsString>chg
chg001
chg002
chg003</dataAsString>
            </memoryDataTable>
            <memoryDataTable tableName="facts - delta" rowLimit="-1" id="aea29582-84e2-4ef4-a169-5d9549141ba6">
                <column name="date" tableType="STRING" type="DATE" selected="true" primaryKey="false" nullObjectAsString=""/>
                <column name="phase" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
                <column name="chg" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
                <column name="delta" tableType="STRING" type="INTEGER" selected="true" primaryKey="false" nullObjectAsString=""/>
                <addRowNumber>false</addRowNumber>
                <stringDateConverter>d MMM, yyyy</stringDateConverter>
                <stringDateConverterLocale>en</stringDateConverterLocale>
                <trimStrings>true</trimStrings>
                <columnSeparator>;</columnSeparator>
                <commentMarker>#</commentMarker>
                <dataAsString>date;phase;chg;delta
1 January, 2018;a;chg001;1
1 February, 2018;b;chg001;1
5 March, 2018;c;chg001;1
20 March, 2018;d;chg001;1
20 March, 2018;e;chg001;1
1 February, 2018;a;chg001; -1
5 March, 2018;b;chg001;-1
20 March, 2018;c;chg001;-1
20 March, 2018;d;chg001;-1
13 June, 2018;e;chg001;-1
</dataAsString>
            </memoryDataTable>
        </inMemoryDS>
        <multiLevelDimension dataTableId="8ba9aaca-0d93-49b1-851f-4f325e05bbbe" isTimeDimension="false" isDefaultTimeDimension="false" isIndexingByRange="false" id="0c4cf980-73d9-4c42-ae47-a300421c29a2" name="Change">
            <multiLevelHierarchy hasAllLevel="true" allLevelName="All-Level" allMemberName="All" name="Change" isDefault="true">
                <level name="change" nameUnique="false" nameUniqueInParent="false" keyUnique="false" ignoreNameCollision="false">
                    <nameCol name="chg"/>
                    <orderType>BY_NAME</orderType>
                    <orderKind>ASC</orderKind>
                </level>
            </multiLevelHierarchy>
        </multiLevelDimension>
        <multiLevelDimension dataTableId="b24aaebb-7ce3-42a9-bab0-a54bc4c4b896" isTimeDimension="false" isDefaultTimeDimension="false" isIndexingByRange="false" id="ed48052e-2c11-48a8-9407-c4854b163cb6" name="Phase">
            <multiLevelHierarchy hasAllLevel="true" allLevelName="All-Level" allMemberName="All" name="Phase" isDefault="true">
                <level name="phase" nameUnique="false" nameUniqueInParent="false" keyUnique="false" ignoreNameCollision="false">
                    <nameCol name="phase"/>
                    <orderType>BY_NAME</orderType>
                    <orderKind>ASC</orderKind>
                </level>
            </multiLevelHierarchy>
        </multiLevelDimension>
        <timeWizardDimension isDefaultTimeDimension="false" isIndexingByRange="true" from="2018-06-01T00:00:00.000" to="2018-07-31T00:00:00.000" dataTableId="c41cc2b5-1412-4da1-8e0e-3bd1b07e9d66" unknownMemberName="" id="b545bf65-ec47-4267-a4f1-a8df35096bc4" name="Time">
            <timeHierarchy hasAllLevel="true" allLevelName="All-L" allMemberName="All-M" name="Time" isDefault="true" defaultMemberName="">
                <factAggregationType>MEMBER_AND_ANCESTORS</factAggregationType>
                <level name="Year" type="YEAR">
                    <useRelativeKey>false</useRelativeKey>
                </level>
                <level name="Month" type="MONTH" nameFormat="">
                    <useRelativeKey>false</useRelativeKey>
                </level>
                <level name="Day" type="DAY" nameFormat="">
                    <useRelativeKey>false</useRelativeKey>
                </level>
            </timeHierarchy>
            <timeWizardColumn name="start"/>
        </timeWizardDimension>
        <cube id="b9aceb66-c3dc-4d20-9f74-1ada8769cf75" name="Changes" description="">
            <defaultFacts measureGroupName="Facts" partitioningLevelName="" partitioningType="NONE" newGeneration="true" dataTableId="c41cc2b5-1412-4da1-8e0e-3bd1b07e9d66" aggregateDataSourceFacts="false" unresolvedRowsBehavior="ERROR">
                <rowFactAggregationType>ADD_ROW</rowFactAggregationType>
                <measure name="# changes" aggregationType="SUM">
                    <rollupHierarchy></rollupHierarchy>
                    <dataColumn name="#changes"/>
                    <cellProperties></cellProperties>
                    <emptyIsZero>false</emptyIsZero>
                </measure>
                <measure name="# changes close" aggregationType="CLOSE">
                    <rollupHierarchy>[Time].[Time]</rollupHierarchy>
                    <dataColumn name="#changes"/>
                    <cellProperties></cellProperties>
                    <emptyIsZero>false</emptyIsZero>
                </measure>
                <links dimensionId="0c4cf980-73d9-4c42-ae47-a300421c29a2">
                    <viewLinks type="LAST_LEVEL">
                        <toColumns name="chg"/>
                    </viewLinks>
                </links>
                <links dimensionId="ed48052e-2c11-48a8-9407-c4854b163cb6">
                    <viewLinks type="LAST_LEVEL">
                        <toColumns name="phase"/>
                    </viewLinks>
                </links>
                <links dimensionId="b545bf65-ec47-4267-a4f1-a8df35096bc4">
                    <viewLinks type="RANGE_FROM_TO">
                        <toColumns name="start"/>
                        <toColumns name="end"/>
                    </viewLinks>
                </links>
            </defaultFacts>
            <defaultFacts measureGroupName="Facts - delta" partitioningLevelName="" partitioningType="NONE" newGeneration="true" dataTableId="aea29582-84e2-4ef4-a169-5d9549141ba6" aggregateDataSourceFacts="false" unresolvedRowsBehavior="ERROR">
                <rowFactAggregationType>ADD_ROW</rowFactAggregationType>
                <measure name="# changes (based on delta)" aggregationType="SUM">
                    <rollupHierarchy></rollupHierarchy>
                    <dataColumn name="delta"/>
                    <cellProperties></cellProperties>
                    <emptyIsZero>false</emptyIsZero>
                </measure>
                <links dimensionId="0c4cf980-73d9-4c42-ae47-a300421c29a2">
                    <viewLinks type="LAST_LEVEL">
                        <toColumns name="chg"/>
                    </viewLinks>
                </links>
                <links dimensionId="ed48052e-2c11-48a8-9407-c4854b163cb6">
                    <viewLinks type="LAST_LEVEL">
                        <toColumns name="phase"/>
                    </viewLinks>
                </links>
                <links dimensionId="b545bf65-ec47-4267-a4f1-a8df35096bc4">
                    <viewLinks type="LAST_LEVEL">
                        <toColumns name="date"/>
                    </viewLinks>
                </links>
            </defaultFacts>
        </cube>
        <localization enabled="false"/>
        <script>
            <content>-- 
-- Automatically migrated from an old XML file definition format (v2.0.4 or before) 
-- 

-- 
-- Drop all calc. members, sets and functions declared at schema/cube levels 
-- 

DROP *


-- 
-- Functions 
-- 

-- 
-- Sets 
-- 

-- 
-- Calculated Measures/Members 
-- 

CREATE MEMBER [#changes ITD] as Aggregate( compactSet(NULL:[Time].[Time].currentMember) , [Measures].[# changes (based on delta)] )</content>
        </script>
    </schemaDefinition>
</schemaFactory>