<?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: Better understanding of filters in Active IQ Unified Manager Discussions</title>
    <link>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/Better-understanding-of-filters/m-p/69589#M14500</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the thorough information Kevin, it is much appreciated.&amp;nbsp; I will check out the reference manual later today.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Based on this I think I will need to employ a combination of user input and filter for my desired result, if a command requires a reference variable.&amp;nbsp; I would enable a filter like "get array by name", and in the name section, put $array_name_var.&amp;nbsp; Then define a query for $array_name_var to give the user a drop down.&amp;nbsp; This will return the appropriate array object, based on user selection, to the command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To hopefully clarify, my confusion with filters isn't at all with your point #1 (identify a list of objects based on certain criteria), it is with your point #3 (that they produce 1 result every time).&amp;nbsp; I understand now that you've explained it that the "get all arrays" will return one result, but I wouldn't expect something called a filter that said "get all arrays" to return one array.&amp;nbsp; Does that make sense, from a usability standpoint?&amp;nbsp; I don't think that the behavior itself is bad, I just think if it were somehow better named or better documented in the WFA tool itself, it could save confusion.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, even though I don't think I will be using filters/finders much, I do think it would be better to display the result before the command runs.&amp;nbsp; Again, just my opinion, but if I did include a filter for find volume &amp;lt; 50% full, I would still appreciate it telling me "I chose user_data_volume" before the workflow executes, even if it is in a different section of the window for user input.&amp;nbsp; Right now it seems to select and keep that information in the background, and I can only see what was chosen by looking at the execution details.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 12 Mar 2013 12:48:43 GMT</pubDate>
    <dc:creator>JCASON</dc:creator>
    <dc:date>2013-03-12T12:48:43Z</dc:date>
    <item>
      <title>Better understanding of filters</title>
      <link>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/Better-understanding-of-filters/m-p/69575#M14496</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just gotten into WFA and have looked at a couple of the training videos.&amp;nbsp; Overall the tool is very impressive and polished.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm trying to better understand the purpose of filters and finders.&amp;nbsp; I understand that a filter is essentially a one way query, while a finder is a multi-way query (multiple filters).&amp;nbsp; But the terminology is throwing me off.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What is strange to me is that it was very difficult to get a drop down list of arrays to work with a command.&amp;nbsp; If I choose the filter "Get all arrays," I would assume that I would have a drop down list of all arrays to work with.&amp;nbsp; But I don't.&amp;nbsp; Instead the behavior seems more like "randomly choose one out of all my arrays."&amp;nbsp; (And maybe it is just me, but I would think "randomly choose one of my arrays" would have to be one of the most useless things around!)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I open up the user input, add a variable of type query, and put in the same query from that filter in...then I get my drop down.&amp;nbsp; Which is good, but very awkward.&amp;nbsp; Wouldn't it be nicer if when I wanted to choose an array (or aggregate, or volume, or interface, or....) with a drop down list, that I wouldn't have to manually intervene and write or paste in SQL code?&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To me the word filter could imply "I'm giving you a set of things to choose from."&amp;nbsp; It seems to not be the case here unless I'm using it wrong.&amp;nbsp; It could also imply "you can only use a specific set of values" which again seems to not be the case.&amp;nbsp; It seems more like, "narrow down my list of choices and then I will choose randomly from the pile."&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Am I missing something?&amp;nbsp; Am I using the filters wrong?&amp;nbsp; I really hope I am, or that there is a better way to present simple drop downs that I'm unaware of.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jun 2025 06:08:03 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/Better-understanding-of-filters/m-p/69575#M14496</guid>
      <dc:creator>JCASON</dc:creator>
      <dc:date>2025-06-05T06:08:03Z</dc:date>
    </item>
    <item>
      <title>Re: Better understanding of filters</title>
      <link>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/Better-understanding-of-filters/m-p/69580#M14497</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You seem to have a few questions / statements and I will attempt to answer them as best I can.&amp;nbsp; Others will likely have similar answers / responses.&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Purpose of Filters?&lt;UL&gt;&lt;LI&gt;Filters are (in my opinion) named appropriately.&amp;nbsp; Regardless of what they are named, they provide the ability to identify a list of "Objects" that come from the WFA DB tables.&amp;nbsp; They are typically very simple SQL statements that will allow you to choose an object by Name, under a certain size, under a certain utilization or whatever.&amp;nbsp; &lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;Purpose of Finders:&lt;UL&gt;&lt;LI&gt;The name Finder is, as you point out, a little odd.&amp;nbsp; That said, try to think of it as a label and leave it at that.&amp;nbsp; The name will not change.&amp;nbsp; The purpose of Finders, as you indicate is to link several Filters together.&amp;nbsp; The rquirement here is that you can ONLY link filters together for the same object type.&amp;nbsp; This means you can only have multiple Filters for an aggregate or a volume in a Finder... but not both.&lt;/LI&gt;&lt;LI&gt;The purpose of Finders is to give you the ability to select the BEST resource for your proccess... not a random one.&amp;nbsp; What makes it the best is up to you.&amp;nbsp; There are several samples of Filters and Finders to act as guidelines / templates, but if you need some other criteria, then that's where you would need to create a new Filter, Finder... or both. &lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;Differences between Filters/Finders and User Inputs:&lt;UL&gt;&lt;LI&gt;Filters/Finders will ultimately find ONE result for your command.&amp;nbsp; One.&amp;nbsp; User Input queries will provide you a list of objects to select from.&lt;/LI&gt;&lt;LI&gt;User Inputs do require that you provide SQL statements, very similar to Filters... and as you seem to have done, you can cut/paste some of the SQL from Filters in order to get a User Input drop-down list.&lt;/LI&gt;&lt;LI&gt;With User Inputs, it is possible to have 'staggered' dropdowns, where you can feed the selected value of one user input into another.&amp;nbsp; The drawback here is that you DO need to know more about SQL.&amp;nbsp; Is this akward?&amp;nbsp; Yes.&amp;nbsp; Are there efforts to make this simpler?&amp;nbsp; Yes.&amp;nbsp; Does that help us right now?&amp;nbsp; No.&amp;nbsp; &lt;/LI&gt;&lt;LI&gt;Advice - Look at the Reference Manual to help look at other example workflows user inputs.&amp;nbsp; You can get to the Reference Manual by clicking on Help from the Top menu bar, then select 'Reference Manual'...&amp;nbsp; &lt;IMG src="http://community.netapp.com/legacyfs/online/19159_refman.png" width="405" /&gt;&amp;nbsp; The reference manual provides java-docs for ALL WFA content in your WFA system.&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;Getting a Drop-Down list in a command.&lt;UL&gt;&lt;LI&gt;Uhm.&amp;nbsp; Not possible.&amp;nbsp; Unless someone else wants to correct me.&lt;/LI&gt;&lt;LI&gt;The closest thing you could get would be to have a user input for your command, and in your 'Resource Selection' for the applicable attribute (aggregate, volume, etc)&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;Are you missing something or are you using Fiters wrong?&lt;UL&gt;&lt;LI&gt;I don't know how to answer that one &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_macro jive_macro_emoticon jive_emote" src="https://community.netapp.com/5.0.1/images/emoticons/happy.gif"&gt;&lt;/SPAN&gt;.&amp;nbsp; I would say, however, you seem to be confusing Filters with User Inputs.&amp;nbsp; You can get VERY crazy/createive with SQL statements to tweak and hone the drop-down lists to present a selected set of availble information from your WFA DB.&amp;nbsp; Again, I would point you to the Reference Manual to take a look at some of the other possibilities there.&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this helps,&lt;/P&gt;&lt;P&gt;Best,&lt;/P&gt;&lt;P&gt;Kevin.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Mar 2013 09:22:18 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/Better-understanding-of-filters/m-p/69580#M14497</guid>
      <dc:creator>hill</dc:creator>
      <dc:date>2013-03-12T09:22:18Z</dc:date>
    </item>
    <item>
      <title>Re: Better understanding of filters</title>
      <link>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/Better-understanding-of-filters/m-p/69589#M14500</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the thorough information Kevin, it is much appreciated.&amp;nbsp; I will check out the reference manual later today.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Based on this I think I will need to employ a combination of user input and filter for my desired result, if a command requires a reference variable.&amp;nbsp; I would enable a filter like "get array by name", and in the name section, put $array_name_var.&amp;nbsp; Then define a query for $array_name_var to give the user a drop down.&amp;nbsp; This will return the appropriate array object, based on user selection, to the command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To hopefully clarify, my confusion with filters isn't at all with your point #1 (identify a list of objects based on certain criteria), it is with your point #3 (that they produce 1 result every time).&amp;nbsp; I understand now that you've explained it that the "get all arrays" will return one result, but I wouldn't expect something called a filter that said "get all arrays" to return one array.&amp;nbsp; Does that make sense, from a usability standpoint?&amp;nbsp; I don't think that the behavior itself is bad, I just think if it were somehow better named or better documented in the WFA tool itself, it could save confusion.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, even though I don't think I will be using filters/finders much, I do think it would be better to display the result before the command runs.&amp;nbsp; Again, just my opinion, but if I did include a filter for find volume &amp;lt; 50% full, I would still appreciate it telling me "I chose user_data_volume" before the workflow executes, even if it is in a different section of the window for user input.&amp;nbsp; Right now it seems to select and keep that information in the background, and I can only see what was chosen by looking at the execution details.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Mar 2013 12:48:43 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/Better-understanding-of-filters/m-p/69589#M14500</guid>
      <dc:creator>JCASON</dc:creator>
      <dc:date>2013-03-12T12:48:43Z</dc:date>
    </item>
    <item>
      <title>Re: Better understanding of filters</title>
      <link>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/Better-understanding-of-filters/m-p/69594#M14503</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think I understand your confusion and I would like to add my two bits.&amp;nbsp; Kevin did a great job of explaining how Filters and User Input queries work but I would like to expound upon it further.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Filters&lt;/STRONG&gt;: The idea of a filter is to tell the WFA server to give me the top returned value based upon the id column of a SQL query.&amp;nbsp; The best practice is to create a SQL query that looks for a single object type and would not be an overly complicated query.&amp;nbsp; For Example: Get All Arrays would be a query that returns a list of Array objects with a LIMIT 1 value.&amp;nbsp; Why only one value?&amp;nbsp; I think that this is where some of the confusion lives.&amp;nbsp; In order to create an object, we need only one value in the Command, right?&amp;nbsp; So if this is the case, then how would the command understand a list of values.&amp;nbsp; Now for this reason, we need to only return the top value from a filtered list.&amp;nbsp; Also, there is the concept of a Reference Variable.&amp;nbsp; When you look at the Command object, there are some inputs that have a small R beside them.&amp;nbsp; This indicates that it is a reference variable to a 'found' or 'declared' object.&amp;nbsp; Think of this variable as the foreign key to a different table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Finders&lt;/STRONG&gt;: Kevin mentioned this and I think that it warrants some further definition.&amp;nbsp; Finders are made by combining one or more Filters.&amp;nbsp; Why would I want to have multiple Filters executing at once?&amp;nbsp; Remember how I mentioned that Filters are going to return the output of a simple query and only the top value based on the ID column?&amp;nbsp; Well, Finders allow me to do more with my Filters.&amp;nbsp; Now, I can set my Sort by Column for the Filter and/or I can combine multiple simple Filters to unlock more of the power of WFA.&amp;nbsp; This is one of the keys to the real power behind WFA - Filters and Finders.&amp;nbsp; Now with a Finder, I can choose the best array based on License Type (I need to create an NFS export), Data ONTAP version (the feature I want to use is only available in 8.1+) and the NetApp model.&amp;nbsp; This is an example of combining Filters to make a more complex Finder object.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;User Inputs&lt;/STRONG&gt;: Sometimes, it is helpful to control what options a user can enter into the workflow form.&amp;nbsp; There are four different types of User Input types (defined below) that can be used.&amp;nbsp; The big difference between Filters/Finders and User Inputs&amp;nbsp; is pre-execution selection criteria.&amp;nbsp; Before a user executes, the selection criteria can be limited.&amp;nbsp; This is good for manipulating specific objects but limiting possible typo issues.&amp;nbsp; I can have a user select a Vfiler based on a name and then have a second drop down User Input which displays the volumes of that vFiler.&amp;nbsp; After the volume is selected, a third User Input of String type is available for the Qtree name and so on.&amp;nbsp; This is a great example of using a cascading User Input.&amp;nbsp; Now what if I want my Junior storage admin to provision a new volume in an existing vFiler but I want that new volume in the best aggregate on my controller (let's say that I have four of varying capacity).&amp;nbsp; I don't want the Junior Admin tracking down the controller and pulling out his calculator to determine the best place.&amp;nbsp; I will make it easier by combining User Inputs and intelligent Filter/Finders.&amp;nbsp; Now, I have a User Input query which shows the available vFilers in the environment.&amp;nbsp; He selects the vFiler and enters the new volume name and other required inputs.&amp;nbsp; This time, the Junior admin hits execute and based on my previously defined criteria, WFA finds the best available aggregate in the controller that owns the vFiler.&amp;nbsp; Now, I can have my Junior admin provision new storage and he only has to have a very high level of NetApp knowledge. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;User Input Types&lt;/EM&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;String - Text entry and the variable will be declared as a type of 'string'.&amp;nbsp; Should not be used for numbers as further mathamatical manipulation can be tricky.&lt;/LI&gt;&lt;LI&gt;Number - Text entry and the variable will be declared as a type of 'int'.&amp;nbsp; Should be used for any number and can be limited by the Values section of the User Input management screen&lt;/LI&gt;&lt;LI&gt;Enum - a hard coded list of values that will be user selectable via a drop down.&amp;nbsp; This is list is defined in the Values section of the User Input management screen.&lt;/LI&gt;&lt;LI&gt;Query - a SQL statement that is executed in real time against the WFA cache Database.&amp;nbsp; This can be either simple or very complex SQL statements as is used by the WFA Architect to help control user inputs while providing some dynamic capabilities.&amp;nbsp; As Kevin stated, these types of User Inputs can be cascaded where a lower User Input is defined based on a previously selected/entered value of an earlier User Input.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope that this helps further explain the difference between these two approaches.&amp;nbsp; If you consider Filters/Finders as used during the planning phase of Preview and Execution and User Inputs as used prior to the planning phase, then it might help as you define/design your workflows.&amp;nbsp; Filters/Finders help to limit the number of required User Inputs while maintaining a level of control of the selection criteria.&amp;nbsp; In regards to the last portion of your post,&amp;nbsp; don't forget to use the Preview button if you want to see what WFA is planning to use based on your Filters/Finders.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jeremy Goodrum, NetApp&lt;/P&gt;&lt;P&gt;The Pirate&lt;/P&gt;&lt;P&gt;Twitter: @virtpirate&lt;/P&gt;&lt;P&gt;Blog: &lt;A href="http://www.virtpirate.com" target="_blank"&gt;www.virtpirate.com&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Mar 2013 15:12:12 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/Better-understanding-of-filters/m-p/69594#M14503</guid>
      <dc:creator>goodrum</dc:creator>
      <dc:date>2013-03-12T15:12:12Z</dc:date>
    </item>
  </channel>
</rss>

