[Mondrian] RE: Excel 2007 Support

Calum Miller calum at millersoft.ltd.uk
Sat Jan 23 10:26:26 EST 2010


Hi Julian
I have made a wee change to getPros to return the last segment of the  
property name. Also two other small changes  
(XmlaHandler.writeHierarchyInfo and XmlaHandler. writeMember) to  
display encoded properties. I have also removed now redundant code  
from XmlaHandler. writeMember,

These changes were made to the mondrian 3.2 branch
I had to update the Excel2007 test as the xml formatting of the result  
changed...odd

I tested these changed manually in Excel 2007 and they work fine. I  
also reran the full Mondrian test suite against MySQL, the properties  
issues are listed below. Had I direct access to the repository then  
I'd have fixed these tests for you ;-)


      [java] 1)  
testExecuteSlicerJson 
(mondrian.xmla.XmlaBasicTest)java.lang.AssertionError: Ended an  
element, but in sequence Member
      [java] 	at  
mondrian.xmla.impl.JsonSaxWriter.endElement(JsonSaxWriter.java:135)
      [java] 	at mondrian.xmla.XmlaHandler.execute(XmlaHandler.java:713)
      [java] 	at mondrian.xmla.XmlaHandler.process(XmlaHandler.java:551)
      [java] 	at mondrian.tui.XmlaSupport.processXmla(XmlaSupport.java: 
877)
      [java] 	at mondrian.tui.XmlaSupport.processXmla(XmlaSupport.java: 
828)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.doTestsJson(XmlaBaseTestCase.java:611)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.doTestInline(XmlaBaseTestCase.java:456)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.doTest(XmlaBaseTestCase.java:421)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.doTest(XmlaBaseTestCase.java:410)
      [java] 	at  
mondrian.xmla.XmlaBasicTest.testExecuteSlicerJson(XmlaBasicTest.java: 
610)
      [java] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native  
Method)
      [java] 	at  
sun 
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 
39)
      [java] 	at  
sun 
.reflect 
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 
25)
      [java] 	at mondrian.test.MondrianTestRunner 
$2.run(MondrianTestRunner.java:139)
      [java] 	at java.lang.Thread.run(Thread.java:637)
      [java] There were 5 failures:
      [java] 1)  
testExecuteWithMemberKeyDimensionPropertyForMemberWithKey 
(mondrian.xmla.XmlaBasicTest)junit.framework.ComparisonFailure:  
expected:<...                   <[Customers>Alice Cantrell</Customers>
      [java]                                     <Customers>F</ 
Customers>
      [java]                                     <Customers>M</ 
Customers>
      [java]                                     <Customers>Partial  
College</Customers>
      [java]                                     <Customers>$30K -  
$50K</Customers>
      [java]                                     <]/Member>
      [java]            ...> but was:<...                   <[]/Member>
      [java]            ...>
      [java] 	at  
mondrian.test.DiffRepository.assertEquals(DiffRepository.java:516)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.validate(XmlaBaseTestCase.java:147)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.doTests(XmlaBaseTestCase.java:588)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.doTestInline(XmlaBaseTestCase.java:475)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.doTest(XmlaBaseTestCase.java:421)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.doTest(XmlaBaseTestCase.java:410)
      [java] 	at  
mondrian 
.xmla 
.XmlaBasicTest 
.testExecuteWithMemberKeyDimensionPropertyForMemberWithKey 
(XmlaBasicTest.java:665)
      [java] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native  
Method)
      [java] 	at  
sun 
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 
39)
      [java] 	at  
sun 
.reflect 
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 
25)
      [java] 	at mondrian.test.MondrianTestRunner 
$2.run(MondrianTestRunner.java:139)
      [java] 	at java.lang.Thread.run(Thread.java:637)
      [java] 2)  
testExecuteWithKeyDimensionProperty 
(mondrian.xmla.XmlaBasicTest)junit.framework.ComparisonFailure:  
expected:<...                   <[Customers>Alice Cantrell</Customers>
      [java]                                     <Customers>F</ 
Customers>
      [java]                                     <Customers>M</ 
Customers>
      [java]                                     <Customers>Partial  
College</Customers>
      [java]                                     <Customers>$30K -  
$50K</Customers>
      [java]                                     <]/Member>
      [java]            ...> but was:<...                   <[]/Member>
      [java]            ...>
      [java] 	at  
mondrian.test.DiffRepository.assertEquals(DiffRepository.java:516)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.validate(XmlaBaseTestCase.java:147)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.doTests(XmlaBaseTestCase.java:588)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.doTestInline(XmlaBaseTestCase.java:475)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.doTest(XmlaBaseTestCase.java:421)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.doTest(XmlaBaseTestCase.java:410)
      [java] 	at  
mondrian 
.xmla 
.XmlaBasicTest.testExecuteWithKeyDimensionProperty(XmlaBasicTest.java: 
681)
      [java] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native  
Method)
      [java] 	at  
sun 
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 
39)
      [java] 	at  
sun 
.reflect 
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 
25)
      [java] 	at mondrian.test.MondrianTestRunner 
$2.run(MondrianTestRunner.java:139)
      [java] 	at java.lang.Thread.run(Thread.java:637)
      [java] 3)  
test24 
(mondrian.xmla.XmlaExcelXPTest)junit.framework.ComparisonFailure:  
expected:<...                   <[Store>Deluxe Supermarket</Store>
      [java]                                     <Store>Inmon</Store>
      [java]                                     <Store>27694</Store>
      [java]                                     <Store>18670</Store>
      [java]                                     <Store>5415</Store>
      [java]                                     <Store>3610</Store>
      [java]                                     <Store>1</Store>
      [java]                                     <Store>5179 Valley  
Ave</Store>
      [java]                                     <]/Member>
      [java]            ...> but was:<...                   <[]/Member>
      [java]            ...>
      [java] 	at  
mondrian.test.DiffRepository.assertEquals(DiffRepository.java:516)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.validate(XmlaBaseTestCase.java:147)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.doTest(XmlaBaseTestCase.java:166)
      [java] 	at  
mondrian.xmla.XmlaBaseTestCase.helperTest(XmlaBaseTestCase.java:238)
      [java] 	at  
mondrian.xmla.XmlaExcelXPTest.test24(XmlaExcelXPTest.java:151)
      [java] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native  
Method)
      [java] 	at  
sun 
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 
39)
      [java] 	at  
sun 
.reflect 
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 
25)
      [java] 	at mondrian.test.MondrianTestRunner 
$2.run(MondrianTestRunner.java:139)
      [java] 	at java.lang.Thread.run(Thread.java:637)



-------------- next part --------------
A non-text attachment was scrubbed...
Name: XmlaExcel2007Test.ref.xml
Type: text/xml
Size: 39801 bytes
Desc: not available
Url : http://lists.pentaho.org/pipermail/mondrian/attachments/20100123/6ff04a71/attachment.xml 
-------------- next part --------------


-------------- next part --------------
A non-text attachment was scrubbed...
Name: XmlaHandler.java
Type: application/octet-stream
Size: 119872 bytes
Desc: not available
Url : http://lists.pentaho.org/pipermail/mondrian/attachments/20100123/6ff04a71/attachment.obj 
-------------- next part --------------

On 19 Jan 2010, at 18:42, Julian Hyde wrote:

>> Calum Miller wrote:
>>
>> I think the getProps function returns the wrong values when
>> HierachyInfo is  generated. I will not get another chance to review
>> this function until Wednesday evening.
>>
>>             <HierarchyInfo name="Store">
>>               <UName name="[Store].[MEMBER_UNIQUE_NAME]"/>
>>               <Caption name="[Store].[MEMBER_CAPTION]"/>
>>               <LName name="[Store].[LEVEL_UNIQUE_NAME]"/>
>>               <LNum name="[Store].[LEVEL_NUMBER]"/>
>>               <DisplayInfo name="[Store].[DISPLAY_INFO]"/>
>>               <PARENT_UNIQUE_NAME
>> name="[Store].[PARENT_UNIQUE_NAME]"
>> type="xsd:string"/>
>>               <Store name="[Store].[Store]" type="xsd:string"/>
>>               <Store name="[Store].[Store]" type="xsd:string"/>
>>               <Store name="[Store].[Store]" type="xsd:string"/>
>>               <Store name="[Store].[Store]" type="xsd:string"/>
>>               <Store name="[Store].[Store]" type="xsd:string"/>
>>               <Store name="[Store].[Store]" type="xsd:string"/>
>>               <Store name="[Store].[Store]" type="xsd:string"/>
>>               <Store name="[Store].[Store]" type="xsd:string"/>
>>             </HierarchyInfo>
>
> Yes, I think you're right. HierarchyInfo needs to define the element  
> names
> that will be used in the actual result set, and define how they map  
> onto
> properties.
>
> Julian
>
> _______________________________________________
> Mondrian mailing list
> Mondrian at pentaho.org
> http://lists.pentaho.org/mailman/listinfo/mondrian





More information about the Mondrian mailing list