Behaviour of copy condition for mappings

I have noticed that even if I have a copy condition set for a field of a mapping, if there is any transformation flow invoked for that field, it still invokes that flow, even if the condition should fail.

I checked this by setting a copy condition as 1 == 2, and the transform flow was still invoked.

I need to stop the transform from executing if the input value is null, but it seems I am unable to do this, since no copy condition will stop the flow executing, and I am forced to check in my flow for a null value and exit.

Do I understand this correctly? Has anybody else come accross this behaviour?

The mapping condition does not control whether or not the transformer will be called. It controls mapping of the variable only.

If you need to conditionally call a service, use a branch step.