I come across a component called 'trules'.
this component filters and routes data to a different pipeline based on the rules set.
This is very similar to a 'tFilter' transformation. for ex: if we have two filter criteria then we can use two 'tFilter' components.
so my doubt is, what is the benefit 'tRules' provides over 'tFilter'.
tRules (available with subscription) allow business rules stored in external files and allow you to create business rules based on DRL format.
On the other hand, tFilterRow is based on Java syntax for simple or advanced filtrers. It is available with TOS.
Also consider tScriptRules (https://sites.google.com/site/bekwam/home/tscriptrules-wiki).
The advantage given in the help site shared by you is that, we can do advanced expressions.
But in tFilter also we can created advanced expressions by using/ticking 'advanced mode'.
With tFilter you are limited to using Java and the rules are set at design time. With the tRules you can set the rules in Drools or Excel and these can change after the job using the tRules has been compiled. So, if you wanted to be really clever, you could write a job which dynamically creates (or recreates) your rules file and then calls the job that uses that file for its rules. This is significantly different to what is offered by the tFilter component.