PDA

Ver la Versión Completa : Reporte ALV - short dump


mendocar
30/04/09, 16:34:40
Hola estimados : Tengo un reporte ALV al cual le agreguè un campo (el de sociedad) y hasta ahì todo bien, me muestra el reporte y el campo añadido, pero cuando quiero realizar un filtro el programa se cae. Sipuedo realizar ordenamientos por ejemplo. Y si lo ejecuto en DEV o QAS , no me da problemas, porque hay poca data, pero en PRD si. Aqui les detallo la correcciòn que hice para agregar el campo sociedad. Hay algo màs que hacer? Muchas gracias.
SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}.L1S31 {font-style: italic;color: #808080;}.L1S32 {color: #3399FF;}.L1S33 {color: #4DA619;}.L1S52 {color: #0000FF;}form get_fieldcat.
data: ls_fcat type lvc_s_fcat.
data: w_pos(2) TYPE n.
refresh gt_fieldcat.
* belnr
add 1 to w_pos.
clear ls_fcat.
ls_fcat-tabname = 'TI_REP'.
ls_fcat-fieldname = 'BELNR'.
ls_fcat-ref_table = 'BSIS'.
ls_fcat-ref_field = 'BELNR'.
ls_fcat-key = 'X'.
ls_fcat-col_pos = w_pos.
append ls_fcat to gt_fieldcat.
* gjahr
add 1 to w_pos.
clear ls_fcat.
ls_fcat-tabname = 'TI_REP'.
ls_fcat-fieldname = 'GJAHR'.
ls_fcat-ref_table = 'BSIS'.
ls_fcat-ref_field = 'GJAHR'.
ls_fcat-key = 'X'.
ls_fcat-col_pos = w_pos.
append ls_fcat to gt_fieldcat.

* bukrs @2 agrega sociedad .
add 1 to w_pos.
clear ls_fcat.
ls_fcat-tabname = 'TI_REP'.
ls_fcat-fieldname = 'BUKRS'.
ls_fcat-ref_table = 'BSIS'.
ls_fcat-ref_field = 'BUKRS'.
* ls_fcat-key = 'X'.
ls_fcat-col_pos = w_pos.
append ls_fcat to gt_fieldcat.

mendocar
30/04/09, 20:47:39
Estimados, he visto que hacen recomendaciones para modificar algunos paràmetros de la funcion REUSE, pero en mi programa no se utiliza dicha funcion.

Atlas
30/04/09, 21:44:00
¿cual es el texto del dump?

mendocar
30/04/09, 21:57:13
Texto breve:
The current application triggered a termination with a short dump.
Que ha sucedido?
The current application program detected a situation which really
should not occur. Therefore, a termination with a short dump was
triggered on purpose by the key word MESSAGE (type X).

!!!!La linea de programa donde se cae se muestra a continuacion !!!!

************************************
* Column per Fieldcat Entry
************************************
ls_lvc_data-value = space.
clear ls_lvc_data-style.
loop at it_fcat_local assigning <ls_fcat>
where tech ne 'X' and no_out ne 'X'.
if l_invisible eq 'X'.
clear l_invisible.
if <ls_fcat>-do_sum is initial.
continue.
else.
clear ls_lvc_data-col_pos.
endif.
endif.

add 1 to ls_lvc_data-col_pos.

assign component <ls_fcat>-fieldname
of structure <ls_data> to <l_field_value>.
if sy-subrc ne 0.
message x000(0k).
endif.

*... work on average
if <ls_fcat>-do_sum eq 'C'.
clear l_entries.

assign space to <l_unit>.
if not <ls_fcat>-cfieldname is initial.
assign component <ls_fcat>-cfieldname
of structure <ls_data> to <l_unit>.
endif.
if not <ls_fcat>-qfieldname is initial.
assign component <ls_fcat>-qfieldname
of structure <ls_data> to <l_unit>.
endif.

l_from = ls_grpl-index_from.
l_to = ls_grpl-index_to.
if ls_grpl-index_from is initial and

Atlas
30/04/09, 22:51:36
Pues asi de buenas a primera tiene pinta de que el fallo esta en la sentencia:

assign component <ls_fcat>-fieldname
of structure <ls_data> to <l_field_value>.

Es decir que el campo contenido en la variable <ls_fcat>-fieldname no está declarado en la estructura/tabla <ls_data>, mucho mas no te puedo decir.

Haz una cosa, cuando te muestre el dump hay un boton que te permite pasar a modo debuguing, en este modo revisa el campo <ls_fcat>-fieldname que probablemente sea un blanco ó tal vez el bukrs; y la <ls_data> para ver que campos contiene

DavidXD_XD
01/05/09, 02:43:55
Hola, ese es un DUMP clasico en un ALV

1. Asegurate que los campos que asignas en el catalogo, existan en tu tabla interna
2. Cuando uses un SORT dentro del parametro de la llamada al ALV, ese campo que indicas en el SORT debe existir en el catalogo

Nos cuentas como te fue :D

MADF
04/05/09, 01:24:02
Esto lo vas a resolver checando que tu tabla de salida que le pasas a la funcion del alv contenga los mismos campos que tu catalogo de salida, no en numero sino en definicion es decir si en tu tabla de salida tienes un campo bukrs y en tu catalogo en el field name lo llamas sociedad, esto te provoca el dump no solo cuando filtres si no tambien cuando pidas subtotales por ejemplo.

Espero haber sido claro

Saludos.