Ver Mensaje Individual
  #4  
Viejo 28/01/10, 18:14:48
yapbig yapbig is offline
Senior Member
 
Fecha de Ingreso: may 2007
Localización: San Nicolás, Argentina
Mensajes: 261
y si probás con un field exit?
primero tenes que crearte el módulo de función FIELD_EXIT_+[Nombre del elemento de dato]

y luego tenes que activarlo en el programa dynpro que te interese que se ejecute el mismo con el programa RSMODPRF

Te pego un código de ejemplo

FUNCTION FIELD_EXIT_REBZG.
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" REFERENCE(INPUT)
*" EXPORTING
*" REFERENCE(OUTPUT)
*"----------------------------------------------------------------------

TABLES: BSIK. "Contabilidad: Índice secundario p.acreedores (part.abiertas.)

DATA:
v_lifnr LIKE LFA1-LIFNR,
v_bukrs LIKE BSEG-BUKRS,
v_lbandera type boolean,
v_prog LIKE D020S-PROG,
v_dnum LIKE D020S-DNUM.

DATA: TI_BSIK LIKE STANDARD TABLE OF BSAK WITH HEADER LINE,
TI_FIELDS LIKE STANDARD TABLE OF DYNPREAD WITH HEADER LINE.


CHECK SY-TCODE = 'FB01'.

v_prog = 'SAPMF05A'.
v_dnum = sy-dynnr.

refresh TI_FIELDS.

MOVE 'LFA1-LIFNR' TO ti_fields-fieldname.
APPEND ti_fields.
MOVE 'BKPF-BUKRS' TO ti_fields-fieldname.
APPEND ti_fields.

CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = v_prog
DYNUMB = v_dnum
* TRANSLATE_TO_UPPER = ' '
* REQUEST = ' '
* PERFORM_CONVERSION_EXITS = ' '
PERFORM_INPUT_CONVERSION = 'X'
* DETERMINE_LOOP_INDEX = ' '
* START_SEARCH_IN_CURRENT_SCREEN = ' '
* START_SEARCH_IN_MAIN_SCREEN = ' '
* START_SEARCH_IN_STACKED_SCREEN = ' '
* START_SEARCH_ON_SCR_STACKPOS = ' '
* SEARCH_OWN_SUBSCREENS_FIRST = ' '
* SEARCHPATH_OF_SUBSCREEN_AREAS = ' '
TABLES
DYNPFIELDS = TI_FIELDS
* EXCEPTIONS
* INVALID_ABAPWORKAREA = 1
* INVALID_DYNPROFIELD = 2
* INVALID_DYNPRONAME = 3
* INVALID_DYNPRONUMMER = 4
* INVALID_REQUEST = 5
* NO_FIELDDESCRIPTION = 6
* INVALID_PARAMETER = 7
* UNDEFIND_ERROR = 8
* DOUBLE_CONVERSION = 9
* STEPL_NOT_FOUND = 10
* OTHERS = 11
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

LOOP AT TI_FIELDS.
CASE TI_FIELDS-FIELDNAME.
WHEN 'LFA1-LIFNR'.
v_lifnr = TI_FIELDS-FIELDVALUE.
WHEN 'BKPF-BUKRS'.
v_bukrs = TI_FIELDS-FIELDVALUE.
ENDCASE.
ENDLOOP.

v_lbandera = 1.

SELECT *
FROM BSIK
INTO TABLE TI_BSIK
WHERE BUKRS = v_bukrs
AND LIFNR = v_lifnr
AND UMSKS = 'A'
AND UMSKZ = 'A'
AND XZAHL = 'X'.

IF NOT TI_BSIK[] IS INITIAL AND INPUT IS INITIAL.
READ TABLE TI_BSIK INDEX 1.
MESSAGE E000(FIELD_EXITS_F41) WITH BSIK-BELNR.
ENDIF.

ENDFUNCTION.
__________________
Gustavo A. Biglia
Consultor SAP FI
Responder Con Cita