Hello,
there's a problem in standard IDOC inbound processing - it can handle only INSERT entries into the source list. Not modify, not delete entries.
If you are ok with only inserting new entries, I'd suggest you to go th IDOC way.
Otherwise you can use BDC, but here you can face issues with adressing the correct row with its index (e.g. you can't modify line item on 50th row)
But I managed to create own code to manipulate with source list items via FM ME_DIRECT_INPUT_SOURCE_LIST - you can check at my blog oprsteny.com