2015-11-06 153 views
0

我在mondrian模式中有以下維度。蒙德里安創建連接說mondrian中的多層次結構說沒有找到層次結構

mondrian.olap.MondrianException:蒙德里安錯誤:內部錯誤:層次「[產品]」未找到

<Dimension name="Product" foreignKey="item_id"> 
    <Hierarchy hasAll="true" primaryKey="item_code" primaryKeyTable="m_item_master"> 
     <Join leftKey="item_code" rightKey="item_code"> 
      <Table name="m_item_master"/> <!--dummy_master--> <!--m_item_master--> 
      <Table name="m_item_relation"/> 
     </Join> 
     <Level name="Department" table="m_item_relation" column="department"/> 
     <Level name="Class" table="m_item_relation" column="category"/> 
     <Level name="Item" table="m_item_master" column="item_code" ordinalColumn="item_code" nameColumn="name" uniqueMembers="true" type="Numeric"/> 
    </Hierarchy> 

    <Hierarchy name="Base Item" hasAll="false" primaryKey="item_code" primaryKeyTable="m_item_master"> 
     <Join leftKey="item_code" rightKey="item_code"> 
      <Table name="m_item_master"/> <!--dummy_master--> <!--m_item_master--> 
      <Table name="m_item_relation"/> 
     </Join> 
     <Level name="Department" table="m_item_relation" column="department" captionColumn="department"/> 
     <Level name="Item" table="m_item_master" column="item_code" ordinalColumn="item_code" nameColumn="name" uniqueMembers="true" captionColumn="name" type="Numeric"/> 
     <Property name="Price" table="m_item_master" column="price" /> 
    </Hierarchy> 
</Dimension> 

我使用蒙德里安-4.0.0-快照版本,並試圖與最新的mondrian 4.2.0.0-204版本一樣。

注意: 此外,我在mondrian連接創建本身時出現此錯誤。所以它不涉及任何傳遞給它的MDX查詢。

回答

0

好的。這是我發現的錯誤。澄清,蒙德里安確實支持多層次,但對於上述模式,我們似乎有與關聯的角色不同的問題。

<Role name="myrole"> 
    <SchemaGrant access="none"> 
     <CubeGrant cube="Transaction" access="all"> 
      <HierarchyGrant hierarchy="[Product]" access="custom" rollupPolicy="partial"> 
       <MemberGrant member="[Product].[Cottage Foods]" access="all"/> 
       <MemberGrant member="[Product].[Vegetables]" access="all"/> 
       .... 
      </HierarchyGrant> 
      .... 
     </CubeGrant> 
    </SchemaGrant> 
</Role> 

在上面的作用,雖然默認層次結構發生在蒙德里安維的名字,我們爲[Dimension.Hierarchy]中的角色,但不只是層次的名字,如果你有內部的多個層次指定它們尺寸。在我們的情況下,它應該如下。

<Role name="myrole"> 
    <SchemaGrant access="none"> 
     <CubeGrant cube="Transaction" access="all"> 
      <HierarchyGrant hierarchy="[Product.Product]" access="custom" rollupPolicy="partial"> 
       <MemberGrant member="[Product.Product].[Cottage Foods]" access="all"/> 
       <MemberGrant member="[Product.Product].[Vegetables]" access="all"/> 
       .... 
      </HierarchyGrant> 
      .... 
     </CubeGrant> 
    </SchemaGrant> 
</Role> 

這就解決了上述問題。