<?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 Need Help with Calculated Expression Evaluation in Qlik Sense Mashup in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Need-Help-with-Calculated-Expression-Evaluation-in-Qlik-Sense/m-p/2112928#M90897</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I'm working on a Qlik Sense mashup application with AngularJS, and I'm facing a challenge related to calculated expression evaluation. I have a scenario where I want to calculate the count of distinct clients based on a certain expression. Before performing an action, I need to evaluate the client count and take different actions based on the result.&lt;/P&gt;
&lt;P&gt;Here's a simplified version of what I'm trying to achieve:&lt;/P&gt;
&lt;P&gt;I have a button in my mashup application that triggers a filtering action using a calculated expression. Before applying the filter, I want to calculate the count of distinct clients using an expression. If the calculated client count is above a certain threshold (let's say 20,000), I'd like to display a pop-up message to the user indicating that they need to select a smaller number of clients. If the client count is below the threshold, I want to proceed with the filtering action.&lt;/P&gt;
&lt;P&gt;I've attempted to use the &lt;STRONG&gt;createGenericObject&lt;/STRONG&gt; method to evaluate the expression and retrieve the client count, but I've encountered challenges in getting the actual calculated value from the response.&lt;/P&gt;
&lt;P&gt;Here's my current js code:&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt; $scope.customerFilter = function(expression) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;var clientCountExpression = "=count(distinct Clients)";&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; app.obj.app.createGenericObject({&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; clientCount: {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; qValueExpression: clientCountExpression,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; }, function(reply) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; var clientCount = reply.clientCount.qValue.qNum;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;console.log("Client count:"+clientCount);&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; if (clientCount &amp;gt; 1000) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; // Display a pop-up message indicating that there are too many clients&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; alert("Please select a smaller number of clients.");&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; } else {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;//Filter clients&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; app.obj.app.variable.getContent("vNameClient", function(fieldName) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; var field = app.obj.app.field(fieldName.qContent.qString);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; field.selectMatch(expression).then(function() {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;console.log("Filtering done");&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; });&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; });&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; });&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; };&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is not returning the first console.log.&lt;/P&gt;
&lt;P&gt;I would greatly appreciate any guidance or suggestions. Thank you in advance for your help and insights.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;BR /&gt;Irene&lt;/P&gt;</description>
    <pubDate>Mon, 04 Sep 2023 15:01:13 GMT</pubDate>
    <dc:creator>irechevallejo</dc:creator>
    <dc:date>2023-09-04T15:01:13Z</dc:date>
    <item>
      <title>Need Help with Calculated Expression Evaluation in Qlik Sense Mashup</title>
      <link>https://community.qlik.com/t5/App-Development/Need-Help-with-Calculated-Expression-Evaluation-in-Qlik-Sense/m-p/2112928#M90897</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I'm working on a Qlik Sense mashup application with AngularJS, and I'm facing a challenge related to calculated expression evaluation. I have a scenario where I want to calculate the count of distinct clients based on a certain expression. Before performing an action, I need to evaluate the client count and take different actions based on the result.&lt;/P&gt;
&lt;P&gt;Here's a simplified version of what I'm trying to achieve:&lt;/P&gt;
&lt;P&gt;I have a button in my mashup application that triggers a filtering action using a calculated expression. Before applying the filter, I want to calculate the count of distinct clients using an expression. If the calculated client count is above a certain threshold (let's say 20,000), I'd like to display a pop-up message to the user indicating that they need to select a smaller number of clients. If the client count is below the threshold, I want to proceed with the filtering action.&lt;/P&gt;
&lt;P&gt;I've attempted to use the &lt;STRONG&gt;createGenericObject&lt;/STRONG&gt; method to evaluate the expression and retrieve the client count, but I've encountered challenges in getting the actual calculated value from the response.&lt;/P&gt;
&lt;P&gt;Here's my current js code:&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt; $scope.customerFilter = function(expression) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;var clientCountExpression = "=count(distinct Clients)";&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; app.obj.app.createGenericObject({&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; clientCount: {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; qValueExpression: clientCountExpression,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; }, function(reply) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; var clientCount = reply.clientCount.qValue.qNum;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;console.log("Client count:"+clientCount);&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; if (clientCount &amp;gt; 1000) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; // Display a pop-up message indicating that there are too many clients&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; alert("Please select a smaller number of clients.");&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; } else {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;//Filter clients&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; app.obj.app.variable.getContent("vNameClient", function(fieldName) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; var field = app.obj.app.field(fieldName.qContent.qString);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; field.selectMatch(expression).then(function() {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;console.log("Filtering done");&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; });&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; });&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; });&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; };&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is not returning the first console.log.&lt;/P&gt;
&lt;P&gt;I would greatly appreciate any guidance or suggestions. Thank you in advance for your help and insights.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;BR /&gt;Irene&lt;/P&gt;</description>
      <pubDate>Mon, 04 Sep 2023 15:01:13 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Need-Help-with-Calculated-Expression-Evaluation-in-Qlik-Sense/m-p/2112928#M90897</guid>
      <dc:creator>irechevallejo</dc:creator>
      <dc:date>2023-09-04T15:01:13Z</dc:date>
    </item>
  </channel>
</rss>

