cancel
Showing results for 
Search instead for 
Did you mean: 

FdxExecuteCubeView parameters

particle
New Contributor

If I build a cubeview that contains the desired POV and functions on its own, using FdxExecuteCubeView seems to work great. However, there is no documentation available on actually using the FDX functions and I can find no functional examples of how to pass the various filters/members from the FdxExecuteCubeView function to the cubeview it's actually calling.

For example, I can enter T#2022M10 as part of the POV for the cube view and then FdxExecuteCubeView will create the table. However, if I pass the timeMemFilter a value of T#2022M10, I get no data. It seems obvious that I need to put something in the cube view POV to tell it to use this value but there's no indication of what that might be.

Am I missing something obvious here? Is there some missing documentation or fundamental functionality that I'm unfamiliar with?

1 ACCEPTED SOLUTION

JackLacava
Moderator
Moderator

You're not missing anything obvious, it's the documentation that's missing...

From some internal resources, i see a comment like this over all the "filter" parameters of FdxExecuteCubeView:

 

'when the extracted cube view references an entity parameter called |!FDXEntity!|, this field needs to be set to the name of the entity dimension the extracted entities exist in
'if the cube view does not use an entity parameter called |!FDXEntity!| then this field can be left blank "" or as String.Empty

Dim entityDimName As String = args.NameValuePairs.XFGetValue("", String.Empty)

'when the extracted cube view references an entity parameter called |!FDXEntity!|, this field needs to be set to an entity member filter that controls the extracted entities based on the member filter
'if the cube view does not use an entity parameter called |!FDXEntity!| then this field can be left blank "" or as String.Empty

Dim entityMemFilter As String = args.NameValuePairs.XFGetValue("", String.Empty)

'when the extracted cube view references an scenario parameter called |!FDXScenario!|, this field needs to be set to the name of the scenario dimension the extracted scenarios exist in
'if the cube view does not use a scenario parameter called |!FDXScenario!| then this field can be left blank "" or as String.Empty

Dim scenarioDimName As String = args.NameValuePairs.XFGetValue("", String.Empty)

'when the extracted cube view references a scenario parameter called |!FDXScenario!|, this field needs to be set to an scenario member filter that controls the extracted scenarios based on the member filter
'if the cube view does not use a scenario parameter called |!FDXScenario!| then this field can be left blank "" or as String.Empty

Dim scenarioMemFilter As String = args.NameValuePairs.XFGetValue("", String.Empty)

'when the extracted cube view references a time parameter called |!FDXTime!|, this field needs to be set to a time member filter that controls the extracted time periods based on the member filter
'if the cube view does not use a time parameter called |!FDXTime!| then this field can be left blank "" or as String.Empty

Dim timeMemFilter As String = args.NameValuePairs.XFGetValue("", String.Empty)

 

So I assume those fields do nothing unless those Parameters are present on the cube view.

View solution in original post

8 REPLIES 8

JackLacava
Moderator
Moderator

You're not missing anything obvious, it's the documentation that's missing...

From some internal resources, i see a comment like this over all the "filter" parameters of FdxExecuteCubeView:

 

'when the extracted cube view references an entity parameter called |!FDXEntity!|, this field needs to be set to the name of the entity dimension the extracted entities exist in
'if the cube view does not use an entity parameter called |!FDXEntity!| then this field can be left blank "" or as String.Empty

Dim entityDimName As String = args.NameValuePairs.XFGetValue("", String.Empty)

'when the extracted cube view references an entity parameter called |!FDXEntity!|, this field needs to be set to an entity member filter that controls the extracted entities based on the member filter
'if the cube view does not use an entity parameter called |!FDXEntity!| then this field can be left blank "" or as String.Empty

Dim entityMemFilter As String = args.NameValuePairs.XFGetValue("", String.Empty)

'when the extracted cube view references an scenario parameter called |!FDXScenario!|, this field needs to be set to the name of the scenario dimension the extracted scenarios exist in
'if the cube view does not use a scenario parameter called |!FDXScenario!| then this field can be left blank "" or as String.Empty

Dim scenarioDimName As String = args.NameValuePairs.XFGetValue("", String.Empty)

'when the extracted cube view references a scenario parameter called |!FDXScenario!|, this field needs to be set to an scenario member filter that controls the extracted scenarios based on the member filter
'if the cube view does not use a scenario parameter called |!FDXScenario!| then this field can be left blank "" or as String.Empty

Dim scenarioMemFilter As String = args.NameValuePairs.XFGetValue("", String.Empty)

'when the extracted cube view references a time parameter called |!FDXTime!|, this field needs to be set to a time member filter that controls the extracted time periods based on the member filter
'if the cube view does not use a time parameter called |!FDXTime!| then this field can be left blank "" or as String.Empty

Dim timeMemFilter As String = args.NameValuePairs.XFGetValue("", String.Empty)

 

So I assume those fields do nothing unless those Parameters are present on the cube view.

particle
New Contributor

Peculiarly, FDXTime does seem to work but FDXEntity doesn't. In this case, I don't need entity to be passed but it does make me wonder how the usage between them actually differs.

particle
New Contributor

I notice that FDXEntity is referenced twice in the comments that you shared. I suspect the second instance is a typo and FDXEntity is the entityDimName while there's another parameter for passing the entityMemFilter.

No, it's the same for FDXScenario. I expect it's because that, if you use the parameter, the cube view gets both dimension and member filter from the parameter itself. I suspect your troubles might come from not having "E#" in the filter...?

Hm, mixed results. If I use |!FDXEntity!| in a row, it fails, If I use it in the POV, it succeeds. I don't know why that would be (beyond "it's a data unit thing") but I think I read that the FDX function will intelligently run a separate CV query for every member in the filter and then append all the results into a single dataset. I'll have to do a row count on the output of each method to see if they're really the same.

I do see why it's referenced twice in the documentation though. The cube view can take an entity filter without needing to specify the entity dimension but the FDX function cannot. So, for FDXEntity to produce a value, both entityDimName and entityMemFilter have to specified. It was two requirements but only produces the member filter as output.

At first I thought it was failing but my row counts are now lining up. I'm going to push it back on the business side to provide historical data I can compare against.

I also want to figure out how to pass arbitrary name/value pairs "the right way" (presumably with nvbParams) but that can wait.

Sergey
Contributor

Hi ! I'm sorry to dig into this topic, but I get the same error : I have the entity dimension set as a parameter in my cube view POV : |!DashBoardEntity_Exec!|. It's an input parameter with only "Houston" in it.

This Cube View with this parameter will not work. However the same cube view but the POV set as 'Houston' (without the parameter then) will work.

What is the configuration needed with these |!FdxEntity!| ?

This parameter only works if you're calling the cube view using the FdxExececuteCubeView function from a business rule. It's not used if you're looking to just execute a cube view for normal reporting situations.

FDX functions are for "Fast Data eXtracts" so they're useful if you're looking to do exactly that but they're difficult to leverage because there's no documentation. This thread is the most information I've ever seen on one and it's still missing a lot to properly leverage it, not to mention all of the others.