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 not populating.

Former Member
0 Likes
825

Hi,

Below is the select that I have written ... but the problem is that internal table t_outtab is not getting populated. Can someone please correct me.

  • Types

TYPES: BEGIN OF X_OUTTAB,

SELECT TYPE XFELD,

ICON TYPE CHAR10.

INCLUDE STRUCTURE ZCO_GLPCT.

TYPES: GROUP TYPE XFELD,

LINECOLOR TYPE CHAR4, "Color for corresponding line

CELLCOLOR TYPE LVC_T_SCOL,

CELLSTYLES TYPE LVC_T_STYL,

TXT50 TYPE TXT50_SKAT.

TYPES: END OF X_OUTTAB.

  • Internal Tables

DATA: T_OUTTAB TYPE STANDARD TABLE OF X_OUTTAB,

W_OUTTAB LIKE LINE OF T_OUTTAB.

DATA : T_ZCOGLPCT TYPE STANDARD TABLE OF ZCO_GLPCT,

W_ZCOGLPCT LIKE LINE OF T_ZCOGLPCT.

SELECT * FROM ZCO_GLPCT

INTO CORRESPONDING FIELDS OF TABLE T_ZCOGLPCT

WHERE RLDNR EQ '8A'

AND ( RRCTY EQ '0' OR RRCTY EQ '2' )

AND RVERS EQ '000'

AND zoru EQ p_zoru

AND RYEAR EQ P_YEAR

AND RPERI EQ P_PERIOD

AND RBUKRS EQ P_BUKRS.

IF SY-SUBRC NE 0.

MESSAGE S003(Z01).

ELSE.

LOOP AT T_ZCOGLPCT INTO W_ZCOGLPCT.

l_tabix = sy-tabix.

MOVE-CORRESPONDING W_ZCOGLPCT TO W_OUTTAB.

MODIFY T_OUTTAB FROM W_OUTTAB index l_tabix.

ENDLOOP.

Thank You,

SB.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
509

Hi SB,

Use APPEND statement to populate data into internal table.

SELECT * FROM ZCO_GLPCT

INTO CORRESPONDING FIELDS OF TABLE T_ZCOGLPCT

WHERE RLDNR EQ '8A'

AND ( RRCTY EQ '0' OR RRCTY EQ '2' )

AND RVERS EQ '000'

AND zoru EQ p_zoru

AND RYEAR EQ P_YEAR

AND RPERI EQ P_PERIOD

AND RBUKRS EQ P_BUKRS.

IF SY-SUBRC NE 0.

MESSAGE S003(Z01).

ELSE.

LOOP AT T_ZCOGLPCT INTO W_ZCOGLPCT.

l_tabix = sy-tabix.

MOVE-CORRESPONDING W_ZCOGLPCT TO W_OUTTAB.

<b>APPEND W_OUTTAB TO T_OUTTAB.</b>

<b>CLEAR W_OUTTAB.</b>

ENDLOOP.

Thanks,

Vinay

3 REPLIES 3
Read only

Former Member
0 Likes
510

Hi SB,

Use APPEND statement to populate data into internal table.

SELECT * FROM ZCO_GLPCT

INTO CORRESPONDING FIELDS OF TABLE T_ZCOGLPCT

WHERE RLDNR EQ '8A'

AND ( RRCTY EQ '0' OR RRCTY EQ '2' )

AND RVERS EQ '000'

AND zoru EQ p_zoru

AND RYEAR EQ P_YEAR

AND RPERI EQ P_PERIOD

AND RBUKRS EQ P_BUKRS.

IF SY-SUBRC NE 0.

MESSAGE S003(Z01).

ELSE.

LOOP AT T_ZCOGLPCT INTO W_ZCOGLPCT.

l_tabix = sy-tabix.

MOVE-CORRESPONDING W_ZCOGLPCT TO W_OUTTAB.

<b>APPEND W_OUTTAB TO T_OUTTAB.</b>

<b>CLEAR W_OUTTAB.</b>

ENDLOOP.

Thanks,

Vinay

Read only

0 Likes
509

Thank You Vinay.

Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
509

Your problem may be in here.



LOOP AT T_ZCOGLPCT INTO W_ZCOGLPCT. 
l_tabix = sy-tabix. 
MOVE-CORRESPONDING W_ZCOGLPCT TO W_OUTTAB.
 
read table t_outtab with key <specify_key_Here>
if sy-subrc = 0.
MODIFY T_OUTTAB FROM W_OUTTAB index sy-tabix.
else.
append w_outtab to t_outtab.
endif. 

ENDLOOP.

You want to append a new record if not already there and modify existing records, right?

Regards,

Rich HEilman