I managed to solve this by realizing from other examples, that the syntax inside the evaluation string should be the syntax of a Java application, therefore, as a map, I did:
map.get('Source').get('service')
The first .get() returns the value of the map Source key, then the second .get() returns the value of service. I really wonder what is the performance of that type of evaluation process. and moreover, if its possible to debug it?