This is a migrated thread and some comments may be shown as answers.

Loop discovering dimensions

5 Answers 90 Views
PivotGrid
This is a migrated thread and some comments may be shown as answers.
Walter
Top achievements
Rank 1
Walter asked on 06 Mar 2015, 02:39 AM
We're trying to integrate PivotGrid with the XML/A server we use, Mondrian. Drill-down works fine, however there's a problem when PivotGrid needs to discover the dimensions/hierarchies. See the screenshot, PivotGrid enters into a loop when the user double-clicks on the dimensions to see the hierarchy and its levels. The screenshot also shows that the drill-down executes correctly discovering the levels.

Tracing on Mondrian side, we see that when the user initially double clicks on the dimension, PivotGrid sends a request to discover the hierarchies:

<?xml version="1.0" encoding="UTF-8"?>
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
   <Header />
   <Body>
      <Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
         <RequestType>MDSCHEMA_HIERARCHIES</RequestType>
         <Restrictions>
            <RestrictionList>
               <CATALOG_NAME>FoodMart</CATALOG_NAME>
               <CUBE_NAME>Sales</CUBE_NAME>
               <DIMENSION_UNIQUE_NAME>[Product]</DIMENSION_UNIQUE_NAME>
            </RestrictionList>
         </Restrictions>
         <Properties>
            <PropertyList>
               <Catalog>FoodMart</Catalog>
            </PropertyList>
         </Properties>
      </Discover>
   </Body>
</Envelope>

Mondrian responds with the (one or more) hierarchies, but PivotGrid reiterates the same MDSCHEMA_HIERARCHIES request on and on. Mondrian never receives a MDSCHEMA_LEVELS request.


Please see below Mondrian's response to the MDSCHEMA_HIERARCHIES requests. Please let us know if you need further information.


Thanks
Walter




  <?xml version="1.0" encoding="ISO-8859-1"?>
  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >
  <SOAP-ENV:Header>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
  <cxmla:DiscoverResponse xmlns:cxmla="urn:schemas-microsoft-com:xml-analysis">

    <cxmla:return>

      <root xmlns="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:EX="urn:schemas-microsoft-com:xml-analysis:exception">

        <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sql="urn:schemas-microsoft-com:xml-sql" targetNamespace="urn:schemas-microsoft-com:xml-analysis:rowset" elementFormDefault="qualified">

          <xsd:element name="root">

            <xsd:complexType>

              <xsd:sequence>

                <xsd:element name="row" type="row" minOccurs="0" maxOccurs="unbounded"/>

              </xsd:sequence>

            </xsd:complexType>

          </xsd:element>

          <xsd:simpleType name="uuid">

            <xsd:restriction base="xsd:string">

              <xsd:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"/>

            </xsd:restriction>

          </xsd:simpleType>

          <xsd:complexType name="row">

            <xsd:sequence>

              <xsd:element sql:field="CATALOG_NAME" name="CATALOG_NAME" type="xsd:string" minOccurs="0"/>

              <xsd:element sql:field="SCHEMA_NAME" name="SCHEMA_NAME" type="xsd:string" minOccurs="0"/>

              <xsd:element sql:field="CUBE_NAME" name="CUBE_NAME" type="xsd:string"/>

              <xsd:element sql:field="DIMENSION_UNIQUE_NAME" name="DIMENSION_UNIQUE_NAME" type="xsd:string"/>

              <xsd:element sql:field="HIERARCHY_NAME" name="HIERARCHY_NAME" type="xsd:string"/>

              <xsd:element sql:field="HIERARCHY_UNIQUE_NAME" name="HIERARCHY_UNIQUE_NAME" type="xsd:string"/>

              <xsd:element sql:field="HIERARCHY_GUID" name="HIERARCHY_GUID" type="uuid" minOccurs="0"/>

              <xsd:element sql:field="HIERARCHY_CAPTION" name="HIERARCHY_CAPTION" type="xsd:string"/>

              <xsd:element sql:field="DIMENSION_TYPE" name="DIMENSION_TYPE" type="xsd:short"/>

              <xsd:element sql:field="HIERARCHY_CARDINALITY" name="HIERARCHY_CARDINALITY" type="xsd:unsignedInt"/>

              <xsd:element sql:field="DEFAULT_MEMBER" name="DEFAULT_MEMBER" type="xsd:string" minOccurs="0"/>

              <xsd:element sql:field="ALL_MEMBER" name="ALL_MEMBER" type="xsd:string" minOccurs="0"/>

              <xsd:element sql:field="DESCRIPTION" name="DESCRIPTION" type="xsd:string" minOccurs="0"/>

              <xsd:element sql:field="STRUCTURE" name="STRUCTURE" type="xsd:short"/>

              <xsd:element sql:field="IS_VIRTUAL" name="IS_VIRTUAL" type="xsd:boolean"/>

              <xsd:element sql:field="IS_READWRITE" name="IS_READWRITE" type="xsd:boolean"/>

              <xsd:element sql:field="DIMENSION_UNIQUE_SETTINGS" name="DIMENSION_UNIQUE_SETTINGS" type="xsd:int"/>

              <xsd:element sql:field="DIMENSION_IS_VISIBLE" name="DIMENSION_IS_VISIBLE" type="xsd:boolean"/>

              <xsd:element sql:field="HIERARCHY_IS_VISIBLE" name="HIERARCHY_IS_VISIBLE" type="xsd:boolean"/>

              <xsd:element sql:field="HIERARCHY_ORDINAL" name="HIERARCHY_ORDINAL" type="xsd:unsignedInt"/>

              <xsd:element sql:field="DIMENSION_IS_SHARED" name="DIMENSION_IS_SHARED" type="xsd:boolean"/>

              <xsd:element sql:field="PARENT_CHILD" name="PARENT_CHILD" type="xsd:boolean" minOccurs="0"/>

              <xsd:element sql:field="LEVELS" name="LEVELS" minOccurs="0"/>

            </xsd:sequence>

          </xsd:complexType>

        </xsd:schema>

        <row>

          <CATALOG_NAME>FoodMart</CATALOG_NAME>

          <SCHEMA_NAME>FoodMart</SCHEMA_NAME>

          <CUBE_NAME>Sales</CUBE_NAME>

          <DIMENSION_UNIQUE_NAME>[Product]</DIMENSION_UNIQUE_NAME>

          <HIERARCHY_NAME>Product</HIERARCHY_NAME>

          <HIERARCHY_UNIQUE_NAME>[Product]</HIERARCHY_UNIQUE_NAME>

          <HIERARCHY_CAPTION>Product</HIERARCHY_CAPTION>

          <DIMENSION_TYPE>3</DIMENSION_TYPE>

          <HIERARCHY_CARDINALITY>2256</HIERARCHY_CARDINALITY>

          <DEFAULT_MEMBER>[Product].[All Products]</DEFAULT_MEMBER>

          <ALL_MEMBER>[Product].[All Products]</ALL_MEMBER>

          <DESCRIPTION>Sales Cube - Product Hierarchy</DESCRIPTION>

          <STRUCTURE>0</STRUCTURE>

          <IS_VIRTUAL>false</IS_VIRTUAL>

          <IS_READWRITE>false</IS_READWRITE>

          <DIMENSION_UNIQUE_SETTINGS>0</DIMENSION_UNIQUE_SETTINGS>

          <DIMENSION_IS_VISIBLE>true</DIMENSION_IS_VISIBLE>

          <HIERARCHY_IS_VISIBLE>true</HIERARCHY_IS_VISIBLE>

          <HIERARCHY_ORDINAL>6</HIERARCHY_ORDINAL>

          <DIMENSION_IS_SHARED>true</DIMENSION_IS_SHARED>

          <PARENT_CHILD>false</PARENT_CHILD>

        </row>

      </root>

    </cxmla:return>

  </cxmla:DiscoverResponse>
  </SOAP-ENV:Body>
  </SOAP-ENV:Envelope>


5 Answers, 1 is accepted

Sort by
0
Accepted
Georgi Krustev
Telerik team
answered on 10 Mar 2015, 08:38 AM
Hello Walter,

Thank you for the repro information. I was able to observe the issue locally and I believe that the unique name of the "Product" dimension (first level) is equal  to the "Product" child dimension (second level) unique name. In other words, the DIMENSION_UNIQUE_NAME of the first level member is equal to the HIERARCHY_UNIQUE_NAME of the second level member - both names are set to "[Product]". Hence the PivotConfigurator always finds the the first level member and requests its hierarchies. What you need to do is to set unique names to every member in order to avoid such issues.

As a side note, the name of the first level "Product" member is "[Product]" and the unique name of the second level "Product" member is "[Product].[Product]". You can examine the response in our online demos.

Regards,
Georgi Krustev
Telerik
 
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
 
0
Walter
Top achievements
Rank 1
answered on 11 Mar 2015, 04:16 AM
Thanks, assigning a different name to the hierarchy did the trick.

Now I can see that the levels cannot be dropped on the columns/rows (I see the same behavior in your online demo, so it's not an issue with Mondrian). Still, they are shown when the hierarchy tree is opened. Is there an option to allow to drop levels on columns/rows?
0
Georgi Krustev
Telerik team
answered on 12 Mar 2015, 09:26 AM
Hello Walter,

Currently, the PivotConfigurator does not control/restrict the treeview levels. If the cube returns any data as a result of the Discover request, then the widget will display it.

Regards,
Georgi Krustev
Telerik
 
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
 
0
Walter
Top achievements
Rank 1
answered on 12 Mar 2015, 01:54 PM
Thanks Georgi. Please look at the screenshot (taken from your online demo) the lower levels cannot be dropped to columns or rows.

For example, you may have the following levels for a "Store" dimension/hierarchy: Country/State/City/Zipcode; we cannot drop these levels into columns/rows. In other OLAP client tools these levels can be used to model cubes, you don't have to drill down from the top.

Also, if these levels cannot be dragged from the tree, why are you showing them?


Thanks
Walter
0
Georgi Krustev
Telerik team
answered on 16 Mar 2015, 08:26 AM
Hello Walter,

Currently, PivotConfigurator allows dragging only to elements that have children.

We will consider to enable this functionality in some of our next Kendo UI releases in order to allow more refined PivotGrid configuration.

Regards,
Georgi Krustev
Telerik
 
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
 
Tags
PivotGrid
Asked by
Walter
Top achievements
Rank 1
Answers by
Georgi Krustev
Telerik team
Walter
Top achievements
Rank 1
Share this question
or