cancel
Showing results for 
Search instead for 
Did you mean: 

SAP BW Universe OLAP @prompt LOV using object reference not working

Former Member
0 Kudos

I have tried to follow Didier MAZOUÉ's "[OLAP universes best practices|https://boc.sdn.sap.com/node/20081]" document to create calculated measure in a OLAP universe built on top of a BW cube directly. The objective is to get the revenue figure from the same period of the previous year. I wanted to be able to have a LOV to specify a period when the object is used in a webi report.

When I hard coded the LOV as a data set as displayed in the following example ( {'[CD2007009]','[CD2007010]'} ) The prompt worked as expected.

(PARALLELPERIOD(.[LEVEL01],1,[0FISCPER].@Prompt('Period?',A,{'[CD2007009]','[CD2007010]'},mono,free)),[Measures].[0G_AERLOS])</EXPRESSION>

When I build my expression using an object referece as ( 'TimeFiscal year period' ), I was given an error msg saying "invaid prompt definition". I verified my spellings and syntax and they were correct based on the examples provided by the best practice document.

(PARALLELPERIOD(.[LEVEL01],1,[0FISCPER].@Prompt('Period?',A,'TimeFiscal year period',mono,free)),[Measures].[0G_AERLOS])</EXPRESSION>

Is there anything obvious that I missed. Or there are some extra configuration I have to do on SAP BW or Universe side?

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Mr. MAZOUÉ,

After a few days of struggling with this particular prompt issue, I finally figured out what was wrong with it. The object reference in the @prompt function is not able to process object references in a subclass correctly.

For example:

@Prompt('Period?','A','TimeFiscal year periodL01 Fiscal year period',mono,free)

The 'Fiscal year period' is a subclass under the main class 'Time'. If you use this prompt function in a MDX expression, it parse correctly. But it generates a prompting failure when referencing the object with the embeded prompt function in a webi report.

However, if I move the 'L01 Fiscal year period' object underneath the 'Time' class and change the prompt as @Prompt('Period?','A','TimeL01 Fiscal year period',mono,free). I was able to get a list of values when I designed a webi report using the object.

This seems to me is a limitation from the current OLAP Universe implementation.

Looking forward to your feedbacks!

thanks

Former Member
0 Kudos

Hi,

There is no issue with prompt in relational and OLAP universe.

The sytax of a LOV referenced in a prompt is "Class\Object" where Class is the parent class of the objects even if this is a subclass.

Please notice that all class names and sub-class names are unique within the universe.

However we know that the parsing tool in Universe Designer contain some issues and especially for OLAP universes.

Those bugs will be fixed in the different fix packx and service packs.

Didier

Former Member
0 Kudos

Hi,

Your expression is invalid.

You must enclose the prompt data type into single quotes like this:

<EXPRESSION>(PARALLELPERIOD(0FISCPER.LEVEL01,1,0FISCPER.@Prompt('Period?','A','Time\Fiscal year period',mono,free)),Measures.0G_AERLOS)</EXPRESSION>

Didier

Former Member
0 Kudos

Thanks Didier,

I tried putting the single quote around the ('A') as you suggested. It still give me the same error message.

Here is the newly modified expression.

<EXPRESSION>(PARALLELPERIOD(\[0FISCPER].\[LEVEL01],1,\[0FISCPER].@Prompt('Period?','A','Time\Fiscal year period',mono,free)),\[Measures].\[0G_AERLOS])</EXPRESSION>

I tried the @prompt function in a relational db without the quote and it worked just fine. When I hard coded the dataset as {'\[CD2007009]','\[CD2007010]'} instead of using the object reference 'Time\Fiscal year period', the @Prompt() worked just fine. So I think the issue is on the object reference I used. But I can't figured out what the problem is.

thanks again,

Liren