Every AL-Developer uses “SETFILTER” on a daily basis. But did you know that there are certain situations where “SETFILTER” will refuse to work?
First let’s look at the syntax:
Rec.SETFILTER(<Field>, <Filter>, <Placeholders>);
Seems simple enough right?
This will work just fine. But what happens if we do the following?
The applied filter will look like this:
AL did not manage to replace the placeholders inside the filter string, because “*” and “@” are used.
To make this work, we must use “STRSUBSTNO”:
That way, we construct the filter-text by ourselves and pass it into the filter string of the SETFILTER function. The result will look like this: