viernes, 12 de octubre de 2012

Como crear un Field Exit


==========FIELD EXIT=========
1.SE80
2.Crear grupo de funcione de funciones con el nombre del campo ej Z_SAKNR
3.activarlo
4.crear modulo de funciones que empiece con "FIELD_EXIT_" ej FIELD_EXIT_SAKNR
5.En codigo fuente meterle las validaciones. ej para validar que solo tenga ciertos valores
setleaf es una tabla donde podemos meter las condiciones por medio de la sm30.


FUNCTION FIELD_EXIT_SAKNR.
*"----------------------------------------------------------------------
*"*"Interfase local
*"  IMPORTING
*"     REFERENCE(INPUT)
*"  EXPORTING
*"     REFERENCE(OUTPUT)
*"----------------------------------------------------------------------
*VALIDAMOS QUE LA CUENTA ESTE PERMITIDA PARA ESE USUARIO EN
data lin like sy-tabix.
RANGES: mirango FOR bseg-SAKNR.

SELECT valsign valoption valfrom valto
  INTO (mirango-sign, mirango-option,
        mirango-low, mirango-high)
  FROM setleaf
 WHERE setname = SY-UNAME.
 APPEND mirango.
ENDSELECT.

describe table mirango lines lin.

if lin > 0.
 IF INPUT IN mirango.
  MESSAGE E368(00) with 'ESTA CUENTA DE MAYOR NO ESTA PERMITIDA'.
 ENDIF.
endif.

ENDFUNCTION.

6.Ejecutar  RSMODPRF desde se38 sin parametros
7.MEnu exit campo -> crear   SAKNR con esto se agrega a las lineas
8.seleccionamos la field exit que acabamos de crear y presionamos "asignar prog/dynpro"
ahi llenamos los campos de la pantalla que deben asociarse de la transaccion donde queremos se haga el chequeo
EJ SAPLMEACCTVI 1100

seleccionamos el campo y le damos exit campo -> activar