Hi,
I could be wrong but don't you have to loop over the whole file in option 1 anyway to populate the field? Plus you then have the added overhead of opening the file and writing to it to then have to reopen it for reading to the PSA?
Personally I'd go for option 3 and use an end routine as you would only need to read the file once, only need to set the value for the new field once (in the end routine) and then do a loop over the result package to assign the value to the field.
Regards,
Gareth