Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

internal table

Former Member
0 Likes
631

Hi All,

CAn somebody help me out with this code:

TYPES: BEGIN OF outtab,

carrid LIKE spfli-carrid,

connid LIKE spfli-connid,

fldate LIKE sflight-fldate,

cityfrom LIKE spfli-cityfrom,

cityto LIKE spfli-cityto,

deptime LIKE spfli-deptime,

arrtime LIKE spfli-arrtime,

price LIKE sflight-price,

CURRENCY LIKE SFLIGHT-CURRENCY,

SEATSMAX LIKE SFLIGHT-SEATSMAX,

SEATSOCC LIKE SFLIGHT-SEATSOCC,

CURRCODE LIKE SCARR-CURRCODE,

CARRNAME LIKE SCARR-CARRNAME,

URL LIKE SCARR-URL,

END OF outtab.

TYPES:BEGIN OF st_spfli,

carrid LIKE spfli-carrid,

connid LIKE spfli-connid,

CITYFROM LIKE SPFLI-CITYFROM,

CITYTO LIKE SPFLI-CITYTO,

DEPTIME LIKE SPFLI-DEPTIME,

ARRTIME LIKE SPFLI-ARRTIME,

END OF st_spfli.

TYPES: BEGIN OF st_sflight,

carrid LIKE sflight-carrid,

connid LIKE sflight-connid,

fldate LIKE sflight-fldate,

price LIKE sflight-price,

CURRENCY LIKE SFLIGHT-CURRENCY,

SEATSMAX LIKE SFLIGHT-SEATSMAX,

SEATSOCC LIKE SFLIGHT-SEATSOCC,

END OF st_sflight.

TYPES: BEGIN OF ST_SBOOK,

CARRID LIKE SBOOK-CARRID,

CONNID LIKE SBOOK-CONNID,

FLDATE LIKE SBOOK-FLDATE,

BOOKID LIKE SBOOK-BOOKID,

ORDER_DATE LIKE SBOOK-ORDER_DATE,

PASSNAME LIKE SBOOK-PASSNAME,

LOCCURAM LIKE SBOOK-LOCCURAM,

FORCURKEY LIKE SBOOK-FORCURKEY,

END OF ST_SBOOK.

TYPES: BEGIN OF ST_SCARR,

CARRID LIKE SCARR-CARRID,

CURRCODE LIKE SCARR-CURRCODE,

CARRNAME LIKE SCARR-CARRNAME,

URL LIKE SCARR-URL,

END OF ST_SCARR.

DATA: it_outtab TYPE TABLE OF outtab,

it_spfli TYPE TABLE OF st_spfli,

it_sflight TYPE TABLE OF st_sflight,

IT_SBOOK TYPE TABLE OF ST_SBOOK,

IT_SCARR TYPE TABLE OF ST_SCARR,

wa_outtab TYPE outtab,

wa_spfli TYPE st_spfli,

wa_sflight TYPE st_sflight,

WA_SBOOK TYPE ST_SBOOK,

WA_SCARR TYPE ST_SCARR.

************SELECTION SCREEN***************

SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(40) TEXT-001.

SELECTION-SCREEN END OF LINE.

PARAMETERS: p_from TYPE spfli-cityfrom,

p_to TYPE spfli-cityto,

p_date TYPE sflight-fldate.

SELECTION-SCREEN: END OF BLOCK B1.

SELECT carrid

connid

CITYFROM

CITYTO

DEPTIME

ARRTIME

FROM spfli

INTO TABLE it_spfli

WHERE cityfrom EQ p_from

AND cityto EQ p_to.

IF IT_SPFLI[] IS NOT INITIAL.

SELECT carrid

connid

fldate

price

CURRENCY

SEATSMAX

SEATSOCC

FROM sflight

INTO table it_sflight

for all entries in it_spfli

WHERE carrid EQ it_spfli-carrid

AND connid EQ it_spfli-connid

and fldate eq p_date.

LOOP AT IT_SPFLI INTO WA_SPFLI.

MOVE-CORRESPONDING WA_SPFLI TO WA_OUTTAB.

LOOP AT IT_SFLIGHT INTO WA_SFLIGHT WHERE CARRID = WA_SPFLI-CARRID AND CONNID = WA_SPFLI-CONNID.

MOVE-CORRESPONDING WA_SFLIGHT TO WA_OUTTAB.

SELECT CARRID

CURRCODE

CARRNAME

URL

FROM SCARR

INTO TABLE IT_SCARR

WHERE CARRID = WA_SFLIGHT-CARRID.

SELECT CARRID

CONNID

FLDATE

BOOKID

ORDER_DATE

PASSNAME

LOCCURAM

FORCURKEY

FROM SBOOK

INTO TABLE IT_SBOOK

WHERE CARRID EQ WA_SFLIGHT-CARRID

AND CONNID EQ WA_SFLIGHT-CONNID

AND FLDATE EQ WA_SFLIGHT-FLDATE.

LOOP AT IT_SCARR INTO WA_SCARR WHERE CARRID = WA_SFLIGHT-CARRID.

MOVE-CORRESPONDING WA_SCARR TO WA_OUTTAB.

LOOP AT IT_SBOOK INTO WA_SBOOK.

MOVE-CORRESPONDING WA_SBOOK TO WA_OUTTAB.

APPEND WA_OUTTAB TO IT_OUTTAB.

clear wa_outtab.

ENDLOOP.

ENDLOOP.

ENDLOOP

.

ENDLOOP.

ELSE.

MESSAGE ' NO FLIGHT AVAILABLE' TYPE 'I'.

ENDIF.

LOOP AT IT_OUTTAB INTO WA_OUTTAB.

WRITE:/ wa_outtab-carrid,

wa_outtab-connid,

wa_outtab-fldate,

wa_outtab-cityfrom,

wa_outtab-cityto,

wa_outtab-deptime,

wa_outtab-arrtime,

wa_outtab-price,

wa_outtab-CURRENCY,

wa_outtab-SEATSMAX,

wa_outtab-SEATSOCC,

wa_outtab-CURRCODE,

wa_outtab-CARRNAME,

wa_outtab-URL.

ENDLOOP.

when i am executing this code, it fetched the correct output along with additional data. i guess there is some issue with looping. please help me out in resolving this problem.

regards

vivek

4 REPLIES 4
Read only

Former Member
0 Likes
453

Hi Vivek,

Program is running fine. What Exactly your problem ?

So that I can help you out of the problem.

Regards,

V.Raghavender.

Read only

0 Likes
453

Hi raghavendra,

when you execute this program, the first row is the desired output. my problem is the rows which are generated after the first row. there are n numbers of additional row generated in the output and i guess it is due to some looping issues. please help me in resolving it.

thanks and regards

vivek

Read only

Former Member
0 Likes
453

Hi,

In the loop below you have not specified the where condition :

CARRID EQ WA_SFLIGHT-CARRID

AND CONNID EQ WA_SFLIGHT-CONNID

AND FLDATE EQ WA_SFLIGHT-FLDATE.

LOOP AT IT_SBOOK INTO WA_SBOOK.

As per code i can suggest you to write both the select query outside the loop making use of FOR ALL ENTRIES.

and use READ instead of looping if you know there is corresponding only one entry from different itab.

Sandeep

Reward if helpful

Read only

Former Member
0 Likes
453

Hi,

I think there is big performance issue in your code. Just go by one rule - Never to write Select Statement inside a loop. Same can always - I mean it ALWAYS - be done by select-for all entries statement and thenafter using READ statement inside loop. Another thing i noticed is Clear WA_OUTTAB - it should be outside the loop of IT_SCARR .

Your code is small but very very tough on system. Finetune it.

Raj