It is possible:
* store the current file name in a variable (you can configure this in the for each loop)
* inspect the file name with a script task. According to the value found, set another variable (for example: if _Product_ was found, store Product in @typeFile variable)
* connect the script task to 12 data flow tasks (assuming each file has a different layout). In the precedence constraint, use an expression. For example: @typeFile == "Product"
The downside is that you are processing file per file.
While 12 for each loops may seem ugly, it will probably be much faster.
Need an answer? No, you need a question
My blog at https://sqlkover.com.
MCSE Business Intelligence - Microsoft Data Platform MVP