Post on 26-Dec-2015
Autor: Sebastián Arévalo M.
Este manual aplica en caso de querer incorporar un campo nuevo a las transacciónFBL5N o similares (FBL1N y FBL3N). Los casos más frecuentes es añadir el campo delnombre del cliente, su dirección, el comisionista o el cobrador.
La solución está encarada a través de la implementación de una user-exit y laampliación de una estructura de SAP. Es decir, que en caso de necesitar esta solución loideal es que la implemente un programador ABAP/4.
En caso de necesitar un mayor detalle consultar la nota 569939.
Pasos para añadir un campo:
1. Es necesario realizar append en estructura RFPOSX y a la RFPOS con el campoZZNAME1 (siempre los campos agragados a una estructura append deben serZZ*).
Para ello se debe ir a la transacción SE11 ingresar el nombre de la estructura RFPOSX y ala RFPOS y presionar
Autor: Sebastián Arévalo M.
En la barra de herramientas superiores presionar y crear una nueva
estructura appen presionando , se le crea el nombre y una descripción (ojo, esteproceso es lento y se demora bastante en activar la nueva estructura).
Autor: Sebastián Arévalo M.
Autor: Sebastián Arévalo M.
Le damos un nombre, en este caso “ZZNAME1”
Pero en la columna Tp. Componente debemos ponerle el elemento de datos de la tabla quevamos a sacar. En este caso es el elemento de datos del campo KNA1-NAME1
“NAME1_GP”Lo agregamos y damos enter
Guardamos en una orden de transporte
Finalmente presionamos para activar el append.
Autor: Sebastián Arévalo M.
2. Ejecutar el repport en la transacción SE38 RFPOSXEXTEND de tal manera que segenere la estructura RFPOSTEXT.
Ejecutamos y nos muestra la siguiente ventana, damos clic en
Y nos muestra esta ventana informativa.
Autor: Sebastián Arévalo M.
3. Crear una éxit BTE. Para ello el primer paso es copiar el módulo de funcionessample_interface_00001650 en el módulo de funcionesZ_SAMPLE_INTERFACE_00001650. Más abajo se facilita un ejemplo de cómo realizarla user-exit para añadir el nombre del cliente.Para ello vamos a la transacción SE37 y copiamos el modulo de funciones indicadopresionando el botón
Nos aparece la siguiente ventana, le damos el nombre indicado.
Finalmente lo guardamos en nuestra orden de transporteAhora vamos a modificar el código del módulo de funciones, en la misma SE37 le damosclic en
Autor: Sebastián Arévalo M.
Nos despliega esta ventana, y dentro de la FUNCTION Z_SAMPLE_INTERFACE_00001650.
Pegamos el siguiente código:*"--------------------------------------------------------------------*"*"Interfase local*" IMPORTING*" VALUE(I_POSTAB) LIKE RFPOS STRUCTURE RFPOS*" EXPORTING*" VALUE(E_POSTAB) LIKE RFPOS STRUCTURE RFPOS*"--------------------------------------------------------------------DATA: zzname LIKE kna1-name1.
*-------------- Initialize Output by using the following line ----------e_postab = i_postab.
* Añadir nombre de cliente o proveedor a la visualización de partidas.
IF e_postab-koart = 'D'.SELECT SINGLE name1 FROM kna1 INTO zname
WHERE kunnr = e_postab-konto.ELSEIF e_postab-koart = 'K'.SELECT SINGLE name1 FROM lfa1 INTO zzname
WHERE lifnr = e_postab-konto.ENDIF.
IF sy-subrc = 0. e_postab-ZZNAME1 = zzname.ENDIF.
Autor: Sebastián Arévalo M.
Activamos y guardamos
4. Una vez creada el módulo de funciones hay que ir a la transacción FIBF. Opciones _Módulos P/S _ de una aplicación SAP.
Crearemos la entrada con en el evento 00001650 y añadiremos el módulode funciones z_sample_interface_00001650.
Autor: Sebastián Arévalo M.
Finalmente guardamos en nuestra orden de transporte y transportamos al mandatecorrespondiente.