Dude, you are using wrong op code. Here is some pseudo code:
D fileds E DS EXTNAME(itemfile)
D workds E DS EXTNAME(itemfile) prefix(z:1)
C keylist chain itemfile
C if %found(itemfile)
C eval workds = fileds
Now all fields are available and if you need to update, then EVAL FILEDS = WORKDS and do an update. MOVEA is for arrays, not data structures. Try Bob Cozzi’s group for basic code stuff like this. Or even Google would pulled it probably.