Could you do a recursive read of objects using a while loop?

This setup will read your current department into the list of children to traverse and then “pop it” from the data source, read its children which are added to the list of children to traverse and so on until there are no more children to traverse.
All read departments are added to a separate result data source that contains all children connected to your department.
