MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Error en ALV: OBJECTS_NOT_CHARLIKE (foro/showthread.php?t=15773)

acha3318 19/08/08 23:47:29

Error en ALV: OBJECTS_NOT_CHARLIKE
 
Saludos Foro....

Al tratar de usar el boton "Fichero Local" de la ALV, para bajar los datos a excel, me sale de inmediato el siguiente error:

Errores tiempo ejec. OBJECTS_NOT_CHARLIKE

Anál.errores
In statement
"STRLEN( obj )..."
the argument "obj" can only take a character-type data object.

In this case, the operand "obj" has the non-character type "I".





Si a alguién ya le pasó este problema y lo solucionó les agradezco la ayudita.

Suerte...

ACHA

bisonye 20/08/08 07:26:47

Hola,

Esto es un error en la definición de tu fieldcat.

Puede que te digan que no es necesario pero por experiencia para que todo funcione correctamente el fieldcat tiene que tener definido el campo "tabname". He visto muchos fieldcats que no lo tenían definido y fallaban por todos sitio.

Dime si es tu caso y si no funciona buscamos otra solución.

Saludos

acha3318 20/08/08 13:36:12

Hola, He definido el campo "wa_fieldcat-tabname" la cual es una tabla transparente....pero me sigue saliendo el mismo error:

wa_fieldcat-fieldname = p_fieldname.
wa_fieldcat-tabname = p_ref_tabname.
wa_fieldcat-col_pos = p_colpos.
wa_fieldcat-no_out = p_noout.
wa_fieldcat-hotspot = p_hotspot.
wa_fieldcat-checkbox = p_checkbox.
wa_fieldcat-icon = p_showasicon.
wa_fieldcat-do_sum = p_dosum.

La definición de mi tabla interna de salida es la siguiente:

TYPES: BEGIN OF tp_data,
mblnr LIKE mseg-mblnr,
mjahr LIKE mseg-mjahr,
bwart LIKE mseg-bwart,
matnr LIKE mseg-matnr,
werks LIKE mseg-werks,
lgort LIKE mseg-lgort,
charg LIKE mseg-charg,
linea LIKE ausp-atwrt,
cpudt TYPE mkpf-cpudt,
cputm TYPE mkpf-cputm,
estado TYPE string,
horas TYPE i,
min_text TYPE string,
dias TYPE p LENGTH 8 DECIMALS 2,
END OF tp_data.

Si alguien tiene otra idea gracias......

bisonye 20/08/08 13:48:31

Me explico con más detalle,

Para que todo funcione bien el campo tabname tiene que tener el nombre de la tabla interna que le pasas a la función.
Por ejemplo si quieres hacer un ALV con materiales y su descripción la tabla interna sería así (esta definición está obsoleta pero es la más rápida de escribir :cool: :
En tu fieldcat si quieres que la cabecera de la columna sea la de los campos de las tablas transparentes debe ser así:
La tabla de referencia no es necesaria. Si defines tu catálogo solo con la tabla de referencia tendrás problemas.

Espero haberme explicado mejor.

Saludos

acha3318 20/08/08 15:51:10

Gracias... BISONYE

Has tenido toda la razón, con tu aporte me funcionó perfectamente mi ALV.
para redondear quedó así:

p_fieldname: Campo(s) de la tabla interna que he definido.
p_ref_fieldname: Campo(s) de tabla transparente / o su elem,ento de datos
p_ref_tabname: Tabla Transparente que hace referencia al campo o elemento de datos.

Haciendo bien esta definición fué totalmente transparente la bajada de la info a exel.

Quedo muy agradecido por tu valiosa colaboración.

POSTDATA: Anotate un punto.

Suerte.

ACHA

bisonye 20/08/08 16:11:10

ANOTADO!!
Un detalle sin importancia (ya que funciona igual) si el campo de tu tabla interna tiene el mismo nombre que el campo de la tabla del diccionario no es necesaria la definición del ref_fieldname.

Saludos

jesusgs12 14/07/09 07:52:27

Muchas gracias, me sirvió bastante ;)

bisonye 14/07/09 08:03:08


¡Que majo!
Me alegra que te sirviera

Abaunus 14/07/09 15:28:19

Bisonye: ¡hola!
Lo que yo no entendí (y espero no causar complicaciones), es que vos le recomendabas a Acha que complete en la definición de la FIELDCAT el valor wa_fieldcat-tabname de cada campo, con el valor de la tabla que se pasa al OUTTAB en la función que despliega el ALV, ¿no?. Pero lo que supuestamente él hizo es completa los valores wa_fieldcat-ref_fieldname y wa_fieldcat-ref_tabname , y le funcionó sin aparentemente completar wa_fieldcat-tabname ....

bisonye 14/07/09 16:01:35

Hola Abaunus, complicaciones ninguna, al menos por mi parte.

Tienes razón, parece que Acha hizo la definición incompleta, no me di cuenta en su día, pero solucionó su problema.

Por la experiencia que tengo con los ALV, que no es poca, no es necesario poner la tabname si tienes la ref_tabname. El fallo principal de Acha es que ponía en tabname el valor de ref_tabname y por eso el dump. El problema de no poner la definición completa viene despues en pequeños detalles, al pasar a excell se pierden valores, se truncan algunos, las impresiones no salen bien, filtros, pequeñas cosas que en un momento dado pueden ocasionar grandes problemas.

Espero que quede claro.

Saludos


Husos Horarios son GMT. La hora en este momento es 14:25:39.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web