This error is regularly caused by an incorrect field catalog. In your case, you say i_structure = 'MARA', but your ty_mara does not match all mara fields. This results into a pointer (running over all MARA fields) does not find some MARA fields in your ty_mara.
THe ALV grid does work completely different from this procedure, so this error won't occur.