Está en la página 1de 10

Aadir nuevos campos en el informe de partidas de FI.

https://saptricks.wordpress.com/2011/07/17/truco-15-anadir-nuevos-campos-en-el-informe-de-partidas-abiertas-de-fi/

En nuestro truco de hoy vamos a analizar la forma de aadir nuevos campos en los informes
estndar de partidas individuales de Finanzas. Este requerimiento suele ser muy habitual en
nuevos proyectos o en la evolucin de una instalacin, cuando el usuario necesita tener informacin
adicional a la ya de por si completa que ofrece Sap para la consulta de movimientos contables.
Algunos ejemplos habituales pueden ser el incluir las cuentas de proveedor o cliente al visualizar
cuentas de gasto, facturas pendientes de recibir o cuentas de impuestos. O incluir informacin
adicional proveniente de otros mdulos relacionados (datos de compras, proyectos, facturacin de
ventas, movimientos de mercanca, clasificacin propia de clientes o proveedores), etc.
Para realizar esta parametrizacin, os propongo dos alternativas:
1) Utilizar los Business Transactions Events (BTE): si queremos ampliar los informes de partidas
individuales clsicos (FBL1N para Acreedores, FBL5N para Deudores y FBL3N para Cuentas de Mayor).
2) Utilizar una implementacin de la Badi FAGL_ITEMS_CH_DATA: si queremos ampliar la nueva
transaccin para consultar las partidas de cuentas de mayor(FAGLL03).
Ampliacin utilizando los BTE.
Las Business Transactions Events (BTE) son un mecanismo parecido a las Exits que Sap ideo hace
unos aos para permitir una personalizacin de componentes del sistema. El objetivo era permitir
tanto a partners como a clientes aadir su propio cdigo en las transacciones estndar,
personalizandolo o permitiendo el desarrollo de soluciones sectoriales. Era algo as como una
evolucin de las User Exits.
A las BTE se accede desde la transaccin FIBF. Bsicamente los BTE son puntos o eventos donde
Sap nos va a permitir introducir un mdulo de funcin donde programar un cdigo Abap
personalizado. Tendremos dos tipos de puntos: Mdulos P/S (Publish and Subscribe) y Mdulos
de Operacin.

Pgina 1 de 10

Aadir nuevos campos en el informe de partidas de FI.

Cada mdulo se disparara en un cdigo de evento, y por tanto, se tratar de identificar el ms


apropiado para incluir en el sistema nuestro comportamiento personalizado. En nuestro caso,
utilizaremos un evento en un Mdulo P/S, en concreto el 1650 Visualizacin PI: Completar datos
por posicin, que nos va a permitir aadir campos adicionales en el informes de partidas
individuales.
NOTA IMPORTANTE: la transaccin FIBF tiene disponible una utilidad de informacin y
documentacin de los diferentes mdulos disponibles. Se accede desde la opcin de men Entorno >
Sistema Info P/S y Entorno > Sistema Info Procesos.

Pgina 2 de 10

Aadir nuevos campos en el informe de partidas de FI.

En esta documentacin se informa del propsito de cada Mdulo, as como la funcin abap de ejemplo
(es un modelo que nunca hay que tocar, solo copiar para crear la nuestra propia) y las estructuras de
datos de intercambio de informacin.
Como paso previo a la configuracin de la BTE, habr que ampliar la estructuras RFPOS, RFPOSX,
aadiendo con una estructura APPEND todos los campos que queramos aadir en los informes (con la
nomenclatura ZZNOMBRE). Esto lo realizaremos con latransaccin SE11, tal y como vemos en la

Pgina 3 de 10

Aadir nuevos campos en el informe de partidas de FI.


imagen. En este caso, vamos a aadir el campo Central de Compras que tenemos en el maestro de
clientes como un campo mas en nuestro informe de partidas abiertas (con el objetivo de analizar
riesgo de clientes por ese campo y poder realizar sumarizaciones y clasificaciones).

Una vez preparada la estructura de datos, la activaremos ejecutando el report RFPOSXEXTEND.


Este report aade los campos que hemos incluido a la estructura RFPOSXEXT, que es la que Sap utiliza
en los informes. A continuacin, realizaremos con la transaccin FIBF los siguientes pasos:
1.Creacin un identificador de Producto de cliente donde incluir nuestra personalizacin: desde
la opcin de men Opciones > Productos > de un cliente. Aqu creamos una clave que nos permite
gestionar todas nuestras personalizaciones y su activacin o no.

Pgina 4 de 10

Aadir nuevos campos en el informe de partidas de FI.

Importante: si el flag Activo no esta marcado, la personalizacin no se activar en el sistema.


2. Creacin del mdulo de funcin: con la transaccin SE37, nos crearemos un nuevo mdulo de
funcin como copia del que Sap nos ofrece como modelo (en este caso, el
SAMPLE_INTERFACE_00001650). En este modulo incluiremos todo el cdigo Abap necesario para
nuestra personalizacin.

Pgina 5 de 10

Aadir nuevos campos en el informe de partidas de FI.

3. Asociar el mdulo de funcin al evento: desde la opcin de men de la transaccin FIBF,


Opciones > Modulos P/S > de un cliente. Ah asociamos el evento, al identificador de producto y al
mdulo de funcin. En resumen, al incluir aqu el mdulo de funcin, estamos haciendo que se llame a
nuestro cdigo Abap en el lugar que Sap ha establecido en el estndar para dicho evento.

Pgina 6 de 10

Aadir nuevos campos en el informe de partidas de FI.

Nuestra personalizacin esta lista para ser utilizada. Desde la transaccin de listado de partidas
abiertas de clientes (FBL5N), ya tenemos disponible una nueva columna con la informacin del
nuevo campo, ledo del maestro de clientes.

Ampliacion utilizando la implementacin de la BADI.

Pgina 7 de 10

Aadir nuevos campos en el informe de partidas de FI.


En el caso de estar utilizando la transaccin FAGLL03 para listar partidas abiertas, deberemos de
usar una implementacin de la BADI FAGL_ITEMS_CH_DATA, que incluir los siguientes pasos:
1. Ampliar la estructura FAGLPOSX, aadiendo los campos deseados en el include CI_FAGLPOSX.
Lo realizaremos igual que antes desde la transaccin SE11, aunque en este caso no incluiremos una
estructura append, sino que los campos los insertaremos en el include CI_FAGLPOSX (habr que
crearlo sino existe en nuestro sistema).
2. Crear una implementacin de la BADI FAGL_ITEMS_CH_DATA. Desde la transaccin SE19,
crearemos la implementacin, llamndola por ejemplo Z_FAGL_ITEMS_CH_DATA.

3. Personalizar los campos adicionales incluyendo nuestro cdigo abap en el metodo de la


Badi llamado CHANGE_ITEMS. Un ejemplo de cdigo sera el siguiente:
method if_ex_fagl_items_ch_data~change_items.
data ls_items type faglposx.
data ls_tab type bkpf_key.
data ls_addon type bkpf_addon.

Pgina 8 de 10

Aadir nuevos campos en el informe de partidas de FI.


data ls_t001 type t001.
02.07.2011 Page 3 of 3
SAP Note 1423223 - Turkey: Display Yevmiye Number in line
item reports
loop at ct_items into ls_items.
if ls_t001-bukrs ne ls_items-bukrs.
select single * into ls_t001
from t001
where bukrs = ls_items-bukrs.
endif.
if ls_t001-land1 = 'TR'.
ls_tab-bukrs = ls_items-bukrs.
ls_tab-belnr = ls_items-belnr.
ls_tab-gjahr = ls_items-gjahr.
call function 'JOURNAL_00003320'
exporting
i_bkpf_key = ls_tab
i_land1 = 'TR'
importing
e_bkpf_addon = ls_addon.
ls_items-belnr_alt = ls_addon-belnr_alt.
modify ct_items from ls_items.

Pgina 9 de 10

Aadir nuevos campos en el informe de partidas de FI.


endif.
endloop.
endmethod.
Observar que los campos de cada partida estn en las lineas de la tabla interna CT_ITEMS y desde ah
deberemos leer los valores, recuperar los nuestros y volveremos a dejar en la tabla interna para que
aparezcan en el listado de PAs.
4. Activar el metodo y la implementacin de la badi. En ese momento,ya estar disponible el
nuevo campo en la transaccin FAGLL03.
Conclusiones.
En esta entrada del Blog hemos visto otros mtodos de personalizacin de nuestro sistema,
introduciendo las BTE (que son un mecanismo muy potente para personalizar el sistema) y las BADIS,
que es la forma ms nueva en la que Sap esta dejando puertas abiertas para personalizar su ERP, ms
relacionadas con la programacin orientada a objetos y la implementacin de clases.
Con estos mtodos y los vistos en anteriores entradas, tenemos una visin mas que amplia de las
diferentes opciones que nos propone Sap para aquellos casos en que el estndar no nos da la
alternativa que necesitamos.
Informacin Adicional.
Nota 1423223: en esta nota se explica un ejemplo practico, por un requerimiento legal de Turquia, de
como aadir campos en ambas transacciones.
En la blog Abap Mania, tambin tenemos un ejemplo prctico para el primer caso. Gracias por su
aportacin.
Para ms informacin sobre aadir campos en los informes de partidas, mirad las notas OSS 569939,
217189, 112312, 429382. Y los siguientes links:
http://abapers.wordpress.com/tag/fibf/
http://www.saptechnical.com/Tutorials/ExitsBADIs/BTE/Page1.htm
http://www.saptechnical.com/Tutorials/ExitsBADIs/BTE/Page2.htm
http://www.saptechnical.com/Tutorials/Others/BTE/Page1.htm
http://www.mundosap.com/foro/showthread.php?t=3693
http://sap.ittoolbox.com/groups/technical-functional/sap-dev/field-sales-office-in-fbl5n-view-3738797
http://forums.sdn.sap.com/thread.jspa?threadID=844981

Pgina 10 de 10

También podría gustarte