Other method like CHECK or POST is not useful for this since we can not use SET method inside this.
It's not so true
Working with CHECK Method is the best way to achieve your result IMHO.
Even if IM_HEADER is type IMPORTING
you can access the items
data: t_itm_ref TYPE purchase_order_items,
w_itm_ref type PURCHASE_ORDER_ITEM.
t_itm_ref = im_header->get_items( ).
and each item is an object
LOOP AT lt_itm_ref INTO lw_itm_ref.
with its own GET and SET methods
And, magic!, they works