Maps allow you to translate data between Data Definitions. You configure the Map with the logic necessary to convert the data from one Data Definition to another.
It is possible to use one map to write from Data Definition A to Data Definition B, and then use a follow on map to write data from Data Definition B to Data Definition C. This means a Data Definition that was the destination of one map can become the source of another map.
Maps are event driven, pull based mapping. That is the events are available against the destination data definition to which you assign script code. The mapping engine rolls through the destination data definition executing any events that have script code assigned to them. In essence the events fire pulling the necessary data from the sources into the destination.
Because the mapping code is written in script you have full control over the functionality of the map. The script is a fully featured object oriented scripting language. It is based of the popular Object Pascal development language. See "Scripting Reference" for more information on creating script code. The power of the mapping engine is what makes Flow so flexible for configuring business processes.
Maps can be made between any combination of DB, File, and Web Definitions. Web Definitions are a special case, in that the definition you are mapping relates to whether the Web Definition is the source or destination of the map. If the Web Definition is the source, then you are mapping the response definition. if the Web Definition is the destination you are mapping the request definition.
When assigning a Data Definition to a Map it is considered a design time assignment, when coming to use the Map in an Action you have the chance to reassign the Data Definition (run time assignment). This allows you to use the same Map in multiple Actions each with their own Data Definition.