El próximo ejemplo sirve para crear ayudas (matchcodes) con una tabla interna de nuestro programa.
Así de simple, hacemos una búsqueda a alguna tabla y el resultado lo guardamos en una tabla interna que se la pasamos a la función F4IF_INT_TABLE_VALUE_REQUEST que nos va a mostrar la ayuda.
Quiero agradecer esta forma de crear ayudas a mi compañero y amigo Rodrigo (http://ramgv-sap.blogspot.com).
*En este ejemplo creo un select-option para un material. Cuya ayuda será *el nº de material para VBELN = ‘0000000001’ y POSNR = ‘000010’.
TABLES: VBAP,
DDSHRETVAL.
DATA: BEGIN OF IT_MATNR OCCURS 0,
MATNR LIKE VBAP-MATNR,
ARKTX LIKE VBAP-ARKTX,
END OF IT_MATNR.
DATA: BEGIN OF IT_MATCH OCCURS 0, «Esta tabla nos devuelve la ayuda
SHLPNAME LIKE DDSHRETVAL-SHLPNAME,
FIELDNAME LIKE DDSHRETVAL-FIELDNAME,
RECORDPOS LIKE DDSHRETVAL-RECORDPOS,
FIELDVAL LIKE DDSHRETVAL-FIELDVAL,
RETFIELD LIKE DDSHRETVAL-RETFIELD,
END OF IT_MATCH.
SELECTION-SCREEN BEGIN OF BLOCK BLQ1 WITH FRAME TITLE TEXT-T01.
SELECT-OPTIONS: S_MATNR FOR VBAP-MATNR NO-EXTENSION NO INTERVALS.
SELECTION-SCREEN END OF BLOCK BLQ1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_MATNR-LOW.
SELECT MATNR
ARKTX
FROM VBAP
INTO TABLE IT_MATNR
WHERE VBELN EQ ‘0000000001’ AND
POSNR EQ ‘000010’.
CALL FUNCTION ‘F4IF_INT_TABLE_VALUE_REQUEST’
EXPORTING
RETFIELD = ‘MATNR’
WINDOW_TITLE = ‘Material’
VALUE_ORG = ‘S’
TABLES
VALUE_TAB = IT_MATNR
RETURN_TAB = IT_MATCH
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
IF SY-SUBRC EQ 0.
READ TABLE IT_MATCH INDEX 1.
MOVE IT_MATCH-FIELDVAL TO S_MATNR-LOW.
ENDIF.
Technorati tags: sdn blogger
Comentarios Recientes: