MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Error tabla debe ser una estructura plana. (foro/showthread.php?t=74596)

Moniponei 15/09/15 07:54:26

Error tabla debe ser una estructura plana.
 
Muy buenas.

Soy nueva en el foro pero a ver si me podéis ayudar.

Al intentar activar un report me aparece el siguiente error y no tengo ni idea de cómo solucionarlo.

"ZSGUP_CALIFH" debe ser una estructura plana: Las tablas internas, referencias, strings y estructuras están prohibidos como componentes

Os copio el trocito de report:

TABLES: dfkkbptaxnum, "Nº identificación fiscal p.interlocutor comercial
but000, "IC: Datos generales I
but020, "IC: Direcciones
adrc, "Direcciones (Business Address Services)
adr6, "Direcciones correo electrónico
adr2, "Números de teléfono (Business Address Services)
zc0vendor, "RYSIC - Tabla para el extractor 0VENDOR_ATTR
zsgup_califh. "Documento de calificación del proveedor

DATA: BEGIN OF tabla OCCURS 0,
partner LIKE zsgup_califh-partner,
pos_glob_aj LIKE zsgup_califh-pos_glob_aj.
DATA: END OF tabla.

START-OF-SELECTION.

PERFORM borrar_registros_anteriores.

PERFORM generar_registros_nuevos.


La línea en la que me da el error es en la que he marcado en rojo.

Las cosas que he probado para ver si funcionaba son:

1. Hacer lo siguiente:
en lugar de DATA: etc... hacer

TYPES: BEGIN OF tt_tabla,
partner TYPE zsgup_califh-partner,
pos_glob_aj TYPE zsgup_califh-por_glob_aj,
END OF tt_tabla.
DATA: tabla TYPE TABLE OF tt_tabla.


No funciona.

2. También he cambiado el LIKE por TYPE en el código original, que había leído por ahí que quizá funcionase. Tampoco funciona.

3. He comentado también la línea en la que me da el error, y nada, me dice exactamente lo mismo.

No sé si será algún cambio que se haya hecho en la tabla, más que cambio en el report.

Alguien me puede ayudar? Es un poco urgente...

Gracias de antemano y un saludo!

sconoredhot 15/09/15 11:52:41

hola
 
Podrias verificar como figura zsgup_califh en la SE11 ?

Quizas puedas ver de que tipo son los campos, por ejemplo si el primero es un char de 20, le pones de ese tipo en lugar de usar el tipo de la tabla y solucionas el problema por ahi.

FFARRO 16/09/15 20:47:42

Revisa los elementos de datos asignados a los campos de la zsgup_califh en alguno de los campos debe estar haciendo referencia a alguna estructura, en la sentencia tables no esta permitido, puede declarar esa esctructura en tu programa con la sentencia TYPES.

Saludos,

Freddy Farro

Moniponei 17/09/15 06:41:47

Buenas!
Muchas gracias por vuestras respuestas.

He probado una cosa y ahora parece que no da error, tengo que esperar a que hagan las pruebas a ver si funciona igual o no jeje

Los cambios que he hecho son:

1. Al definir los campos de "tabla", les he puesto TYPE el elemento de datos, en lugar de LIKE tabla-campo.

2. Me he definido un wa ls_zsgup_califh TYPE zsgup_califh. Y he trabajado sobre él.

3. He cambiado el SELECT SINGLE por esta línea:
SELECT SINGLE * FROM zsgup_califh INTO ls_zsgup_califh WHERE partner = but020-partner.

5. zc0vendor-cen_esp_empl = ls_zsgup_califh-cen_esp_empl.

Qué os parece?

Gracias y un saludo.


Husos Horarios son GMT. La hora en este momento es 14:06:55.

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