2016-09-18 1 views
2

Lorsque je lance la requête MDX comme:Comment surmonter l'erreur de requêtes MDX quand il ne peut pas trouver l'entité spécifique

select {[Measures].[all_accounts]} ON COLUMNS, 

{{[Country].[Country].[Country].&[italy]}* 
{[TD].[TD].[date].&[2016-09-02T03:00:00.000]:[TD].[TD].[date].&[2016-09-02T03:08:00.000]}, 
{[Country].[Country].[Country].&[Germany]}* 
{[TD].[TD].[date].&[2016-08-16T04:00:00.000]:[TD].[TD].[date].&[2016-08-16T04:03:00.000]}} 

ON ROWS 

FROM [cube] 

je reçois une erreur, car « Italie » est pas une entité trouvée dans la dimension Pays. et aucun résultat ne revient. Je veux pouvoir lancer le mdx sans nécessairement connaître les noms des entités dans la dimension et récupérer un résultat uniquement pour ceux qui existent. dans cet exemple "Allemagne". comment puis-je surmonter ce problème?

+0

Ce n'est pas un problème en majuscules/minuscules (clés sont sensibles à la casse)? &[Italie] ? – ic3

Répondre

1

Vous pouvez modifier la configuration du serveur, icCube.xml, pour convertir les membres non trouvés en null (c'est risqué).

icCube.mdxEvalUnknownMemberError

Si vous ne voulez pas modifier ce paramètre pour l'ensemble du serveur, vous pouvez utiliser une annotation à chaque requête MDX. Par exemple, la requête suivante ne retournera rien pour le & manquant [_FR] Membre:

//#prop(icCube.mdxEvalUnknownMemberError = false) 
select { 
    [Geography].[Geo].[Country].&[FR_], 
    [Geography].[Geo].[Country].&[US] 
} on 0 from [Sales] 
0

Pas une réponse très positive J'ai peur, mais si vous utilisez des noms uniques de membres tels que [Country].[Country].[Country].&[italy] dans un script, alors vous obtiendrez une erreur si ce membre n'est pas dans le cube ... Je ne crois pas qu'il y ait une solution de contournement.

Je dois ajouter que cette 'limitation' ne m'a jamais causé de problème.

+0

Merci pour la réponse. même si je dois encore trouver une solution :) –