.png)

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Variable Field Names in On-Demand App Generation (ODAG)
Hi all,
This question regards ODAG, but may simply be a problem with my dollar-sign expansions.
I want to be able to create an ODAG application with field names that are pulled in from an external table. This means that I don't want to hardcode field names in the data load editor.
The sample ODAG application "Flight Data", has a few fields that are being used for selections, including "Origin Code". Here is a snippet of code in the "Flight Data Detail" app that shows how the odag variable is used to access the field selections.
SET ORIGIN = ;
SET ORIGIN = $(odso_Origin Code);
SET ORIGIN_COLNAME='ORIGIN';
Trace ORIGIN: $(ORIGIN);
The Trace for this code looks like this (with a single selection on the Origin Code field):
ORIGIN: chr(39) & 'ABI' & chr(39)
What I'd like to do is use a variable field name, which I could set based upon a table, instead of hard-coding $(odso_Origin Code).
So I imagine something like this.
Let fieldName = 'Origin Code';
Set ODSO = odso_$(fieldName);
Let ODSO2 = '$(ODSO)';
SET ORIGIN2 = ;
SET ORIGIN2 = $($(ODSO2));
SET ORIGIN2_COLNAME='ORIGIN2';
Trace ORIGIN2: $(ORIGIN2);
This isn't working and I've tried, many different variations of Sets and Lets, Dollar-sign expansions, string expressions that are later evaluated, etc.
I'm not sure if the issue Qlik-General or ODAG specific.
Thanks.
Accepted Solutions


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hey Jonathan,
Unfortunately, this is not possible. When an On Demand app is created it first replaces the $(odso_FIELD) before running the app; it is hard coded in the script. By generating the variable with the above code, the Template app won't see any bindings, and therefore not replace the Binding variable, with the appropriate values.


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hey Jonathan,
Unfortunately, this is not possible. When an On Demand app is created it first replaces the $(odso_FIELD) before running the app; it is hard coded in the script. By generating the variable with the above code, the Template app won't see any bindings, and therefore not replace the Binding variable, with the appropriate values.
.png)

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yeah, I pretty much figured, but this is unfortunate.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Is there still the above limitation?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It´s not a limitation. It´s by design.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for your quick response!
So the only way to bind the template app is through a field, and I can't somehow replace the binding variable, right?
In my case, I don't use ODAG but Dynamic Views. I understand that the design is the same.
