PDA

View Full Version : Como utilizar NameExpression



j_nep
10-29-2009, 07:22 AM
He intentado mapear valores de una tabla para mostrar los members en el cubo con el nombre deseado, pero no lo logro.
He utilizado NameExpression de la siguiente forma:


<Hierarchy name="All Status" hasAll="true" allMemberName="All Status" primaryKey="status_tk" caption="Status">
<Table name="dim_status">
</Table>
<Level name="Status" column="flag" type="String" uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
<NameExpression>
<SQL dialect="mysql">
CASE WHEN dim_status.flag = 'Y' THEN 'Started' ELSE 'Ended' END
</SQL>
<SQL dialect="generic">
(case when dim_status.flag = 'Y' then 'Started' else 'Ended' end)
</SQL>
</NameExpression>
</Level>
</Hierarchy>
</Dimension>

Alguna sugerencia?

eoviedo
10-29-2009, 08:54 AM
... prueba:

<Hierarchy name="All Status" hasAll="true" allMemberName="All Status" primaryKey="status_tk" caption="Status">
<Table name="dim_status">
</Table>
<Level name="Status" column="flag" type="String" uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
<KeyExpression>
<SQL dialect="generic">
(CASE WHEN dim_status.flag = 'Y' THEN 'Started' ELSE 'Ended' END)
</SQL>
</KeyExpression>
</Level>
</Hierarchy>
</Dimension>

j_nep
10-30-2009, 06:02 AM
Muchísimas gracias!! Funciona perfectamente.
En la web leí:

<NameExpression> SQL expression used to compute the name of a member, in lieu of Level.nameColumn.y pensé que era el adecuado para calcular el nombre del member.

Hay que cambiar algunos ficheros de configuración para que en vez de <SQL dialect="generic"> sea <SQL dialect="mysql"> ?¿ ayer estuve leyendo sobre modificación de web.xml, datasources.xml y mondrian.properties?
Son estos los ficheros que hay que modificar?

Gracias :)

jnegreira
04-09-2012, 01:42 PM
En mi caso, para una CaptionExpression, directamente he usado el dialect de MySQL, sin tocar ninguna configuración.

Teniendo en consideración que la conexión la realizo contra un servidor MySQL, por supuesto.