PDA

Ver la Versión Completa : is a table without header line and therefore has no component called


Milady
26/12/12, 17:06:30
Hola a todos, soy nueva en esto del sap-abap y estoy haciendo un ejercicio que me tiene bloqueada totalmente. Me da el error del título y no se como solocionarlo. Tengo que usar una work area, así que creo que el problema tiene que estar en el loop, aunque no lo se muy bien.
Os dejo el code a ver si veis en q falla. Gracias!! ah! es una función!!


data:
t_vuelos TYPE BC400_T_CONNECTIONS,
wa_vuelos like LINE OF t_vuelos.

select carrid connid cityfrom airpfrom cityto airpto fltime deptime
FROM spfli
"into table
INTO wa_vuelos
WHERE cityfrom = iv_origen
and cityto = iv_destino.

IF sy-subrc <> 0.
WRITE / : 'No hay datos para la selección realizada'.
"RAISE no_vuelos.
ELSE.

loop at t_vuelos into wa_vuelos.
WRITE: / 'existe'.
* wa_vuelos-carrid.
* wa_vuelos-connid,
* wa_vuelos-cityfrom, DA ERROR Y NO SE PORQUE.
* wa_vuelos-airfrom,
* wa_vuelos-cityto,
* wa_vuelos-airpto,
* wa_vuelos-fltime,
* wa_vuelos-deptime,
* wa_vuelos-arrtime.

ENDLOOP.


ENDIF.

ENDSELECT.
ENDFUNCTION.

SAPING
26/12/12, 17:32:24
Asi tendria que funcionar:
(te recomiendo no usar select-endselect, es menos preformante)

data:
t_vuelos TYPE BC400_T_CONNECTIONS,
wa_vuelos like LINE OF t_vuelos.

SELECT carrid connid cityfrom airpfrom cityto airpto fltime deptime
FROM spfli
INTO TABLE T_VUELOS
WHERE cityfrom = iv_origen
and cityto = iv_destino.

IF sy-subrc <> 0.
WRITE / : 'No hay datos para la selección realizada'.
"RAISE no_vuelos.
ELSE.

LOOP AT t_vuelos INTO wa_vuelos.
WRITE: / 'existe'.
ENDLOOP.


ENDIF.

DCErick
27/12/12, 23:35:52
Bueno el error se debe a que el campo se llama: airpfrom y en el write tienes airfrom sin la "p".

En cuanto a tu código, toma en cuenta los comentarios SAPING.