My opinion,
If you are working with ORDERS message type, the correct way to use is ORDE.
1. The mapping of IDoc to SAP fields is inbuilt in the processing function module, so you don't have to worry about mapping each of the fields to BAPI input parameters.
2. If an IDoc errors, and if you have configured IDoc error workflow to route that IDoc to a person, ORDE allows the user to process the IDoc in foreground and he will be able to make corrections to the BDC while processing. If you have coded for BAPI, he/she has to correct the IDoc, in the proper segment and hope that the corrections work as expected.
Thanks,
Juwin