Ejemplo - Añadir Nuevos Campos en El Informe de Partidas de FI

download Ejemplo - Añadir Nuevos Campos en El Informe de Partidas de FI

of 10

Transcript of Ejemplo - Añadir Nuevos Campos en El Informe de Partidas de FI

  • 8/15/2019 Ejemplo - Añadir Nuevos Campos en El Informe de Partidas de FI

    1/10

    Añadir nuevos campos en el informe de partidas de FI.

    https://saptricks.wordpress.com/2011/07/17/truco1!anadirnuevoscamposenelinformedepartidasa"iertasdefi/

    En nuestro truco de hoy vamos a analizar la forma de añadir nuevos campos en los informes

    estándar de partidas individuales de Finanzas. Este requerimiento suele ser muy habitual en

    nuevos proyectos o en la evolución de una instalación, cuando el usuario necesita tener información

    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 información

    adicional proveniente de otros módulos relacionados datos de compras, proyectos, facturación de

    ventas, movimientos de mercanc!a, clasi"cación propia de clientes o proveedores#, etc.

    $ara realizar esta parametrización, os propongo dos alternativas%

    Utilizar los Business Transactions Events (BTE)% si queremos ampliar los informes de partidas

    individuales cl'sicos ()*&+ para Acreedores, ()*+ para -eudores y ()*+ para /uentas de 0ayor#.

    1# Utilizar una implementación de la Badi FAGL!TE"#$%&ATA% si queremos ampliar la nueva

    transacción para consultar las partidas de cuentas de mayor(A2**3#.

     Ampliación utilizando los BTE.

    *as Business Transactions Events (BTE) son un mecanismo parecido a las E4its que Sap ideo hace

    unos a5os para permitir una personalización de componentes del sistema. El objetivo era permitir

    tanto a partners como a clientes a5adir 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 6ser E4its.

    A las )7E se accede desde la transacción F!BF. )'sicamente los )7E son puntos o eventos donde

    Sap nos va a permitir introducir un módulo de función donde programar un código Abap

    personalizado. 7endremos dos tipos de puntos% "ódulos '# ('ulis* and #uscrie) + "ódulos

    de ,peración.

    $'gina & de &3

  • 8/15/2019 Ejemplo - Añadir Nuevos Campos en El Informe de Partidas de FI

    2/10

    Añadir nuevos campos en el informe de partidas de FI.

    /ada módulo se disparara en un código de evento, y por tanto, se tratar' de identi"car el m's

    apropiado para incluir en el sistema nuestro comportamiento personalizado. En nuestro caso,

    utilizaremos un evento en un 0ódulo $8S, en concreto el -./0 1isualización '!2 $ompletar datos

    por posición, que nos va a permitir a5adir campos adicionales en el informes de partidas

    individuales.

    3,TA !"',4TA3TE% la transacción (9)( 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 9nfo $8S y Entorno ;< Sistema 9nfo $rocesos.

    $'gina 1 de &3

  • 8/15/2019 Ejemplo - Añadir Nuevos Campos en El Informe de Partidas de FI

    3/10

    Añadir nuevos campos en el informe de partidas de FI.

    En esta documentación se informa del propósito de cada 0ó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.

    /omo paso previo a la con"guración de la )7E, habr' que ampliar la estructuras =($OS, =($OS>,

    a5adiendo con una estructura A$$E+- todos los campos que queramos a5adir en los informes con la

    nomenclatura ??+O0)=E#. Esto lo realizaremos con latransacción #E--, tal y como vemos en la

    $'gina de &3

  • 8/15/2019 Ejemplo - Añadir Nuevos Campos en El Informe de Partidas de FI

    4/10

    Añadir nuevos campos en el informe de partidas de FI.

    imagen. En este caso, vamos a a5adir el campo /entral de /ompras 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 clasi"caciones#.

    6na vez preparada la estructura de datos, la activaremos e5ecutando el report 4F',#6E6TE3&.

    Este report a5ade los campos que hemos incluido a la estructura =($OS>E>7, que es la que Sap utiliza

    en los informes. A continuación, realizaremos con la transacción (9)( los siguientes pasos%

    -7$reación un identi8cador de 'roducto de cliente donde incluir nuestra personalización% desde

    la opción de men: Opciones ;< $roductos ;< de un cliente. Aqu! creamos una clave que nos permite

    gestionar todas nuestras personalizaciones y su activación o no.

    $'gina @ de &3

  • 8/15/2019 Ejemplo - Añadir Nuevos Campos en El Informe de Partidas de FI

    5/10

    Añadir nuevos campos en el informe de partidas de FI.

    9mportante% si el ag Activo no esta marcado, la personalización no se activar' en el sistema.

    97 $reación del módulo de función% con la transacción SEB, nos crearemos un nuevo módulo de

    función como copia del que Sap nos ofrece como modelo en este caso, el

    SA0$*EC9+7E=(A/EC3333&D3#. En este modulo incluiremos todo el código Abap necesario para

    nuestra personalización.

    $'gina de &3

  • 8/15/2019 Ejemplo - Añadir Nuevos Campos en El Informe de Partidas de FI

    6/10

    Añadir nuevos campos en el informe de partidas de FI.

    :7 Asociar el módulo de función al evento% desde la opción de men: de la transacción (9)(,

    Opciones ;< 0odulos $8S ;< de un cliente. Ah! asociamos el evento, al identi"cador 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.

    $'gina D de &3

  • 8/15/2019 Ejemplo - Añadir Nuevos Campos en El Informe de Partidas de FI

    7/10

    Añadir nuevos campos en el informe de partidas de FI.

    +uestra personalización esta lista para ser utilizada. -esde la transacción de listado de partidas

    aiertas de clientes (FBL/3), 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.

    $'gina B de &3

  • 8/15/2019 Ejemplo - Añadir Nuevos Campos en El Informe de Partidas de FI

    8/10

    Añadir nuevos campos en el informe de partidas de FI.

    En el caso de estar utilizando la transacción FAGLL03 para listar partidas abiertas, deberemos de

    usar una implementación de la BADI FAGL_ITEM_!"_DATA, que incluir' los siguientes pasos%

    -7 Ampliar la estructura FAGL',#6, a5adiendo los campos deseados en el include /9C(A2*$OS>.

    *o realizaremos igual que antes desde la transacción SE&&, aunque en este caso no incluiremos una

    estructura append, sino que los campos los insertaremos en el include /9C(A2*$OS> habr' que

    crearlo sino e4iste en nuestro sistema#.

    97 $rear una implementación de la BA&! FAGL!TE"#$%&ATA. -esde la transacción SE&,

    crearemos la implementación, llam'ndola por ejemplo ?C(A2*C97E0SC/FC-A7A.

    :7 'ersonalizar los campos adicionales inclu+endo nuestro códi;o aap en el metodo de la

    Badi llamado $%A3GE!TE"#. 6n ejemplo de código ser!a el siguiente%

    method ifCe4CfaglCitemsCchCdataGchangeCitems.

    data lsCitems type faglpos4.

    data lsCtab type bHpfCHey.

    data lsCaddon type bHpfCaddon.

    $'gina I de &3

  • 8/15/2019 Ejemplo - Añadir Nuevos Campos en El Informe de Partidas de FI

    9/10

    Añadir nuevos campos en el informe de partidas de FI.

    data lsCt33& type t33&.

    31.3B.13&& $age of

    SA$ +ote &@111 J 7urHey% -isplay Kevmiye +umber in line

    item reports

    loop at ctCitems into lsCitems.

    if lsCt33&JbuHrs ne lsCitemsJbuHrs.

    select single L into lsCt33&

    from t33&

    Mhere buHrs N lsCitemsJbuHrs.

    endif.

    if lsCt33&Jland& N 7=.

    lsCtabJbuHrs N lsCitemsJbuHrs.

    lsCtabJbelnr N lsCitemsJbelnr.

    lsCtabJgjahr N lsCitemsJgjahr.

    call function PO6=+A*C333313

    e4porting

    iCbHpfCHey N lsCtab

    iCland& N 7=

    importing

    eCbHpfCaddon N lsCaddon.

    lsCitemsJbelnrCalt N lsCaddonJbelnrCalt.

    modify ctCitems from lsCitems.

    $'gina de &3

  • 8/15/2019 Ejemplo - Añadir Nuevos Campos en El Informe de Partidas de FI

    10/10

    Añadir nuevos campos en el informe de partidas de FI.

    endif.

    endloop.

    endmethod.

    Observar que los campos de cada partida est'n en las lineas de la tabla interna /7C97E0S 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 $AQs.