Buenas tengo un programa con smartform que no me esta imprimiendo unas cosas en mi smartform pero es porque en el programa lo debuggee y no me esta capturando unos datos. Luego de que verifico que me haya traido datos
( SELECT SINGLE maktx FROM makt`
INTO gv_maktx
WHERE matnr EQ p_matnr.
SPLIT gv_maktx AT '-' INTO gv_maktx gv_maktx2.
IF sy-subrc EQ 0.)
No hace nada y salta todo eso porque no me trae nada alguna idea?? Anexo parte del codigo:
SELECT SINGLE maktx FROM makt
INTO gv_maktx
WHERE matnr EQ p_matnr.
SPLIT gv_maktx AT '-' INTO gv_maktx gv_maktx2.
IF sy-subrc EQ 0.
select charg menge hsdat vfdat
from mseg
into (gv_charg, gv_menge, gv_hsdat, gv_vfdat)
WHERE matnr EQ p_matnr
AND werks EQ p_werks
AND aufnr EQ p_aufnr
AND bwart EQ '101'.
ENDSELECT.
IF sy-subrc EQ 0.
SELECT SINGLE KILOS FROM ZPESO_SACOS
INTO gv_kg_saco
WHERE matnr EQ p_matnr.
IF sy-subrc EQ 0.
gv_cant_sacos = gv_menge / gv_kg_saco.
gv_cant_sacos_s = gv_cant_sacos.
SPLIT gv_cant_sacos_s AT '.' INTO gv_cant_sacos_e gv_cant_sacos_d.
gv_cant_sacos_aux = gv_cant_sacos_e.
gv_cant_tot_sacos = gv_cant_sacos_aux * gv_kg_saco.
gv_cant_saco_extra = gv_menge - gv_cant_tot_sacos.
ENDIF.
ENDIF.
gs_datos-matnr = p_matnr.
gs_datos-werks = p_werks.
gs_datos-maktx = gv_maktx.
gs_datos-charg = gv_charg.
gs_datos-sacos = gv_cant_sacos_aux.
gs_datos-menge = gv_menge.
gs_datos-hsdat = gv_hsdat.
gs_datos-vfdat = gv_vfdat.
gs_datos-kilos = gv_kg_saco.
ENDIF.
A ver si entendi, me dices que este query no retorna nada?
ve a la SE16N y coloca la tabla makt luego en el campo matnr coloca el codigo del material.
Verifica si te retorna valor.
Por otro lado, tienes el sy-subrc despues de otra operacion SPLIT y esta operacion te puede alterar el sy-subrc.
Cuando realizas la bifurcacion la estas haciendo a la operacion del SPLIT y no al resultado de la busqueda a la base de datos.
Intenda colocar el SPLIT dentro de la bifurcacion, hace mas sentido alla.
Golpeenme xD, muchas gracias por sus respuestas ajajjajaj luego de casi un día viendo que era, es sorprendete que el error mas sencillo conlleve a tan malos ratos, cuando probaba ponia uno de los datos el orden (el parametro) mal jajaj tenia un 0 de mas :c
Yo cuando veo que una select no me devuelve nada, y voy por la se16 y si tiene datos, lo que hago es mirar si tiene rutina de conversion y para ello, entro en el elemento de datos del campo que querio, por ejemplo, matnr, y voy a su dominio:
y vemos si tiene rutina de conversion:
Doble click sobre MATN1, y te saldran las rutinas;