Filter String with passed value

Hello eazyBI-Community,

how can i Filter a Dimension with a passed value? For example i want to filter the Dimension called “Pre-Integrations Stauses” if there is a specific Member which has a fixed format and goes like " $B2B_001_max_R:010? ". On top the digets “001” should be given from an other Dimension called “Customer Release” and is define as a Page in eazyBI so that the user can set individualy these 3 digets (For examplen he can chose between 001, 002, 003, … , 999 ).

I tried something like this:

Aggregate({
Filter([Pre-Integration Status].Members,
[Pre-Integration Status].CurrentMember.Name MATCHES ‘^. *B2B_. *_max_R:010$’
AND
)
})

My Problem is that eazyBi shows now all possible diggets. How can i implement a specific Selection instead of .* ? Is there a way to integrate " [Release Customer].CurrentMember " into the String-selection? And how can i deal with a $ Sign in my Sting? EazyBi uses $-sogn as a mark of the end of the String. How can i Filter also specific a String with a $-sign?

Thanks for your help.

Hi @Milos,

To get a particular part out of a string, you could use the ExtractString(…) function. The example in the documentation contains a static string, but you can pass any string as the first parameter in this function.

Nevertheless, having these two dimensions in Pages and selecting a member in first to dynamically construct the Aggregate in second will not work as smoothly as expected. At the very least, you would need to specify the execution order for these pages, and still, I cannot guarantee it will work.
This might work if you would have the Pre-Integration Status on rows and in a measure return, e.g., true or false when the name matches part of Filtered Page member name. Apply filter to the measure column and show only the rows where the result is true; you can remove the measure column once the filter is applied to it.

Another option is to use JavaScript calculated field to create a new consolidated dimension based on values in the two custom fields with similar strings in them.

Lauma / support@eazybi.com

Hello Lauma,

thank you for your respond. I tried to fix it with your advice but still there is a small part which doesnt work.
I tried the following code:

Aggregate({
Filter([Pre-Integration Status].Members,
ExtractString([Pre-Integration Status].[EE: R010-0].Name, ‘E2E_(\d+)’, 1) MATCHES [Release Customer].CurrentMember
)
})

In the Dimension [Pre-Integration Status] for Example are two Members. One is ‘E2E_214_E010-0’ and the other one is ‘E2E_216_E010-0’ . If i type into the first Parameter of ExtractString the string ‘E2E_214_E010-0’ than the result is correct and the Code is checking th String if there is a String ‘214’. But how can i not only check the Dimension for a specific String, but for all Members in this Dimension? I tried to implement this as [Pre-Integration Status].CurrentMember.Name or adress specific the Dimension with [Pre-Integration Status].[EE: R010-0].Name but i always got an error.
Is there any possibility?

Thank you a lot!
Milos

Hi @Milos,

I imagine you would filter all the members from a particular level of the [Pre-Integration Status] dimension. For example:

Aggregate({
Filter([Pre-Integration Status].[Pre-Integration Status].Members,
...

And then the [Pre-Integration Status].CurrentMember.Name should work. Note that you would also like to use the [Release Customer].CurrentMember.Name.

If this does not work, could you please send me more details (and screenshots) of the dimension, its members, and what the formula is returning? Please also export the report definition and send it to me mentioning this community request.

Lauma / support@eazybi.com