Input objects are triggers
A functional map is triggered by the presence of the input objects that are specified as the arguments of the functional map. Each time a new combination of input objects is evaluated, the functional map is executed.
The functional map MakeItemRecord has two inputs: Detail and Header. One output ItemRecord is produced for each combination of Detail and Header in the input. In this example, there is one Header for many Details. The same Header object is sent to the functional map again and again with each new Detail.
For a complete explanation of how map rules are evaluated, see the Functions and Expressions documentation.