Está en la página 1de 10

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 información adicional proveniente de otros módulos
relacionados (datos de compras, proyectos, facturación de ventas,
movimientos de mercancía, clasificación propia de clientes o proveedores),
etc.

Para realizar esta parametrización, os propongo dos alternativas:

1) Utilizar los Business Transactions Events (BTE): si queremos ampliar


los informes de partidas individuales clásicos (FBL1N para Acreedores,
FBL5N para Deudores y FBL3N para Cuentas de Mayor).

2) Utilizar una implementación de la Badi FAGL_ITEMS_CH_DATA: si


queremos ampliar la nueva transacción para consultar las partidas de cuentas
de mayor(FAGLL03).

Ampliación utilizando los BTE.


Las Business Transactions Events (BTE) son un mecanismo parecido a las
Exits que Sap ideo hace unos años para permitir una personalización de
componentes del sistema. El objetivo era permitir tanto a partners como a
clientes añadir su propio código en las transacciones estándar,
personalizandolo o permitiendo el desarrollo de soluciones sectoriales. Era
algo así como una evolución de las User Exits.

A las BTE se accede desde la transacción FIBF. Básicamente los BTE son
puntos o eventos donde Sap nos va a permitir introducir un módulo de función
donde programar un código Abap personalizado. Tendremos dos tipos de
puntos: Módulos P/S (Publish and Subscribe) y Módulos de Operación.
Cada módulo se disparara en un código de evento, y por tanto, se tratará de
identificar el más apropiado para incluir en el sistema nuestro comportamiento
personalizado. En nuestro caso, utilizaremos un evento en un Módulo P/S, en
concreto el 1650 Visualización PI: Completar datos por posición, que nos
va a permitir añadir campos adicionales en el informes de partidas
individuales.

NOTA IMPORTANTE: la transacción FIBF tiene disponible una utilidad de


información y documentación de los diferentes módulos disponibles. Se
accede desde la opción de menú Entorno –> Sistema Info P/S y Entorno –>
Sistema Info Procesos.
En esta documentación se informa del propósito de cada Módulo, así como la
función 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
información.

Como paso previo a la configuración de la BTE, habrá que ampliar la


estructuras RFPOS, RFPOSX, añadiendo con una estructura APPEND todos
los campos que queramos añadir en los informes (con la nomenclatura
ZZNOMBRE).  Esto lo realizaremos con la transacción SE11, tal y como
vemos en la imagen. En este caso, vamos a añadir 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 añade los campos que hemos incluido a la
estructura RFPOSXEXT, que es la que Sap utiliza en los informes. A
continuación, realizaremos con la transacción FIBF los siguientes pasos:

1.Creación un identificador de Producto de cliente donde incluir nuestra


personalización: desde la opción de menú Opciones –> Productos –> de un
cliente. Aquí creamos una clave que nos permite gestionar todas nuestras
personalizaciones y su activación o no.
Importante: si el flag Activo no esta marcado, la personalización no se
activará en el sistema.

2. Creación del módulo de función: con la transacción SE37, nos crearemos


un nuevo módulo de función como copia del que Sap nos ofrece como modelo
(en este caso, el SAMPLE_INTERFACE_00001650). En este modulo
incluiremos todo el código Abap necesario para nuestra personalización.
3. Asociar el módulo de función al evento: desde la opción de menú de la
transacción FIBF, Opciones –> Modulos P/S –> de un cliente. Ahí asociamos
el evento, al identificador de producto y al módulo de función. En resumen, al
incluir aquí el módulo de función, estamos haciendo que se llame a nuestro
código Abap en el lugar que Sap ha establecido en el estándar para dicho
evento.
Nuestra personalización esta lista para ser utilizada. Desde la transacción
de listado de partidas abiertas de clientes (FBL5N), ya tenemos disponible
una nueva columna con la información del nuevo campo, leído del maestro de
clientes.

Ampliacion utilizando la implementación de la BADI.


En el caso de estar utilizando la transacción FAGLL03 para listar partidas
abiertas, deberemos de usar una implementación de la BADI
FAGL_ITEMS_CH_DATA, que incluirá los siguientes pasos:

1. Ampliar la estructura FAGLPOSX, añadiendo los campos deseados en el


include CI_FAGLPOSX. Lo realizaremos igual que antes desde la transacción
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 implementación de la BADI FAGL_ITEMS_CH_DATA.


Desde la transacción SE19, crearemos la implementación, llamándola por
ejemplo Z_FAGL_ITEMS_CH_DATA.

3. Personalizar los campos adicionales incluyendo nuestro código abap en


el metodo de la Badi llamado CHANGE_ITEMS. Un ejemplo de código
sería 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.
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.
endif.
endloop.
endmethod.

Observar que los campos de cada partida están 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 PA
´s.

4. Activar el metodo y la implementación de la badi. En ese momento,ya


estará disponible el nuevo campo en la transacción FAGLL03.

También podría gustarte