Archivo

Posts Tagged ‘FBL5N’

Agregar campo VKGRP en FBL5N

Escenario: se busca agregar el campo Grupo de vendedores (KNVV-VKGRP) como columna en la transacción FBL5N ya que existe la posibilidad de filtrar por este campo pero no lo trae en pantalla.

Las BTE son muy parecidas a las exits. Están configuradas para que salten en un momento determinado, de manera que en ese momento es posible incluir el código que necesitemos utilizando un módulo de función específico.
La transacción para acceder al menú de las BTE es la FIBF. Por lo tanto:

  1. Ingresar a la transacción FIBF
  2. Ir al menú Opciones-Productos-de un cliente
  3. Crear una entrada, por ejemplo “ZFIVKGRP”, indicar una descripción y tildarlo como activo.

  1. Ahora seleccionar el evento que se ejecutará al ingresar a la FBL5N. Para ello, volver a la pantalla de la FIBF e ir al menú Opciones-Módulos P/S-de un cliente.
  1. Agregar a la lista el producto recién creado, indicando el evento, en Ps el código de país y el módulo de funciones correspondiente. Para ver como crear un módulo de funciones (se debe hacer una copia de uno estándar), ir a: http://www.saptechnical.com/Tutorials/Others/BTE/Page1.htm.

Para el caso es una copia del SAMPLE_INTERFACE_00001650 al que previamente llamé “” y el evento es el 00001650 – VISUALIZACIÓN PI: Completar datos por posición)

Nota: Al pie agrego como hacerlo, en el apéndice.

  1. Ahora, en la FBL5N debo agregar la/s columna/s que necesito (Grupo de vendedores y descripción), para ello debo agregar a la estructura RFPOS y RFPOSX una estructura con estos dos nuevos campos. En el ejemplo de las pantallas en mi caso ya aparecía agregado el campo NAME1 en la estructura “ZADICIONALES_FBLXN”, por lo que me ahorré un paso.
  1. Ejecutar el programa RFPOSXEXTEND para ajustar los cambios en las estructuras.

Apéndice:

Para copiar el modulo de funciones a partir de un estándar.

  1. Ir a Entorno-Sistema Info(P/S). Traer todos los registros.

  1. Buscar el 00001650 – VISUALIZACIÓN PI: Completar datos por posición. Hacer doble click.

  1. Presionar el botón “Módulo funciones tipo”.

  1. Realizar una copia del módulo actual a otro Z. Para ello presione “Copiar”, elija el nombre y un grupo de funciones (debe ser previamente creado).

  1. Editar el nuevo módulo de funciones y agregar el código necesario.

function z_vkgrp_interface_00001650.
*"----------------------------------------------------------------------
*"*"Interfase local
*"  IMPORTING
*"     VALUE(I_POSTAB) LIKE  RFPOS STRUCTURE  RFPOS
*"  EXPORTING
*"     VALUE(E_POSTAB) LIKE  RFPOS STRUCTURE  RFPOS
*"----------------------------------------------------------------------

*-------------- Initialize Output by using the following line ----------
 tables: knvv. "Customer Master Sales Data

 data: l_vkgrp type knvv-vkgrp,
 l_bezei type tvgrt-bezei.

 clear: l_vkgrp, l_bezei.
 e_postab = i_postab.

* Obtengo el grupo de vendedores
 select single vkgrp
 into l_vkgrp
 from knvv
 where kunnr eq e_postab-konto.

* Obtengo la descripción del grupo de vendedores
 select single bezei
 into l_bezei
 from tvgrt
 where vkgrp eq l_vkgrp
 and spras eq sy-langu.

 e_postab-zzvkgrp = l_vkgrp.
 e_postab-zzbezei = l_bezei.
 i_postab         = e_postab.

endfunction.

Para más información sobre añadir campos en los informes de partidas, mirad las notas OSS 569939, 217189, 112312, 429382. Y los siguientes links!

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

Anuncio publicitario
Categorías: ABAP/4, Exits Etiquetas: , ,

Actualizar campo BSEG-SGTXT en FBL5N

Transacción: FBL5N, SE38

Caso: Actualizar el campo BSEG-SGTXT para visualizar un texto en la FBL5N

Ejemplo: en mi caso tenía que crear un EXIT al grabar una factura y actualizar con un dato el campo SGTXT.

Busqué y vi que hacer un UPDATE a la BSEG a mano no servía, tampoco haciendo un UPDATE a la BSEG y BSIS; estas funciones las probé y funcionan.

****** Adicionado para reporte FBL5N - Se agrega el Nro. Legal de factura en documento contable, modificándolo.
lc_sgtxt = xvbrk-xblnr.

* Obtengo el documento contable

call function 'FI_DOCUMENT_READ1'
exporting
i_docno = le_bkpf-belnr " Documento contable de la factura
i_byear = le_bkpf-gjahr " Ejercicio
i_compy = le_bkpf-bukrs " Sociedad
importing
e_bkpf = e_bkpf
tables
t_bseg = t_bseg
t_bsec = t_bsec
t_bset = t_bset.

loop at t_bseg where buzei = '001'.
* Con read table me da error. Actualizo el texto en la posición 001
t_bseg-sgtxt = lc_sgtxt.
modify t_bseg.
exit.
endloop.

append e_bkpf to t_bkpf.

if not t_bseg[] is initial.

call function 'CHANGE_DOCUMENT'
tables
t_bkdf = t_bkdf
t_bkpf = t_bkpf
t_bsec = t_bsec
t_bsed = t_bsed
t_bseg = t_bseg
t_bset = t_bset.

endif.

clear : t_bseg,t_bkpf,t_bsec,t_bsed,t_bset.
refresh : t_bseg,t_bkpf,t_bsec,t_bsed,t_bset.

En el caso planteado, tenía que dejar grabado el Nro. legal de factura de EXPO, vemos que ahora aparece (campo texto),
por ejemplo el 0006E00000179:

Haciendo doble click:

Links de interés:

http://forums.sdn.sap.com/thread.jspa?threadID=254178

https://forums.sdn.sap.com/thread.jspa?messageID=2423899&tstart=0#2423899
https://forums.sdn.sap.com/thread.jspa?messageID=2480155&tstart=0#2480155

Categorías: Exits Etiquetas: , , , ,