One of the big reasons that I avoid CPYFRMIMPF is that it does not allow
for the granularity of error checking I want. For example, if on the
1,026th row being imported if the item number is bigger than our item
number field I want to put that on an exception report and go on. This
used to bite me all the time. They would download data. Then some
<expletive deleted> would append some characters on the item number field
and then would send it back up.
We had a canned package at one time that always put numeric data into
their key field when generating a new row but it was an alphanumeric
field. I asked them why it was alphanumeric. Their response was they
wanted to make it easier for people to migrate from other packages to
theirs. Made sense.