Anderton,
I would prefer moving them to VBAK and then using it. Why?
1. Once you have queried KNVV and moved it to VBAK you do not have to perform the select again.
2. During SO change, you already have the data in VBAK so you do not have to fetch again from KNVV.
3. Lets say the Z field was changed on KNVV after creation of SO and if your requirement is to use the Z field content when the SO was created, you cannot go back to KNVV since the data is changed. But if the same was stored in VBAK, you do not have that problem.
Thanks,
Vikram.M