Oracle Fusion Cloud Apps store a lot of data, and allow you to retrieve it using REST APIs. However, not all the attributes of an object in Fusion might be queryable. The Fusion teams takes performance into account, and allowing random query on non-indexed field might be too slow when the data set is very large. As a result you'll find that in some cases when you are passing the "q" parameter in your REST call querying a specific attribute value – you'll get a reply saying "attribute X is not queryable".
In some cases, the Fusion team might provide alternative "finder" query approaches. For example if you look at the documentation to the tax exemption object in the financial module you'll see a finder option and when you'll expand it you'll see a couple of finders with attributes you can query by:
Oracle Visual Builder has built-in understanding of the syntax of Fusion Apps REST APIs, and knows how to work with both the q and the finder approaches to filter data. The filterCriterion in SDPs provides a declarative way to generate the right syntax for the q parameter approach – as shown in this blog.
In addition, you'll notice that an SDP in Visual Builder also has a finder property – which can be used to execute queries using the finders a REST endpoint supports.
In general the syntax for a finder is – ?finder=<finderName>;<variableName>=<variableValue>,<variableName2>=<variableValue2>
In your application you can construct this syntax and pass it to the finder to filter the data returned by the SDP. Of course you can use variables from your page when constructing the finder string.
In the demo video below, we start by figuring out a REST call syntax that will let us filter receivable invoices using POSTMAN. Once we have the right syntax, we create an app in Visual Builder that construct the right finder value to filter a table and show the relevant results.
In the demo the value assigned to the finder is:
'invoiceSearch;TransactionSource="Receivables Import",CrossReference="' + $variables.searchvar +'"'
Note the use of double quotes around string values.
