Hello!I'm having a doubt about the use of the function index(), as a best practice in Appian development.In the Appian documentation appears as: index( data, index, default ), but I know that we can use the function as: index( data, index, index, index... (as many as needed), default ), to navigate between an object and it returns the value needed.
The question is: Should I use nested index() functions? or Is better to use just one index function with many indexes inside?
Example:
{CountriesES, CountriesUS, CountriesNL} -> Cities -> Town
1 - Index(CountriesES, "Cities", "Town", null)
2 - Index(lIndex(CountriesES, "Cities", null), "Town", null).
Discussion posts and replies are publicly visible
As far as I have explored the index function , Index(CountriesES, "Cities", "Town", null) could only be relevant to expression rule as it shows the below msg when we try to switch the expression mode to design mode in the interface.
I highly recommend only using 3 parameters in index function (normal behaviour). Using +3 params will work, but it is not the correct way to use so maybe in a future, Appian won´t support it. Instead of using nested index functions manually, I suggest you create a function like this:
reduce( index(_, _, a!defaultValue(ri!default, null)), ri!dictionary, ri!path )
Don't use it like that. This is a edge case of the internal implementation and has zero official support.
According to me index function is used to fetch the value from any particular data at a given index from any data.
for example:- index(data,index,{}), for example suppose i have querry rule and want to fetch data so i will simply do like this-- index(query rule,"data",{}), and suppose if i need to fetch furhter value from data than in that case we will use nested index function with data as the first parameter and the whichever field we want to extract that will become the second parameter. and the third parameter is important to give because suppose if your expression doesn't find value at the index what you are looking for so it should return something instead of giving errors so to avoid that error we pass the null parameter. I hope that answers your query.
I just published a blog post about the index() function.
appian.rocks/.../