Hola, espero les sea de ayuda.
1) deben declarar las tablas que le van a pasar a la BAPI.
DATA BEGIN OF t_cabecera OCCURS 0.
INCLUDE STRUCTURE BAPIACHE09.
DATA END OF t_cabecera.
DATA: wa_cabecera LIKE BAPIACHE09.
DATA BEGIN OF t_poscliente OCCURS 0.
INCLUDE STRUCTURE BAPIACAR09.
DATA END OF t_poscliente.
DATA BEGIN OF t_posprove OCCURS 0.
INCLUDE STRUCTURE ZBAPIACAP09.
DATA END OF t_posprove.
DATA BEGIN OF t_impuesto OCCURS 0.
INCLUDE STRUCTURE BAPIACTX09.
DATA END OF t_impuesto.
DATA BEGIN OF t_importes OCCURS 0.
INCLUDE STRUCTURE BAPIACCR09.
DATA END OF t_importes.
DATA BEGIN OF t_retenciones OCCURS 0.
INCLUDE STRUCTURE BAPIACEXTC.
DATA END OF t_retenciones.
DATA BEGIN OF t_log OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA END OF t_log.
2) Una vez declaradas, deben poner los datos que necesiten en cada uno de sus campos. (para ver más detalles de los campos, entren a la se37 y miren el IMPORT de la función)
3) Una vez que cargaron los datos, estos pueden ser levantando un archivo, harcodeandolos, etc, llaman a la BAPI.
CALL FUNCTION 'Z_BAPI_ACC_DOCUMENT_POST'
EXPORTING
DOCUMENTHEADER = wa_cabecera
* Prueba copia de bapi_acc_posting_document_post
* IMPORTING
* obj_key = l_obj_key
TABLES
* ACCOUNTGL =
ACCOUNTRECEIVABLE = t_poscliente
ACCOUNTPAYABLE = t_posprove
ACCOUNTTAX = t_impuesto
CURRENCYAMOUNT = t_importes
* CRITERIA =
* VALUEFIELD =
EXTENSION1 = t_retenciones
RETURN = t_log
* PAYMENTCARD =
* CONTRACTITEM =
* EXTENSION2 =
* REALESTATE =
Llaman por último esta función y listo.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
Espero les halla servido, ante cualquier estoy a su disposición.