Archivo
BAPI_ACC_DOCUMENT_POST – Actualizar campo REBZG
Caso: Al querer modificar los campos REBZG, REBZZ, REBZJ, la BAPI_ACC_DOCUMENT_POST no tiene disponibles los campos.
Solución: Se debe revisar la nota SAP 487722, en la cual indica en la segunda opción (la que utilicé yo) la creación de una BTE por la FIBF.
Pasos:
1. Por lo pronto, se debe hacer la llamada a la BAPI BAPI BAPI_ACC_DOCUMENT_POST con la tabla EXTENSION1 (no agrego todo el código para no aburrir)
DATA:it_bapiacextc TYPE TABLE OF bapiacextc.
DATA lwa_bapiacextc TYPE bapiacextc.
CLEAR lwa_bapiacextc.
lwa_bapiacextc-field1 = lv_posnr.
lwa_bapiacextc-field2 = lwa_out-belnr. » Nro. documento factura
lwa_bapiacextc-field3 = lwa_out-gjahr. » Ejercicio doc.factura
lwa_bapiacextc-field4 = ‘001’. » Posición doc.factura (siempre 001)
APPEND lwa_bapiacextc TO it_bapiacextc.
CALL FUNCTION ‘BAPI_ACC_DOCUMENT_POST’
EXPORTING
documentheader = lwa_header
TABLES
accountgl = lit_accountgl
currencyamount = lit_curr
extension1 = it_bapiacextc » Se habilita esta tabla para enviar el doc.ref.fact
return = lit_return
extension2 = it_bapiparex.
2. Luego por la SE37, copiamos el módulo de función SAMPLE_INTERFACE_RWBAPI01 (en mi caso la copié al módulo ZACT_DOC_REF_FACT_RWBAPI01), en donde vamos a agregar el código para actualizar los campos. Se crea entonces el módulo de funciones: ZACT_DOC_REF_FACT_RWBAPI01.
3. Modificamos la función para modificar los campos
DATA: lw_bapiacextc TYPE bapiacextc.
LOOP AT extension.
MOVE extension TO lw_bapiacextc.
LOOP AT it_accit WHERE posnr = lw_bapiacextc-field1.
it_accit-rebzg = lw_bapiacextc-field2.
it_accit-rebzj = lw_bapiacextc-field3.
it_accit-rebzz = lw_bapiacextc-field4.
modify it_accit.
ENDLOOP.
ENDLOOP.
4. Luego ingresamos a la transacción FIBF para crear una BTE:
- image010
- image011
- image012
- image013
5. Finalmente al ejecutar la BAPI, vemos que se actualizan los campos requeridos