Buenas, el otro día colgué un problema con esta función, el problema que tenía era que no me mostraba el matchcode, aquello se logró solucionar, sin embargo ahora lo que me pasa es que no me devuelve el valor seleccionado. Eso o no he entendido bien como funciona esta función y estoy haciendo algo mal. La cuestión es que me hace el matchcode, pero la tabla it_return siempre me la devuelve vacía, por lo que nunca puedo recuperar ni el objid ni el stext que necesito. ¿Alguien me puede indicar que estoy haciendo mal? Muchas gracias
Código:
TYPES: BEGIN OF ty_ubicacio,
objid LIKE hrp1000-objid,
stext LIKE hrp1000-stext,
END OF ty_ubicacio.
DATA: it_ubicacio TYPE STANDARD TABLE OF ty_ubicacio WITH HEADER LINE,
it_return TYPE STANDARD TABLE OF ddshretval WITH HEADER LINE.
CLEAR: it_ubicacio, it_ubicacio[], it_return, it_return[], SELECCIO_LLOC.
SELECT objid stext FROM hrp1000
INTO CORRESPONDING FIELDS OF TABLE it_ubicacio
WHERE otype = 'F' AND
endda GE sy-datum AND
plvar = '01' AND
istat = '1'.
SORT it_ubicacio BY stext.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'STEXT'
dynpprog = sy-repid
dynpnr = '3000'
dynprofield = 'SELECCIO_LLOC'
value_org = 'S'
multiple_choice = 'X'
TABLES
value_tab = it_ubicacio
return_tab = it_return
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
READ TABLE it_return INDEX 1.
id_object_f = it_return-fieldval.
ENDIF.
.
Comentario