<?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: Adding Filter using JavaScript API in Developer</title>
    <link>https://community.fabric.microsoft.com/t5/Developer/Adding-Filter-using-JavaScript-API/m-p/810706#M21014</link>
    <description>&lt;P&gt;Why dont you just put an if statement around the whole thing?&amp;nbsp; Check the values before even creating the filter object?&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&amp;lt;script&amp;gt;

if($("#val1").val() &amp;amp;&amp;amp; $("#val12").val()] {

const filter1= {
$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "Table1",
column: "column1",
},

operator: "In",
values: [$("#val1").val()]
};

const filter2 = {

$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "Table2",
column: "column2",
},

operator: "In",
values: [$("#val12").val()],
};

var config = {
type: 'report',
tokenType: models.TokenType.Embed,
accessToken: accessToken,
embedUrl: embedUrl,
id: embedReportId,
permissions: models.Permissions.All,
filters: [filter1, filter2],
settings: {
filterPaneEnabled: false,
navContentPaneEnabled: false
}
};


var reportContainer = $('#DivContainer')[0];

// Embed the report and display it within the div container.
var report = powerbi.embed(reportContainer, config);

report.setFilters([filter1, filter2]);
}
&amp;lt;/script&amp;gt;

 &lt;/PRE&gt;&lt;P&gt;&amp;nbsp;You can aslo check that the .val() != "" if you wanted too.&amp;nbsp; If you want filter1 to run even if filter2 is not valid then&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&amp;lt;script&amp;gt;
let filter1 = null;
let filter2 = null;
if($("#val1").val() &amp;amp;&amp;amp; $("#val1").val() != "") {

filter1= {
$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "Table1",
column: "column1",
},
}
operator: "In",
values: [$("#val1").val()]
};
if($("#val12").val() &amp;amp;&amp;amp; &amp;amp;&amp;amp; $("#val2").val() != "") {
filter2 = {

$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "Table2",
column: "column2",
},

operator: "In",
values: [$("#val12").val()],
};
}

var config = {
type: 'report',
tokenType: models.TokenType.Embed,
accessToken: accessToken,
embedUrl: embedUrl,
id: embedReportId,
permissions: models.Permissions.All,
settings: {
filterPaneEnabled: false,
navContentPaneEnabled: false
}
};


var reportContainer = $('#DivContainer')[0];

// Embed the report and display it within the div container.
var report = powerbi.embed(reportContainer, config);
if(filter1 &amp;amp;&amp;amp; filter2) {
report.setFilters([filter1, filter2]);
} else if(filter1) {
report.setFilters([filter1]);
} else if(filter2) {
report.setFilters([filter2]);
}
&amp;lt;/script&amp;gt;&lt;/PRE&gt;&lt;P&gt;The main thing is to set those only if there are values available,&amp;nbsp; do not set the fitlers in the config, and instead set them where you are below, but make sure the filter does not equal null before adding it. Hope that helps.&lt;/P&gt;</description>
    <pubDate>Sun, 06 Oct 2019 23:43:14 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2019-10-06T23:43:14Z</dc:date>
    <item>
      <title>Adding Filter using JavaScript API</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Adding-Filter-using-JavaScript-API/m-p/810177#M21007</link>
      <description>&lt;P&gt;I have smilar issue but When I am adding Filter I have multiple parameter so if one of them is blank or null its not throwing filter at all.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;following is prototype of my code&lt;/P&gt;&lt;P&gt;&amp;lt;script src="&lt;A href="https://community.fabric.microsoft.com/" target="_blank"&gt;https://npmcdn.com/es6-promise@3.2.1"&amp;gt;&amp;lt;/script&lt;/A&gt;&amp;gt;&lt;BR /&gt;&amp;lt;script src="~/localpath/scripts/powerbi.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;lt;script&amp;gt;&lt;/P&gt;&lt;P&gt;const filter1= {&lt;BR /&gt;$schema: "&lt;A title="" href="http://powerbi.com/product/schema#basic" target="_blank" rel="nofollow noopener noreferrer"&gt;http://powerbi.com/product/schema#basic&lt;/A&gt;",&lt;BR /&gt;target: {&lt;BR /&gt;table: "Table1",&lt;BR /&gt;column: "column1",&lt;BR /&gt;},&lt;/P&gt;&lt;P&gt;operator: "In",&lt;BR /&gt;values: [$("#val1").val()]&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;const filter2 = {&lt;/P&gt;&lt;P&gt;$schema: "&lt;A title="" href="http://powerbi.com/product/schema#basic" target="_blank" rel="nofollow noopener noreferrer"&gt;http://powerbi.com/product/schema#basic&lt;/A&gt;",&lt;BR /&gt;target: {&lt;BR /&gt;table: "Table2",&lt;BR /&gt;column: "column2",&lt;BR /&gt;},&lt;/P&gt;&lt;P&gt;operator: "In",&lt;BR /&gt;values: [$("#val12").val()],&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;var config = {&lt;BR /&gt;type: 'report',&lt;BR /&gt;tokenType: models.TokenType.Embed,&lt;BR /&gt;accessToken: accessToken,&lt;BR /&gt;embedUrl: embedUrl,&lt;BR /&gt;id: embedReportId,&lt;BR /&gt;permissions: models.Permissions.All,&lt;BR /&gt;filters: [filter1, filter2],&lt;BR /&gt;settings: {&lt;BR /&gt;filterPaneEnabled: false,&lt;BR /&gt;navContentPaneEnabled: false&lt;BR /&gt;}&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;var reportContainer = $('#DivContainer')[0];&lt;/P&gt;&lt;P&gt;// Embed the report and display it within the div container.&lt;BR /&gt;var report = powerbi.embed(reportContainer, config);&lt;BR /&gt;&lt;BR /&gt;report.setFilters([filter1, filter2]);&lt;/P&gt;&lt;P&gt;&amp;lt;/script&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;so If filter2 is blank or null its not filtering Filter1 my charts ges blanks after this&lt;/P&gt;</description>
      <pubDate>Fri, 04 Oct 2019 18:19:07 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Adding-Filter-using-JavaScript-API/m-p/810177#M21007</guid>
      <dc:creator>khushbu123</dc:creator>
      <dc:date>2019-10-04T18:19:07Z</dc:date>
    </item>
    <item>
      <title>Re: Adding Filter using JavaScript API</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Adding-Filter-using-JavaScript-API/m-p/810412#M21009</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Soooo, in theroy.&lt;/P&gt;&lt;P&gt;According to the Wiki&amp;nbsp;&lt;A href="https://github.com/Microsoft/PowerBI-JavaScript/wiki/Filters" target="_blank" rel="noopener"&gt;https://github.com/Microsoft/PowerBI-JavaScript/wiki/Filters&lt;/A&gt;&lt;/P&gt;&lt;PRE&gt;report.removeFilters();&lt;/PRE&gt;&lt;P&gt;Will remove the filter, but have never managed to get that to work ?!?!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also you shouldn't need this line in your code, as you have already applied it in the config&lt;/P&gt;&lt;PRE&gt;report.setFilters([filter1, filter2]);&lt;/PRE&gt;&lt;P&gt;So leading into that, you should be able to remove the filters from the config before pulling the report, saving more qureys to PowerBI Embedded&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Just after var config{}&lt;BR /&gt;Stupid code&lt;/P&gt;&lt;PRE&gt;&amp;nbsp;if ($("#val1").val() == "" &amp;amp;&amp;amp; &lt;SPAN&gt;$("#val12").val()&lt;/SPAN&gt; == "") {&lt;BR /&gt;config.filters = [];&lt;BR /&gt;} else if ($("#val1").val() == "") {&lt;BR /&gt;config.filters = [&lt;SPAN&gt;filter2&lt;/SPAN&gt;];&lt;BR /&gt;} else if (&lt;SPAN&gt;$("#val12").val()&lt;/SPAN&gt; == "") {&lt;BR /&gt;config.filters = [&lt;SPAN&gt;filter1&lt;/SPAN&gt;];&lt;BR /&gt;}&lt;BR /&gt;
&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;Haven't tested or know if syntax is correct lol.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If it works solution it! if you change comment in what you did so others can learn!&lt;/P&gt;</description>
      <pubDate>Sat, 05 Oct 2019 09:35:01 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Adding-Filter-using-JavaScript-API/m-p/810412#M21009</guid>
      <dc:creator>JoshoDotNZ</dc:creator>
      <dc:date>2019-10-05T09:35:01Z</dc:date>
    </item>
    <item>
      <title>Re: Adding Filter using JavaScript API</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Adding-Filter-using-JavaScript-API/m-p/810706#M21014</link>
      <description>&lt;P&gt;Why dont you just put an if statement around the whole thing?&amp;nbsp; Check the values before even creating the filter object?&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&amp;lt;script&amp;gt;

if($("#val1").val() &amp;amp;&amp;amp; $("#val12").val()] {

const filter1= {
$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "Table1",
column: "column1",
},

operator: "In",
values: [$("#val1").val()]
};

const filter2 = {

$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "Table2",
column: "column2",
},

operator: "In",
values: [$("#val12").val()],
};

var config = {
type: 'report',
tokenType: models.TokenType.Embed,
accessToken: accessToken,
embedUrl: embedUrl,
id: embedReportId,
permissions: models.Permissions.All,
filters: [filter1, filter2],
settings: {
filterPaneEnabled: false,
navContentPaneEnabled: false
}
};


var reportContainer = $('#DivContainer')[0];

// Embed the report and display it within the div container.
var report = powerbi.embed(reportContainer, config);

report.setFilters([filter1, filter2]);
}
&amp;lt;/script&amp;gt;

 &lt;/PRE&gt;&lt;P&gt;&amp;nbsp;You can aslo check that the .val() != "" if you wanted too.&amp;nbsp; If you want filter1 to run even if filter2 is not valid then&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&amp;lt;script&amp;gt;
let filter1 = null;
let filter2 = null;
if($("#val1").val() &amp;amp;&amp;amp; $("#val1").val() != "") {

filter1= {
$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "Table1",
column: "column1",
},
}
operator: "In",
values: [$("#val1").val()]
};
if($("#val12").val() &amp;amp;&amp;amp; &amp;amp;&amp;amp; $("#val2").val() != "") {
filter2 = {

$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "Table2",
column: "column2",
},

operator: "In",
values: [$("#val12").val()],
};
}

var config = {
type: 'report',
tokenType: models.TokenType.Embed,
accessToken: accessToken,
embedUrl: embedUrl,
id: embedReportId,
permissions: models.Permissions.All,
settings: {
filterPaneEnabled: false,
navContentPaneEnabled: false
}
};


var reportContainer = $('#DivContainer')[0];

// Embed the report and display it within the div container.
var report = powerbi.embed(reportContainer, config);
if(filter1 &amp;amp;&amp;amp; filter2) {
report.setFilters([filter1, filter2]);
} else if(filter1) {
report.setFilters([filter1]);
} else if(filter2) {
report.setFilters([filter2]);
}
&amp;lt;/script&amp;gt;&lt;/PRE&gt;&lt;P&gt;The main thing is to set those only if there are values available,&amp;nbsp; do not set the fitlers in the config, and instead set them where you are below, but make sure the filter does not equal null before adding it. Hope that helps.&lt;/P&gt;</description>
      <pubDate>Sun, 06 Oct 2019 23:43:14 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Adding-Filter-using-JavaScript-API/m-p/810706#M21014</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-10-06T23:43:14Z</dc:date>
    </item>
  </channel>
</rss>

