Crear matchcode con F4IF_INT_TABLE_VALUE_REQUEST
Caso: Se desea agregar un matchcode manual en un campo de una dynpro.
Solución: En el ejemplo, se busca mostrar en el matchcode sólo los proveedores de un Grupo de cuentas acreedor específico (ZPEE). Usamos la función F4IF_INT_TABLE_VALUE_REQUEST.
1. Ingresamos para el campo en cuestión el código en la dynpro
2. En el module, agregamos el siguiente código (mejor si queda dentro de un form)
TYPES: BEGIN OF ty_lfa1, lifnr TYPE lfa1-lifnr, name1 TYPE lfa1-name1, END OF ty_lfa1. DATA: lt_lfa1 TYPE TABLE OF ty_lfa1, lw_lfa1 TYPE ty_lfa1, lv_lifnr type lfa1-lifnr, i_return LIKE ddshretval OCCURS 0 WITH HEADER LINE. REFRESH lt_lfa1[]. * Obtengo los servicios respectivos al contratista SELECT lifnr name1 INTO CORRESPONDING FIELDS OF TABLE lt_lfa1 FROM lfa1. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = 'LIFNR' window_title = 'Proveedores' value_org = 'S' TABLES value_tab = lt_lfa1 return_tab = i_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 i_return INDEX 1. MOVE i_return-fieldval TO lv_lifnr. ENDIF.
Categorías:ABAP/4
GRACIAS!! ME SIRVIO MUCHISIMO!