Can @prompt LOV path be deeper than top level?

All the examples of @prompt I’ve see here and in the online help show examples of an LOV in a @prompt as something like ‘Store\City’. Can it refer to an object deeper than that? (i.e. ‘Store\Country\City’?)

My class hierarchy looks like this:

  • Development Area
    … + Currency Test
    … + Sales Document Measures1
    … Prompted Currency

In the deepest folder, ‘Prompted Currency’, I’m storing some dimensions and measures, including the dimension whose LOV I want to use, Prompted Currency Code. Also in that folder is a prompt object, defined as

aLKP_Currency_Prompted.cde_Currency = @Prompt( 'Report in Currency Code', 'A', Development Area\Currency Test\Sales Document Measures1\Prompted Currency\Prompted Currency Code', Mono, constrained, persistent )

When I attempt to parse this, I get two different error messages. Parsing before I click apply gives message “Parse failed: Invalid definition (UNV0023). This class does not exist. (UNV0037)”. Parsing after I apply gives a variation of that: “Parse failed: Invalid definition (UNV0023). This property already exists. (UNV0036)”. Of course the report using this prompt object also gives error.

I have found that if I move the ‘Prompted Currency Code’ dimension to the top level, just inside class ‘Development Area’, I can define the prompt object (still in the lowest folder) as

aLKP_Currency_Prompted.cde_Currency = @Prompt( 'Report in Currency Code', 'A', 'Development Area\Prompted Currency Code', Mono, constrained, persistent )

and that works fine. Parses fine, report runs fine.

It also works fine if I replace the LOV reference to a hard-coded list, such as { ‘CAD’, ‘EUR’, ‘USD’ }, but of course I don’t want to do that.

If I move the dimension object down to even just to the next class level, ‘Currency Test’, and append that to the path in the @prompt syntax, I get the same error messages as before. So it certainly appears that the parser only wants the LOV argument to be for an object just one level deep.

This may be a basic question, but I’m largely self-taught, and have never seen anything saying this is a limitation. Is it? Or am I misunderstanding how the LOV argument works?


JohnBrooking (BOB member since 2009-12-22)

All class names are forced to be unique, therefore this question does not matter. You don’t need to reference an LOV source as \Class 1\Class 2\Class 3\LOV Object because “Class 3” is unique and therefore cannot exist under another class structure. Does that make sense?


Dave Rathbun :us: (BOB member since 2002-06-06)

DING DING DING – Yes!! The answer is, yes, John is misunderstanding the LOV syntax!

Putting the object back at the lowest level and changing the third @prompt argument to just ‘Prompted Currency\Prompted Currency Code’ works fine. Thank you very much! :+1: :cookie:


JohnBrooking (BOB member since 2009-12-22)