Hi everyone.
I'm trying to implement a couple of degenerate dimensions on Mondrian 4 but haven't been able to do it. The docs still have the "old" way.
This is my Mondrian 3 schema that works fine:
Code:
<Schema name="cvdelop">
<Cube name="Sales" visible="true" cache="true" enabled="true">
<Table name="sales" schema="public" alias="">
</Table>
<Dimension type="StandardDimension" visible="true" foreignKey="store" name="Store">
<Hierarchy name="Store" visible="true" hasAll="true">
<Level name="Store" visible="true" column="store" uniqueMembers="false">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" visible="true" foreignKey="city" name="City">
<Hierarchy name="City" visible="true" hasAll="true">
<Level name="City" visible="true" column="city" uniqueMembers="false">
</Level>
</Hierarchy>
</Dimension>
<Measure name="Units Sold" column="unitssold" aggregator="sum" visible="true">
</Measure>
</Cube>
</Schema>
But when I try to do something similar on 4 it gave me this error:
mondrian.rolap.RolapSchema$MondrianSchemaException: table must be specified (in Attribute 'City') (at line 0, column 215)
at mondrian.rolap.RolapSchemaLoaderHandlerImpl.error(RolapSchemaLoaderHandlerImpl.java:117)
at mondrian.rolap.RolapSchemaLoader.createColumnList(RolapSchemaLoader.java:3999)
at mondrian.rolap.RolapSchemaLoader.createAttribute(RolapSchemaLoader.java:3397)
at mondrian.rolap.RolapSchemaLoader.getOrCreateDimension(RolapSchemaLoader.java:2724)
at mondrian.rolap.RolapSchemaLoader.createCube(RolapSchemaLoader.java:1563)
at mondrian.rolap.RolapSchemaLoader.loadStage2(RolapSchemaLoader.java:420)
at mondrian.rolap.RolapSchemaLoader.loadStage1(RolapSchemaLoader.java:336)
The Mondrian 4 schema is this one:
Code:
<?xml version='1.0'?>
<Schema name='cdvelop' metamodelVersion='4.0'>
<PhysicalSchema>
<Table name='sales' />
</PhysicalSchema>
<Cube name='Sales'>
<Dimensions>
<Dimension name='City' key='City'>
<Attributes>
<Attribute name='City' keyColumn='city' hasHierarchy='false'/>
</Attributes>
<Hierarchies>
<Hierarchy name="City" hasAll="true">
<Level attribute="City"/>
</Hierarchy>
</Hierarchies>
</Dimension>
<Dimension name='Store' key='Store'>
<Attributes>
<Attribute name='Store' keyColumn='store' hasHierarchy='false'/>
</Attributes>
<Hierarchies>
<Hierarchy name="Store" hasAll="true">
<Level attribute="Store"/>
</Hierarchy>
</Hierarchies>
</Dimension>
</Dimensions>
<MeasureGroups>
<MeasureGroup name='Sales' table='sales'>
<Measures>
<Measure name='Units sold' column='unitssold' aggregator='sum' formatString='#,###'/>
</Measures>
<DimensionLinks>
<ForeignKeyLink dimension='City' foreignKeyColumn='city'/>
<ForeignKeyLink dimension='Store' foreignKeyColumn='store'/>
</DimensionLinks>
</MeasureGroup>
</MeasureGroups>
</Cube>
</Schema>
Any idea?