Фильтрация многомерных выражений по свойству члена в SAP BW - PullRequest
0 голосов
/ 12 августа 2011

Я пытаюсь отфильтровать элементы по оси по их имени или уникальному имени и не могу получить MDX ниже, работая над SAP BW (поверх XMLA).

SELECT 
{Filter([Z_PRODUCT].AllMembers, ([Z_PRODUCT].CurrentMember.Properties("MEMBER_NAME") = ""))} 
DIMENSION PROPERTIES MEMBER_NAME on COLUMNS, 
{} on ROWS FROM [BASIS_PS/OPPLEV099]

Я пытался использовать ... CurrentMember.Propreties ("MEMBER_UNIQUE_NAME") или ... CurrentMember.UniqueName в фильтре, но ни один из них не работал. Возвращенная ошибка:

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
                     SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
  <SOAP-ENV:Fault>
   <faultcode>XMLAnalysisError.0x80000005</faultcode>
   <faultstring>The XML for Analysis provider encountered an error</faultstring>
   <faultactor>XML for Analysis Provider</faultactor>
   <detail>
     <Error ErrorCode="2147483653" Description="
Invalid MDX command with <member>.properties( <string> )" Source="XML for Analysis     Provider" HelpFile="" />
   </detail>
  </SOAP-ENV:Fault>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Я использую это так в MS Analysis Services, и это всегда работает.

Есть идеи?

1 Ответ

0 голосов
/ 12 августа 2011

Никогда не работал с SAP BW, можете попробовать эту другую версию:

SELECT 
 {Filter([Z_PRODUCT].AllMembers, [Z_PRODUCT].CurrentMember.Name = "" )} DIMENSION PROPERTIES MEMBER_NAME on COLUMNS, 
 {} on ROWS
FROM [BASIS_PS/OPPLEV099]

Вы можете напрямую использовать Name, UniqueName после точки, это «очень» стандарт MDX. Я также удалил enclosing (), так как функция MDX Filter ожидает логическое выражение. И я не уверен, что есть (правда) в MDX.

Немного странно, что пустая строка для строк не так ли?

...