<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2496510#M102668</link>
    <description>&lt;P&gt;Thanks a lot for the update! That is a very good news!&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Looking forward to see this live.&lt;/P&gt;</description>
    <pubDate>Fri, 06 Dec 2024 10:59:24 GMT</pubDate>
    <dc:creator>hadrienlp</dc:creator>
    <dc:date>2024-12-06T10:59:24Z</dc:date>
    <item>
      <title>Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2447979#M97797</link>
      <description>&lt;P&gt;I would like to report what I believe is a bug in &lt;A href="https://help.qlik.com/en-US/sense/February2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-expressions-inner-and-outer.htm" target="_self"&gt;inner and outer set expressions&lt;/A&gt;&amp;nbsp;feature (May 2023 patch 1), not sure if this forum can be a suitable location.&lt;/P&gt;
&lt;P&gt;Given the the script,&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Fruits:&lt;BR /&gt;LOAD * Inline [&lt;BR /&gt;Type,Color,Quantity&lt;BR /&gt;apple,green,1&lt;BR /&gt;apple,green,1&lt;BR /&gt;apple,green,1&lt;BR /&gt;orange,orange,1&lt;BR /&gt;orange,orange,1&lt;BR /&gt;];&lt;/PRE&gt;
&lt;P&gt;Consider the below formulae outputs, where we select apples (which exist in the data set) and kiwis (which do not exist):&lt;/P&gt;
&lt;TABLE width="588px"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="466px" height="46px"&gt;
&lt;PRE&gt;Sum({&amp;lt;Type={'apple'}, Color={'green'}&amp;gt;} Quantity)&lt;/PRE&gt;
&lt;/TD&gt;
&lt;TD width="40px" height="46px"&gt;3&lt;/TD&gt;
&lt;TD width="82px"&gt;OK&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="466px" height="46px"&gt;
&lt;PRE&gt;{&amp;lt;Type={'apple'}&amp;gt;} Sum({&amp;lt;Color={'green'}&amp;gt;} Quantity)&lt;/PRE&gt;
&lt;/TD&gt;
&lt;TD width="40px" height="46px"&gt;3&lt;/TD&gt;
&lt;TD width="82px"&gt;OK&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="466px" height="46px"&gt;
&lt;PRE&gt;{&amp;lt;Type={'apple'}, Color={'green'}&amp;gt;} Sum(Quantity)&lt;/PRE&gt;
&lt;/TD&gt;
&lt;TD width="40px" height="46px"&gt;3&lt;/TD&gt;
&lt;TD width="82px"&gt;OK&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="466px" height="46px"&gt;
&lt;PRE&gt;Sum({&amp;lt;Type={'kiwi'}, Color={'green'}&amp;gt;} Quantity)&lt;/PRE&gt;
&lt;/TD&gt;
&lt;TD width="40px" height="46px"&gt;0&lt;/TD&gt;
&lt;TD width="82px"&gt;OK&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="466px" height="46px"&gt;
&lt;PRE&gt;{&amp;lt;Type={'kiwi'}&amp;gt;} Sum( {&amp;lt;Color={'green'}&amp;gt;} Quantity)&lt;/PRE&gt;
&lt;/TD&gt;
&lt;TD width="40px" height="46px"&gt;3&lt;/TD&gt;
&lt;TD width="82px"&gt;WRONG!! The outer set analysis is not inherited!&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="466px" height="46px"&gt;
&lt;PRE&gt;{&amp;lt;Type={'kiwi'}, Color={'green'}&amp;gt;} Sum(Quantity)&lt;/PRE&gt;
&lt;/TD&gt;
&lt;TD width="40px" height="46px"&gt;0&lt;/TD&gt;
&lt;TD width="82px"&gt;
&lt;P&gt;OK&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="466px"&gt;
&lt;PRE&gt;Sum({&amp;lt;Type={'orange'}, Color={'green'}&amp;gt;} Quantity)&lt;/PRE&gt;
&lt;/TD&gt;
&lt;TD width="40px"&gt;0&lt;/TD&gt;
&lt;TD width="82px"&gt;
&lt;P&gt;OK&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="466px"&gt;
&lt;PRE&gt;{&amp;lt;Type={'orange'}&amp;gt;} Sum( {&amp;lt;Color={'green'}&amp;gt;} Quantity)&lt;/PRE&gt;
&lt;/TD&gt;
&lt;TD width="40px"&gt;0&lt;/TD&gt;
&lt;TD width="82px"&gt;
&lt;P&gt;OK&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="466px"&gt;
&lt;PRE&gt;{&amp;lt;Type={'orange'}, Color={'green'}&amp;gt;} Sum(Quantity)&lt;/PRE&gt;
&lt;/TD&gt;
&lt;TD width="40px"&gt;0&lt;/TD&gt;
&lt;TD width="82px"&gt;
&lt;P&gt;OK&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="466px"&gt;
&lt;PRE&gt;Sum({&amp;lt;Type={'kiwi'}&amp;gt;} Quantity)&lt;/PRE&gt;
&lt;/TD&gt;
&lt;TD width="40px"&gt;0&lt;/TD&gt;
&lt;TD width="82px"&gt;
&lt;P&gt;OK&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="466px"&gt;
&lt;PRE&gt;{&amp;lt;Type={'kiwi'}&amp;gt;} Sum( Quantity)&lt;/PRE&gt;
&lt;/TD&gt;
&lt;TD width="40px"&gt;0&lt;/TD&gt;
&lt;TD width="82px"&gt;
&lt;P&gt;OK&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As per the results above: outer set expression is not inherited if&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;the outset set expression selects an inexistant value,&lt;/LI&gt;
&lt;LI&gt;there is an inner set expression&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Could someone confirm this is indeed a bug and whether it has already been fixed in the recent version? Thanks!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 02 May 2024 14:18:21 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2447979#M97797</guid>
      <dc:creator>sergiogiogio</dc:creator>
      <dc:date>2024-05-02T14:18:21Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2448612#M97836</link>
      <description>&lt;P&gt;The same issue has been reported at least 3 other times since Aug 2023 without resolution or explanations.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="https://community.qlik.com/t5/New-to-Qlik-Analytics/Outer-SetAnalysis-modifier-ignored/td-p/2108889" target="_blank"&gt;https://community.qlik.com/t5/New-to-Qlik-Analytics/Outer-SetAnalysis-modifier-ignored/td-p/2108889&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://community.qlik.com/t5/QlikView-App-Dev/Is-this-a-bug-with-the-new-outer-set-analysis-syntax/td-p/2126300" target="_blank"&gt;https://community.qlik.com/t5/QlikView-App-Dev/Is-this-a-bug-with-the-new-outer-set-analysis-syntax/td-p/2126300&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://community.qlik.com/t5/App-Development/Problem-with-set-analysis-outer-inner-set-expression/td-p/2164025" target="_blank"&gt;https://community.qlik.com/t5/App-Development/Problem-with-set-analysis-outer-inner-set-expression/td-p/2164025&lt;/A&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;At this moment, I understand the issue is triggered when:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;a merge of set expressions is performed (inner or outer does not matter)&lt;/LI&gt;
&lt;LI&gt;an outer set expression "exclusively" resolves into an empty set. In other words, that outer set expression taken in isolation would never return anything anyway.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;under these 2 conditions, the merge operation will simply ignore the outer set.&lt;/P&gt;
&lt;P&gt;If no merge is needed, the result will be correct, so it really seems to be a bug with the merge operation.&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I cannot stress enough how important this issue is - it might lead to incorrect results completely silently and very difficult to debug.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The longer this issue is delayed, the more difficult it will become to resolve, as changing the behavior over time will disrupt an increasing number of applications.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Tagging&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/14028"&gt;@Jennell_Yorkman&lt;/a&gt;&amp;nbsp;who wrote the &lt;A href="https://community.qlik.com/t5/Design/Inner-and-Outer-Set-Expressions/ba-p/1992403" target="_self"&gt;introduction blog post&lt;/A&gt; for help in escalating the issue.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 03 May 2024 15:34:48 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2448612#M97836</guid>
      <dc:creator>sergiogiogio</dc:creator>
      <dc:date>2024-05-03T15:34:48Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2449216#M97849</link>
      <description>&lt;P&gt;IMO it's not a bug else behaved as designed. Essentially is that inner- and outer-statements are not regarded as a single statement else it are independent statements which are performed in an order.&lt;/P&gt;
&lt;P&gt;You could imagine your "wrong" example as two selections. The first selects 'kiwi' and then the selection of 'green' happens - which deselects 'kiwi' again.&lt;/P&gt;
&lt;P&gt;The outer statements and especially the combination of inner- and outer-statements are not a simplification or a replacement for a normal set statement else it is an advanced feature for special scenarios.&lt;/P&gt;</description>
      <pubDate>Mon, 06 May 2024 10:18:46 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2449216#M97849</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2024-05-06T10:18:46Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2450083#M97893</link>
      <description>&lt;P&gt;Thanks&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/28038"&gt;@marcus_sommer&lt;/a&gt;&amp;nbsp;for your reply.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;You could imagine your "wrong" example as two selections. The first selects 'kiwi' and then the selection of 'green' happens - which deselects 'kiwi' again.&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;'kiwi' does not exist in the dataset. Your scenario matches the test below where 'orange' exists in the data. The result of this test is 0, which is correct in my opinion. If we go by your proposed explanation, it should show 3. This would hopefully convince you that there is something deeper to investigate here.&lt;/P&gt;
&lt;PRE&gt;{&amp;lt;Type={'orange'}&amp;gt;} Sum( {&amp;lt;Color={'green'}&amp;gt;} Quantity)&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;
&lt;P&gt;The outer statements and especially the combination of inner- and outer-statements are not a simplification or a replacement for a normal set statement else it is an advanced feature for special scenarios.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Can you please provide references for the special scenarios it should only be used for? The &lt;A href="https://help.qlik.com/en-US/sense/February2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-expressions-inner-and-outer.htm?_ga=2.197029100.1700231201.1715133073-682715928.1705419525" target="_self"&gt;documentation&lt;/A&gt;&amp;nbsp;simply says "&lt;SPAN&gt;Use a set expression outside the aggregation function if you have expressions with multiple aggregations and want to avoid writing the same set expression in every aggregation function.&lt;/SPAN&gt;"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One important use case is useing it for measures as explained in the documentation?&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;{&amp;lt;Year={2021}&amp;gt;} [Master Measure]&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;UL&gt;
&lt;LI&gt;If [Master Measure] does not contain an inner expression, the above expression will always return the expected result.&lt;/LI&gt;
&lt;LI&gt;If [Master Measure] does contain an inner expression, and if the year 2021 exists in the dataset, the above expression will always return the expected result.&lt;/LI&gt;
&lt;LI&gt;If [Master Measure] does contain an inner expression, and if the year 2021 does not exist in the dataset, the year selection will be ignored.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;You might not have control over the way the&amp;nbsp;[Master Measure] are defined. That definition might also change overtime. If there is no consistency in the behavior (as is illustrated above), using outer expression for master measures is then not advisable, which then contradicts the documentation.&lt;/P&gt;</description>
      <pubDate>Wed, 08 May 2024 02:44:01 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2450083#M97893</guid>
      <dc:creator>sergiogiogio</dc:creator>
      <dc:date>2024-05-08T02:44:01Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2450154#M97898</link>
      <description>&lt;P&gt;I have no examples for it because I don't use these features in our productive environment and I doubt that I would implement them as a general approach within a business release in the&amp;nbsp;future.&lt;/P&gt;
&lt;P&gt;Yes, the documentation gives the impression that it are must-use features but IMO in goes in the wrong direction of implementing the essential business logic within the UI and the data-model isn't really important anymore and is only a kind of data-lake and the smart developer just picked the wanted data.&lt;/P&gt;
&lt;P&gt;In my experience it's much harder and needs much more efforts to develop the logic within the UI instead of the data-model. Ideally the most calculations are possible with simple sum() and count() without much set analysis and the users just select what they want to see:&amp;nbsp;&lt;A href="https://community.qlik.com/t5/Design/Let-the-User-Select/ba-p/1463978" target="_blank"&gt;Let the User Select - Qlik Community - 1463978&lt;/A&gt;. Each kind of own usability beyond the green-white-grey selection-logic will increase the complexity and needed efforts - therefore be careful with it.&lt;/P&gt;</description>
      <pubDate>Wed, 08 May 2024 07:24:25 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2450154#M97898</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2024-05-08T07:24:25Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2453956#M98231</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/172610"&gt;@sergiogiogio&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;This scenario occurs in these conditions:&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV id="1713456646.060439" class="c-virtual_list__item" tabindex="0" role="listitem" aria-setsize="-1" data-qa="virtual-list-item" data-item-key="1713456646.060439"&gt;
&lt;DIV class="c-message_kit__background p-message_pane_message__message c-message_kit__message" role="presentation" data-qa="message_container" data-qa-unprocessed="false" data-qa-placeholder="false"&gt;
&lt;DIV class="c-message_kit__hover" role="document" aria-roledescription="message" data-qa-hover="true"&gt;
&lt;DIV class="c-message_kit__actions c-message_kit__actions--above"&gt;
&lt;DIV class="c-message_kit__gutter"&gt;
&lt;DIV class="c-message_kit__gutter__right" role="presentation" data-qa="message_content"&gt;
&lt;DIV class="c-message_kit__blocks c-message_kit__blocks--rich_text"&gt;
&lt;DIV class="c-message__message_blocks c-message__message_blocks--rich_text" data-qa="message-text"&gt;
&lt;DIV class="p-block_kit_renderer" data-qa="block-kit-renderer"&gt;
&lt;DIV class="p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first"&gt;
&lt;DIV class="p-rich_text_block" dir="auto"&gt;
&lt;UL class="p-rich_text_list p-rich_text_list__bullet" data-stringify-type="unordered-list" data-indent="0" data-border="0"&gt;
&lt;LI data-stringify-indent="0" data-stringify-border="0"&gt;an outer set-expression results in empty set (with or without selections)&lt;/LI&gt;
&lt;LI data-stringify-indent="0" data-stringify-border="0"&gt;an inner set-expression is defined&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="p-rich_text_section"&gt;Then the calculation ignores the intersection between 2 set-expressions and uses the inner one only.&lt;/DIV&gt;
&lt;DIV class="p-rich_text_section"&gt;&lt;SPAN&gt;As a straightforward workaround, an outer set-expression can be easily merged into the inner set-expression, then the calculation will be correct.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="p-rich_text_section"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN&gt;Only when SetExpr1 (the outer) is evaluated with an empty result, it is not merged with SetExpr2 (the inner), instead, only the SetExpr2 is considered.&lt;/SPAN&gt;&lt;/P&gt;
&lt;PRE class="code-java"&gt;{SetExpr1} AggrFunc ({SetExpr2} expr)&lt;/PRE&gt;
&lt;P&gt;When multiple set-expressions exist (no matter outer or inner), engine evaluates the selections for each and tries to merge the results. if in any step the result is empty, engine considers that the whole dataset is selected then continue with the subsequent evaluations. that is how engine search works. following expressions always return the same result&lt;/P&gt;
&lt;DIV class="code panel"&gt;
&lt;DIV class="codeContent panelContent"&gt;
&lt;PRE class="code-java"&gt;{&amp;lt;condition1&amp;gt;}AggrFunc ({&amp;lt;condition12&amp;gt;} expr)
AggrFunc({&amp;lt;condition1&amp;gt;} {&amp;lt;condition12&amp;gt;} expr)&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;While multiple conditions in one set-expressions are intersected, for instance this statement will return empty set while the first or the 2nd condition return empty.&lt;/P&gt;
&lt;DIV class="code panel"&gt;
&lt;DIV class="codeContent panelContent"&gt;
&lt;PRE class="code-java"&gt;AggrFunc({&amp;lt;condition1, condition12&amp;gt;} expr) &lt;/PRE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;We have some improvements included in May 2024 release. Suggest to upgrade to May 2024 version.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 19 May 2024 17:09:58 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2453956#M98231</guid>
      <dc:creator>Niroopananda</dc:creator>
      <dc:date>2024-05-19T17:09:58Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2454277#M98279</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/136267"&gt;@Niroopananda&lt;/a&gt;,&amp;nbsp;thanks a lot for the analysis!&lt;/P&gt;
&lt;P&gt;The explanation is useful but I believe the rules are actually far more complex&lt;/P&gt;
&lt;P&gt;1- The below expression returns 3 (kiwi is ignored) which means that the issue is also triggered by merging outer set expressions, there is no need to have an inner set expressions.&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;{&amp;lt;Type={'kiwi'}&amp;gt;} {&amp;lt;Color={'green'}&amp;gt;} Sum(Quantity)&lt;/PRE&gt;
&lt;P&gt;This is why my take is that the issue is with the merge function (no merge --&amp;gt; no problem)&lt;/P&gt;
&lt;P&gt;2- You mentioned&amp;nbsp; that the below 2 expressions always return the same result:&amp;nbsp;&lt;/P&gt;
&lt;PRE class="code-java"&gt;{&amp;lt;condition1&amp;gt;}AggrFunc ({&amp;lt;condition12&amp;gt;} expr)
AggrFunc({&amp;lt;condition1&amp;gt;} {&amp;lt;condition12&amp;gt;} expr)&lt;/PRE&gt;
&lt;P&gt;The below results show this is not necessarily the case&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="468"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="425"&gt;Sum( {&amp;lt;Type={'orange'}&amp;gt;} {&amp;lt;Color={'green'}&amp;gt;} Quantity)&lt;/TD&gt;
&lt;TD width="43"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;{&amp;lt;Type={'orange'}&amp;gt;} Sum( {&amp;lt;Color={'green'}&amp;gt;} Quantity)&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3- the parenthesis play an unexpected role too&lt;/P&gt;
&lt;TABLE width="468"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="425"&gt;Sum( {&amp;lt;Type={'orange'}&amp;gt;} {&amp;lt;Color={'green'}&amp;gt;} Quantity)&lt;/TD&gt;
&lt;TD width="43"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sum( {&amp;lt;Type={'orange'}&amp;gt;} &lt;FONT color="#FF0000"&gt;(&lt;/FONT&gt; {&amp;lt;Color={'green'}&amp;gt;} Quantity &lt;FONT color="#FF0000"&gt;)&lt;/FONT&gt;)&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;the initial issue I reported can be corrected using parenthesis&lt;/P&gt;
&lt;TABLE width="489"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="425"&gt;{&amp;lt;Type={'kiwi'}&amp;gt;} Sum( {&amp;lt;Color={'green'}&amp;gt;} Quantity)&lt;/TD&gt;
&lt;TD width="64"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;{&amp;lt;Type={'kiwi'}&amp;gt;} Sum(&amp;nbsp; &lt;FONT color="#FF0000"&gt;(&lt;/FONT&gt; {&amp;lt;Color={'green'}&amp;gt;} Quantity &lt;FONT color="#FF0000"&gt;)&lt;/FONT&gt; )&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would be interested to make sense of this confusing behaviors. Please note that these behaviors shuold be somehow described in an understnadable way in the documentation. If they can't be documened then there is a strong argument they are in fact bugs and should be corrected.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You mentioned that&amp;nbsp;&lt;SPAN&gt;there are improvements in May 2024 release, but the fundamental question in my opinion is whether this is a bug or not (is this the desired behavior or not).&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 20 May 2024 16:26:52 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2454277#M98279</guid>
      <dc:creator>sergiogiogio</dc:creator>
      <dc:date>2024-05-20T16:26:52Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2454322#M98284</link>
      <description>&lt;P&gt;So according to your examples the following formula is a bug?&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;Sum({&amp;lt;Type={'kiwi'}&amp;gt; + &amp;lt;Color={'green'}&amp;gt;} Quantity)&lt;/LI-CODE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-05-21 at 00.46.42.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/166446iE99AA7864A5C939F/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2024-05-21 at 00.46.42.png" alt="Screenshot 2024-05-21 at 00.46.42.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Agree with&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/28038"&gt;@marcus_sommer&lt;/a&gt;&amp;nbsp;, seems that it's behaved as designed and merged with a "+" - union, not "*" - intersection&lt;/P&gt;</description>
      <pubDate>Mon, 20 May 2024 19:22:33 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2454322#M98284</guid>
      <dc:creator>Firefly_cam</dc:creator>
      <dc:date>2024-05-20T19:22:33Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2454431#M98292</link>
      <description>&lt;P&gt;I have the impression you are trying to use the set analysis for not suitable scenarios.&lt;/P&gt;
&lt;P&gt;Essential is the understanding that it is a way to transfer a selection state into an expression respectively with the newer inner + outer set statements against a calculation. Not more.&lt;/P&gt;
&lt;P&gt;This means you could use a reversed approach to comprehend the logic and to check if it's applicable within your intended use-case by removing the entire set analysis and just selecting the wanted view from the outside with the normal list-boxes / filter-panes. If you are able to select the existing field-values within the n fields one after another you will be able to transfer it to a set analysis.&lt;/P&gt;
&lt;P&gt;Of course there are some advanced possibilities in chaining n set statements with n operators in nested hierarchies/orders and/or against/within virtual data-sets by wrapping the calculations with aggr(). Be careful with it because only because it's technically possible it must not be sensible to implement - neither from the usability nor from the complexity and the needed efforts to develop and maintain it. Especially if you have no full control of the data-model and data-set - there is measurement implemented to check if fields and/or field-values directly exists respectively in a certain combination. It are just selections.&lt;/P&gt;</description>
      <pubDate>Tue, 21 May 2024 06:41:31 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2454431#M98292</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2024-05-21T06:41:31Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2454699#M98329</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/157640"&gt;@Firefly_cam&lt;/a&gt;, many thanks for taking the time to reproducing the use case above!&lt;/P&gt;
&lt;P&gt;I indeed would like to understand how the merge operation works, and more importantly how it is expected to work. While your example does suggest&amp;nbsp;&lt;SPAN&gt;"+", the example below suggests rather a "*" (intersection). So what exactly is it doing?&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sergiogiogio_1-1716296036538.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/166513i3DA12B53E8707155/image-size/large?v=v2&amp;amp;px=999" role="button" title="sergiogiogio_1-1716296036538.png" alt="sergiogiogio_1-1716296036538.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 21 May 2024 12:56:18 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2454699#M98329</guid>
      <dc:creator>sergiogiogio</dc:creator>
      <dc:date>2024-05-21T12:56:18Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2454732#M98334</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/28038"&gt;@marcus_sommer&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I have the impression you are trying to use the set analysis for not suitable scenarios.&lt;/P&gt;
&lt;P&gt;Essential is the understanding that it is a way to transfer a selection state into an expression respectively with the newer inner + outer set statements against a calculation. Not more.&lt;/P&gt;
&lt;P&gt;This means you could use a reversed approach to comprehend the logic and to check if it's applicable within your intended use-case by removing the entire set analysis and just selecting the wanted view from the outside with the normal list-boxes / filter-panes. If you are able to select the existing field-values within the n fields one after another you will be able to transfer it to a set analysis.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You're suggesting that Set Analysis should equate to selection, which seems like a logical approach, but the Qlik engine does not adhere to this principle in practice. For instance, consider the following formula that returns 0, despite the absence of 'kiwi' in the dataset. According to your theory, if 'kiwi' cannot be selected because it doesn't exist, then this selection should not influence the outcome, and the formula should return 3.&lt;/P&gt;
&lt;PRE&gt;Sum({&amp;lt;Type={'kiwi'}&amp;gt;} Quantity)&lt;/PRE&gt;
&lt;P&gt;Based on this qlik community thread, I was inclided to believe that the first (n-1) Set Analysis in an expression functioned as successive selections, with only the final Set Analysis acting as an intersection. However the following formula is a counter example and returns 3.&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Sum( {&amp;lt;Type={'orange'}&amp;gt;} {&amp;lt;Color={'green'}&amp;gt;} Quantity)&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;So I am personally back to square one. Fundamentally I only to understand what the merge operation is supposed to do.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/28038"&gt;@marcus_sommer&lt;/a&gt;&amp;nbsp;wrote:
&lt;P&gt;Of course there are some advanced possibilities in chaining n set statements with n operators in nested hierarchies/orders and/or against/within virtual data-sets by wrapping the calculations with aggr(). Be careful with it because only because it's technically possible it must not be sensible to implement - neither from the usability nor from the complexity and the needed efforts to develop and maintain it.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Suppose you have a P&amp;amp;L segmented by year and entity, and you need to report the P&amp;amp;L for NY in 2021. Using outer expressions (Option 2) simplifies and streamlines the process compared to inner expressions (Option 1). This is because outer expressions allow for the easy reuse of definitions, making them more maintainable.&lt;/P&gt;
&lt;TABLE border="1" width="75%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD height="24px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD height="24px"&gt;Option1&lt;/TD&gt;
&lt;TD height="24px"&gt;Option2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="25%" height="46px"&gt;PL&lt;/TD&gt;
&lt;TD width="25%" height="46px"&gt;(No PL definition)&lt;/TD&gt;
&lt;TD width="25%" height="46px"&gt;SUM(Revenue) - Sum(Expense)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="25%" height="90px"&gt;NY PL&lt;/TD&gt;
&lt;TD width="25%" height="90px"&gt;SUM({&amp;lt;Entity={'NY'}&amp;gt;} Revenue) - Sum({&amp;lt;Entity={'NY'}&amp;gt;} Expense)&lt;/TD&gt;
&lt;TD width="25%" height="90px"&gt;{&amp;lt;Entity={'NY'}&amp;gt;} PL&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="25%" height="134px"&gt;NY 2021 PL&lt;/TD&gt;
&lt;TD width="25%" height="134px"&gt;SUM({&amp;lt;Year={'2021'}, Entity={'NY'}&amp;gt;} Revenue) - Sum({&amp;lt;Year={'2021'}, Entity={'NY'}&amp;gt;} Expense)&lt;/TD&gt;
&lt;TD width="25%" height="134px"&gt;{&amp;lt;Year={'2021'}&amp;gt;} [NY PL]&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now, consider the scenario where you need to incorporate interest expense into the P&amp;amp;L. In Option 1, this change would require updates to multiple formulas. With Option 2, you only need to adjust the root formula. This central update automatically propagates throughout the related expressions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/28038"&gt;@marcus_sommer&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Especially if you have no full control of the data-model and data-set - there is measurement implemented to check if fields and/or field-values directly exists respectively in a certain combination. It are just selections.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Reusability/DRY (Don't Repeat Yourself) principles are best practices in software development and I believe it is common for developers not to have full control of the underlying data. As a qlik developer you would want to leverage standard definitions to build your logic, and you would expect your formulae to continue working even if the underlying definition is updated.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 21 May 2024 13:56:46 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2454732#M98334</guid>
      <dc:creator>sergiogiogio</dc:creator>
      <dc:date>2024-05-21T13:56:46Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2454783#M98347</link>
      <description>&lt;P&gt;I would try very hard to avoid each set analysis within a P&amp;amp;L and just using an expression like: sum(Value) for everything and each essential part of the logic is resolved within the dimensional layer created in the data-model.&lt;/P&gt;
&lt;P&gt;Just selecting the wanted (nested and maybe overlapping) hierarchy-level and periods and showing/hiding the hierarchy-level within the appropriate objects. Usually it's much harder to implement the needed logic within the UI as doing the work within the data-model.&lt;/P&gt;</description>
      <pubDate>Tue, 21 May 2024 15:12:55 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2454783#M98347</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2024-05-21T15:12:55Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2455396#M98417</link>
      <description>&lt;P&gt;Thanks&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/28038"&gt;@marcus_sommer&lt;/a&gt;&amp;nbsp;, if I understand you correctly, your data model would look like that:&lt;/P&gt;
&lt;TABLE border="1" width="44.444134767562204%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="16.666666666666668%"&gt;Year&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;Entity&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;Type&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;PL&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="16.666666666666668%"&gt;2021&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;NY&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;Revenue&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;+XXXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="16.666666666666668%"&gt;2021&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;NY&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;Expense&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;-YYYY&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then PL could simply be computed as&lt;/P&gt;
&lt;PRE&gt;SUM(PL)&lt;/PRE&gt;
&lt;P&gt;For calculating 2021 PL, you'd use&lt;/P&gt;
&lt;PRE&gt;SUM( {&amp;lt;Year={'2021'}&amp;gt;} PL)&lt;/PRE&gt;
&lt;P&gt;This is done using only inner set analysis, without the need for outer set analysis.&lt;/P&gt;
&lt;P&gt;This works for PL but imagine you now need to show Margin, the formula is more complex:&lt;/P&gt;
&lt;PRE&gt;SUM(PL)/SUM({&amp;lt;Type={'Revenue'}&amp;gt;} PL)&lt;/PRE&gt;
&lt;P&gt;&lt;SPAN&gt;It would be wise at this stage to put it into a master measure ([Margin]) to prevent any error from the data model users. At this point outer set analysis becomes important. 2021 Margin can simply be expressed as&lt;/SPAN&gt;&lt;/P&gt;
&lt;PRE&gt;{&amp;lt;Year={'2021'}&amp;gt;} [Margin]&lt;/PRE&gt;
&lt;P&gt;instead of the error prone&lt;/P&gt;
&lt;PRE&gt;SUM({&amp;lt;Year={'2021'}&amp;gt;} PL)/SUM( {&amp;lt;Year={'2021', Type={'Revenue'}&amp;gt;} PL)&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I completely agree with your point that we should generally avoid Set Analysis and rely on Selections but it is not always possible. For example your users might want to compare every year's Revenue to the 2021 Revenue used as a reference year. There, you need to somehow hardcode 2021 using Set Analysis. The alternative is to ask users to export and do this comparison in excel, whcih undermines qlik capabilities.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;More fundamentally, everyone might have different requirements or even preferences that will prompt them to use different features. The outer set analysis feature has been released - the purpose of this thread is to uderstand how it is expected to work.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;If qlik agrees the behavior to be a bug, then it should be &lt;STRONG&gt;fixed as quickly as possible&lt;/STRONG&gt; to minimize the number of users impacted during the next upgrade (users who are relying on the incorrect current behavior).&lt;/LI&gt;
&lt;LI&gt;If qlik considers this is the expected behavior, then the &lt;STRONG&gt;documentation&lt;/STRONG&gt; should be updated to explain precisely the current behavior. This would surely turn away most users from using the feature, but would at least prevent them from wasting a frustrating amount of time troubleshooting this unintuitive behavior.&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Wed, 22 May 2024 20:53:11 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2455396#M98417</guid>
      <dc:creator>sergiogiogio</dc:creator>
      <dc:date>2024-05-22T20:53:11Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2455599#M98435</link>
      <description>&lt;P&gt;Yes, something in this way was meant. Unfortunately (respectively luckily) there is no general approach how to fulfill all requirements with a single solution which is at the same time simple, without much efforts during the development/maintaining and not especially error-prone.&lt;/P&gt;
&lt;P&gt;Personally I regard the shown set analysis as quite simple and no basic-developer should have serious challenges with it. If transferring any of these expressions into a master-measure with/without the use of outer set statements is a big and desirable simplification ... I'm not sure. In some way it's the opposite because (parts of) the content will be hidden and are preventing the understanding.&lt;/P&gt;
&lt;P&gt;Nevertheless if expressions/logic should be outsourced and possible redundancy minimized the use of parametrized variables might be an alternatively respectively more suitable. Each combining and/or nesting of logic will increase the complexity - regardless if it are inner + outer set statements and/or with variables and/or master-measures and/or any combination of them.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Beside this I could imagine to provide the users some extra selections to control the wanted views. This may be the base-year which might be considered with something like:&lt;/P&gt;
&lt;P&gt;sum({&amp;lt; Year = p(BaseYear) &amp;gt;} PL) or&amp;nbsp;sum({&amp;lt; Year = {"$(=max(BaseYear))"} &amp;gt;} PL)&lt;/P&gt;
&lt;P&gt;and such logic is also applicable to other fields and might be make the way and direction of the rate-calculations selectable.&lt;/P&gt;
&lt;P&gt;It's not really simplifying the matter but even the rate-calculations might be replaced with sum() approaches. This could be reached by using a logarithm-approach. Here a short example of the idea behind it:&lt;/P&gt;
&lt;P&gt;Sales: load *, 'S' as Q, log(W) as V inline [K, W&lt;BR /&gt;V, 95&lt;BR /&gt;C, 80];&lt;/P&gt;
&lt;P&gt;Budget: load *, 'B' as Q, log(W) * -1 as V inline [K, W&lt;BR /&gt;V, 105&lt;BR /&gt;C, 95];&lt;/P&gt;
&lt;P&gt;and then rate from Sales to Budget could be calculated with:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="marcus_sommer_0-1716456396759.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/166674iC301DF1805C3B620/image-size/medium?v=v2&amp;amp;px=400" role="button" title="marcus_sommer_0-1716456396759.png" alt="marcus_sommer_0-1716456396759.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;which means a rate-calculation doesn't required mandatory a division.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 23 May 2024 09:29:55 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2455599#M98435</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2024-05-23T09:29:55Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2458090#M98625</link>
      <description>&lt;P&gt;It seems that this community thread is not progressing any longer, which I can understand since this is primarily for user collaboration, not an direct line to qlik support. Does any one know of any official way to reach out to qlik and report this bug?&lt;/P&gt;</description>
      <pubDate>Fri, 31 May 2024 07:41:31 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2458090#M98625</guid>
      <dc:creator>sergiogiogio</dc:creator>
      <dc:date>2024-05-31T07:41:31Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2458103#M98627</link>
      <description>&lt;P&gt;Here are a lot of ways described&amp;nbsp;&lt;A href="https://community.qlik.com/t5/Official-Support-Articles/How-to-contact-Qlik-Support/ta-p/1837529" target="_blank"&gt;How to contact Qlik Support - Qlik Community - 1837529&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Fri, 31 May 2024 07:57:21 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2458103#M98627</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2024-05-31T07:57:21Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2475559#M100156</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/172610"&gt;@sergiogiogio&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;I have the same problem and I implemented your workaround idea with the &lt;SPAN&gt;parenthesis&lt;/SPAN&gt;. It works. Thank you very much! That is definitely a bug.&amp;nbsp;It's a pity that the Qlik people don't understand the real problem and refuse to report this bug to the R&amp;amp;D.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;BR,&lt;/P&gt;
&lt;P&gt;Rumen&lt;/P&gt;</description>
      <pubDate>Fri, 09 Aug 2024 14:25:01 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2475559#M100156</guid>
      <dc:creator>vasilev</dc:creator>
      <dc:date>2024-08-09T14:25:01Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2483547#M101054</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/172610"&gt;@sergiogiogio&lt;/a&gt;,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Were you able to log this as a bug with Qlik? And if so, is there a way we can show our support for it?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We have encountered the exact same problems and I strongly agree with your previous points. This feature was released with &lt;A href="https://community.qlik.com/t5/Design/Inner-and-Outer-Set-Expressions/ba-p/1992403" target="_self"&gt;the suggestion&lt;/A&gt; that it could be used to simplify Set Analysis by reducing repetition. We have adopted the feature as such and have since applied it in almost every app.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The fact that it behaves in such an odd way, even contradicting the documentation, is simply unacceptable. Especially in large enterprise apps with Section Access applied, there is no way of knowing which field values may be excluded that certain Outer Sets may rely on, triggering this issue and resulting in incorrect data for some users, but not for others.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Surely, whatever technical definition of 'merge' is applied here, the merging of two sets, of which one results in zero possible values, should logically never result in greater than zero values.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/136267"&gt;@Niroopananda&lt;/a&gt;&amp;nbsp;you mentioned improvements in the May 2024 release, could you elaborate? We are running on this release and are experiencing the exact same results (see attachments).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Additionally, while you mention a workaround by expanding the Inner Set definition, this is of course not a solution. This bug undermines all the value that Outer Sets brought in terms of simplifying Master Measures. We may as well revert to storing expressions in variables again. Can you please confirm that this is recognized as a bug, yes or no?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 25 Sep 2024 14:24:57 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2483547#M101054</guid>
      <dc:creator>stijn_verhoeff</dc:creator>
      <dc:date>2024-09-25T14:24:57Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2484110#M101118</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/19297"&gt;@stijn_verhoeff&lt;/a&gt;,&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/14950"&gt;@vasilev&lt;/a&gt;&amp;nbsp;, thanks for keeping this discussion alive, glad I am not the only one deeply troubled by this. I do not have much update unfortunately.&lt;/P&gt;
&lt;P&gt;I initially was hopeful that the May 2024 release would have a fix, but we were upgraded last month and the outer set behavior remains the same as far as I could test. Interestingly the &lt;A href="https://community.qlik.com/t5/Release-Notes/Sense-Enterprise-on-Windows-release-notes-May-2024-Initial/ta-p/2452110" target="_self"&gt;release notes&lt;/A&gt; for the May 2024 release do contain the below information, so it might be worth trying the setting mentioned (although I do not understand why a fix would need a setting for activation).&lt;/P&gt;
&lt;TABLE width="673"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="74px"&gt;QB-22519&lt;/TD&gt;
&lt;TD width="155px"&gt;Qlik Sense Engine: Inner set expression issue when outer set expression is present&lt;/TD&gt;
&lt;TD width="403px"&gt;Fixed an issue that caused the miscalculation of inner set expressions when outer set expressions were present.&lt;BR /&gt;To apply this fix, users must add the line&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;"AdHocFieldIgnoreOuterSetField=1"&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to the settings.ini file.&lt;BR /&gt;For information on how to edit the file, see&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.qlik.com/t5/Official-Support-Articles/How-to-modify-Qlik-Sense-Engine-s-Settings-ini/ta-p/1714789" target="_self"&gt;How to modify Qlik Sense Engine settings.ini&lt;/A&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We have not raised an official log with qlik because I was hopeful and waiting for the upgrade. Now that you have reminded me, I will petition internally so we can official request support, but I do not know the process and how long it will take (we are a fairly large organization and I do not exactly know our channels of communcation to qlik).&lt;/P&gt;
&lt;P&gt;Through this forum and direct messages, I did try to contact few qlik employees who wrote about this feature (including&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/14028"&gt;@Jennell_Yorkman&lt;/a&gt;&amp;nbsp;who wrote the initial feature announcement blog post) but to no avail.&lt;/P&gt;
&lt;P&gt;I will definitiely update this post if the official support request route goes somewhaere. I would encourage to also try the same on your end as it might go faster.&lt;/P&gt;</description>
      <pubDate>Fri, 27 Sep 2024 17:32:20 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2484110#M101118</guid>
      <dc:creator>sergiogiogio</dc:creator>
      <dc:date>2024-09-27T17:32:20Z</dc:date>
    </item>
    <item>
      <title>Re: Bug report: Outer set expression is not inherited if 1) the outset set expression selects an inexistant value, 2) there is an inner set expression</title>
      <link>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2484949#M101209</link>
      <description>&lt;P&gt;&lt;FONT size="3"&gt;I logged this exact problem on November 30th, 2023 :&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="3"&gt;00128525: Inner/Outer set expression inheritance bug when data does not exist&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="3"&gt;This is the answer I got on December 15th :&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;FONT size="3"&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;U&gt;&lt;STRONG&gt;Our Engineering teams have confirmed that the issue you reported is a software defect&lt;/STRONG&gt;&lt;/U&gt; and a fix has been scheduled but it will take sometime as it is a holiday break here.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Please try below workaround and let us know if it helps!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The issue is triggered when an outer and inner set expression is combined,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and the outer set expression is referencing a non-existing value.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Two different workarounds at this point are as below:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1. Put it all in a single set expression, either use inner or outer set expression.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2. Swap the inner and outer set expression with each other so that the non-existing value is in the inner set expression instead of the outer one, like so:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&amp;lt;FieldA={10}&amp;gt;} Sum({&amp;lt;FieldB={"dummy"}&amp;gt;} Amount)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Note, second workaround still allows to have an inner and outer set expression,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;but only works if the outer set expression only refers to EXISTING values.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;All non-existing value references must be in the inner set expression.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Rashmi&lt;/SPAN&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="3"&gt;&lt;SPAN&gt;I responded that these workarounds were inappropriate when referencing master measures.&lt;BR /&gt;Because well... it kinda breaks the whole feature.&lt;BR /&gt;&lt;BR /&gt;On February 7th, case was updated by Qlik with the following:&lt;BR /&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;FONT size="3"&gt;&lt;SPAN&gt;Hi,&lt;BR /&gt;I just wanted to update you on the progress of the request.&lt;BR /&gt;The bug is still under investigation and RnD &lt;U&gt;&lt;STRONG&gt;is experimenting with a fix that seems to resolve the use case mentioned here.&lt;/STRONG&gt;&lt;/U&gt;&lt;BR /&gt;&lt;U&gt;&lt;STRONG&gt;The fix is discussed and yet to be released but I do not have the exact ETA.&lt;/STRONG&gt;&lt;/U&gt;&lt;BR /&gt;Please let me know if you are okay to follow our support blog to get the news about the fix or should we keep the case open until we hear from RnD.&lt;BR /&gt;&lt;A href="https://community.qlik.com/t5/Support-Updates-Blog/bg-p/qlik-support-updates-blog" target="_blank"&gt;https://community.qlik.com/t5/Support-Updates-Blog/bg-p/qlik-support-updates-blog&lt;/A&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Rashmi&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="3"&gt;On April 10th, 2024 I received a new update with some bullshit workaround consisting of using if() ...&lt;BR /&gt;&lt;/FONT&gt;Again, not a workaround.&lt;BR /&gt;&lt;FONT size="3"&gt;I did not answer until May 14th, at which point the case had been closed due to no response from my end.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="3"&gt;I asked when the issue was finally going to get fixed, which reopened the case, and this is the last answer I had:&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT size="3"&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT size="3"&gt;&lt;U&gt;&lt;STRONG&gt;This is considered as working as designed.&lt;/STRONG&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="3"&gt;&lt;SPAN&gt;When multiple set-expressions exist (no matter outer or inner), engine evaluates the selections for each and tries to merge the results. if in any step the result is empty, engine considers that the whole dataset is selected then continue with the subsequent evaluations.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT size="3"&gt;&lt;SPAN&gt;For any further clarifications, please open new case as this case was closed 1 month back.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT size="3"&gt;&lt;SPAN&gt;Thank You!&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="3"&gt;&lt;SPAN&gt;Rajani&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/FONT&gt;So, in 6 months we went from "confirmed software defect" to "working as intended".&lt;BR /&gt;I based a LOT of standardized Apps on the master measure feature and the ability to have base expressions that can be altered through subsequent set expressions, which come "on top". It is a tremendous gain of maintenance time and simplicity in the code.&lt;BR /&gt;&lt;BR /&gt;I see errors and wrong results all other the place, specially when dealing with dates (most common cases of data "missing" from datasets).&lt;BR /&gt;&lt;BR /&gt;If it is working as intended, it is deeply confusing and&amp;nbsp;counter-intuitive. It severely limits the master-measure-referencing feature, which would be fabulous otherwise.&lt;BR /&gt;&lt;BR /&gt;I really hope that Qlik is going to revert on this decision, or address the issue differently.&lt;/P&gt;</description>
      <pubDate>Wed, 02 Oct 2024 16:18:08 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Bug-report-Outer-set-expression-is-not-inherited-if-1-the-outset/m-p/2484949#M101209</guid>
      <dc:creator>hadrienlp</dc:creator>
      <dc:date>2024-10-02T16:18:08Z</dc:date>
    </item>
  </channel>
</rss>

