I know this thread is a few months old but thought I'd post what I have found out, having come up against a very similar issue.
IBM support told me:
when using the diff operator values from duplicate field names including key and value fields are copied from the before data set only.
They also referred me to the documentation - which I had read, but came to a different conlusion about how the stage should work!
In essence, the key and value fields *must* have the same names in the before and after data.
That means if you have records in the after data which don't exist in the before data - i.e. inserts - what you actually get in the output data is a set of records with all the key and value fields set to their data type default.
It also means that any value fields
always contain the data from the
before record. So if you have output records identified as "edits" you will see all the value fields containing the before data.
It's working as designed according to IBM but it means the Difference stage is not very good at telling you the differences
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)