Hola a todos!
Estoy creando una pantalla de selección y me gustaría que los matchcode de los campos no fuesen simples, es decir, que mostrasen los posibles valores del campo teniendo en cuenta los demás campos de entrada si ya se han completado.
¿alguien tiene experiencia con este tipo de objetos?
¿me podríais echar una mano?
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.
Ingresamos para el campo en cuestión el código en la dynpro
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.
hola @FRANK_ENCALAD
Gracias por tu respuesta. He revisado el contenido, pero me da la sensación de que es un matchcode sencillo, es decir, para un único campo. Lo que yo estoy buscando está basado en varios campos, es decir, que si tengo dos campos, y meto un valor para el primero de ellos, al desplegar los posibles valores del segundo campo se tenga en cuenta el valor del primer campo.
No sé si me explico correctamente.
Saludos!
Si te entiendo y lo que tu pides si se puede realizar, pero debes construir un matchcode ad-hoc (ayuda de busqueda) por la transaccion SE11 (Abap Diccionario de Datos) opción “Ayuda para búsquedas”.
En el siguiente link h__p://desarrollofacil.com/abap-crear-ayuda-de-busqueda-con-se11/
tienes un ejemplo de un matchcode simple, en tu caso lo que requieres es un matchode para “ayuda de búsqueda compleja”, ya que deberas pasar parámetros de una ayuda de búsqueda a otra (de un campo a otro campo). En la web busca ejemplos con el string “collective search help”