Buenas tengo una consulta, hice por primera vez una ayuda de busqueda pero el problema es que no me está tomando la información de mis parametros (p_matnr, p_werks y otros). Yo divido los programas de la siguiente manera, el programa que llama un include top y uno funcion , el top son todas las defciniiones globales, tablas, parametros, pantallas de seleccion etc y funcion todo lo que es obtencion de data , llamada a smartforms, sapscript etc.
Lo hice de la siguiente manera:
En mi programa que llama a los include puse:
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_charg.
PERFORM show_charg_f4.
En mi top puse:
****** Tabla para matchcode
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.
"Tabla para matchcode de campo Lote.
DATA:
BEGIN OF gt_charg_f4 OCCURS 0,
charg TYPE mseg-charg, "Lote
END OF gt_charg_f4.
En mi include_funcion puse:
FORM show_charg_f4.
SELECT charg
FROM mseg
INTO TABLE gt_charg_f4
WHERE matnr EQ p_matnr
AND werks EQ p_werks
AND aufnr EQ p_aufnr
AND bwart EQ '101'.
IF gt_charg_f4[] IS NOT INITIAL.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ' '
retfield = 'CHARG'
* PVALKEY = ' '
* DYNPPROG = ' '
* DYNPNR = ' '
* DYNPROFIELD = ' '
* STEPL = 0
window_title = 'Lote'
* VALUE = ' '
value_org = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* CALLBACK_METHOD =
* MARK_TAB =
* IMPORTING
* USER_RESET =
TABLES
value_tab = gt_charg_f4[] "tabla que me trae los datos de mi tabla mseg segun lo que lleno en mis parametros
* FIELD_TAB =
return_tab = it_match[]
* DYNPFLD_MAPPING =
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
READ TABLE it_match INDEX 1.
MOVE it_match-fieldval TO p_charg.
ENDIF.
ENDFORM.
El gran problema que no he podido resolver es por que mi select no esta agarrando la informacion que le pongo en mis parametros _
(p_matnr TYPE matnr OBLIGATORY,
p_werks TYPE werks OBLIGATORY,
p_aufnr TYPE aufnr OBLIGATORY,
p_charg TYPE CHARG_D. " OBLIGATORY.)
y por ende no me are mi match code y me dice ue no hay entradas cuando por la se16n si las hay o si yo lleno ese campo si me trae data si lo ejecuto lo cual no es el punto porque para eso puse mi matchcode y porque se como llenar eso por algo puse una ayuda xD.