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

deletion from ITAB

Former Member
0 Likes
666

Hi all,

I am displaying MBLNR BWART LFBNR from MSEG into an itab where BWART = '150 ' .

suppose i have data like this

MBLNR BWART LFBNR

11111 150 12345

22222 333 11111

33333 333 44444

12345 333 67678

so, i want to delete 11111 (because its BWART = 150) and its corresponding LFBNR value ie 12345 from MBLNR..

i e after the deletion my ITAB have

MBLNR BWART LFBNR

22222 333 11111

33333 333 44444

How do i do that ?

Krupali..

1 ACCEPTED SOLUTION
Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
622

Try this.

TYPES: BEGIN OF ttab,
         mblnr TYPE string,
         bwart TYPE string,
         lfbnr TYPE string,
       END OF ttab.
DATA: itab TYPE TABLE OF ttab.
DATA: wa LIKE LINE OF itab.
DATA: wa_tmp LIKE LINE OF itab.

wa-mblnr = '11111'.
wa-bwart = '150'.
wa-lfbnr = '12345'.
APPEND wa TO itab.
wa-mblnr = '22222'.
wa-bwart = '333'.
wa-lfbnr = '11111'.
APPEND wa TO itab.
wa-mblnr = '33333'.
wa-bwart = '333'.
wa-lfbnr = '44444'.
APPEND wa TO itab.
wa-mblnr = '12345'.
wa-bwart = '333'.
wa-lfbnr = '67678'.
APPEND wa TO itab.

LOOP AT itab INTO wa
          WHERE bwart = '150'.
  READ TABLE itab INTO wa_tmp WITH KEY mblnr = wa-lfbnr.
  IF sy-subrc = 0.
    DELETE TABLE itab FROM wa_tmp.
  ENDIF.
  DELETE TABLE itab FROM wa.
ENDLOOP.

LOOP AT itab INTO wa.
  WRITE:/ wa-mblnr, wa-bwart, wa-lfbnr.
ENDLOOP.

Regards,

Rich Heilman

Hi all,

I am displaying MBLNR BWART LFBNR from MSEG into an itab where BWART = '150 ' .

suppose i have data like this

MBLNR BWART LFBNR

11111 150 12345

22222 333 11111

33333 333 44444

12345 333 67678

so, i want to delete 11111 (because its BWART = 150) and its corresponding LFBNR value ie 12345 from MBLNR..

i e after the deletion my ITAB have

MBLNR BWART LFBNR

22222 333 11111

33333 333 44444

How do i do that ?

Krupali..

4 REPLIES 4
Read only

JozsefSzikszai
Active Contributor
0 Likes
622

hi,

I would do in two steps:

1. LOOP AT itan WHERE bwart = '150'.

==> collect relevant doc. numbers into another itab (let's say itab2) + delete that line

ENDLOOP.

2. LOOP AT itab2.

READ TABLE itab WITH key mblnr = itab2-mblnr.

IF sy-subrc EQ 0.

==> delete the line from itab

ENDIF.

ENDLOOP.

hope this helps

ec

Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
623

Try this.

TYPES: BEGIN OF ttab,
         mblnr TYPE string,
         bwart TYPE string,
         lfbnr TYPE string,
       END OF ttab.
DATA: itab TYPE TABLE OF ttab.
DATA: wa LIKE LINE OF itab.
DATA: wa_tmp LIKE LINE OF itab.

wa-mblnr = '11111'.
wa-bwart = '150'.
wa-lfbnr = '12345'.
APPEND wa TO itab.
wa-mblnr = '22222'.
wa-bwart = '333'.
wa-lfbnr = '11111'.
APPEND wa TO itab.
wa-mblnr = '33333'.
wa-bwart = '333'.
wa-lfbnr = '44444'.
APPEND wa TO itab.
wa-mblnr = '12345'.
wa-bwart = '333'.
wa-lfbnr = '67678'.
APPEND wa TO itab.

LOOP AT itab INTO wa
          WHERE bwart = '150'.
  READ TABLE itab INTO wa_tmp WITH KEY mblnr = wa-lfbnr.
  IF sy-subrc = 0.
    DELETE TABLE itab FROM wa_tmp.
  ENDIF.
  DELETE TABLE itab FROM wa.
ENDLOOP.

LOOP AT itab INTO wa.
  WRITE:/ wa-mblnr, wa-bwart, wa-lfbnr.
ENDLOOP.

Regards,

Rich Heilman

Read only

Former Member
0 Likes
622

Loop at itab1 into wa_itab1 where bwart = 150.

move itab1-lfbnr to gv_lfbnr.

delete itab1 from wa_itab1.

clear wa_itab1.

read table itab1 into wa_itab1 with key lfbnr = gv_lfbnr.

if sy-subrc = 0.

delete itab1 from wa_itab1..

endloop.

Thanks,

Sandeep.

Read only

0 Likes
622

Hi all,

i got the solution

tables: mseg.

TYPES: BEGIN OF t_mseg,

mblnr TYPE mseg-mblnr,

bwart TYPE mseg-bwart,

lfbnr TYPE mseg-lfbnr,

END OF t_mseg.

DATA: itab_mseg TYPE TABLE OF t_mseg.

DATA: w_mseg type t_mseg.

select mblnr bwart lfbnr from mseg INTO TABLE itab_mseg.

  • LOOP AT itab_mseg INTO w_mseg.

  • WRITE:/ SY-TABIX, w_mseg-mblnr, 27 w_mseg-bwart, 35 w_mseg-lfbnr.

  • ENDLOOP.

types: BEGIN OF t1_mseg,

mblnr TYPE mseg-mblnr,

bwart TYPE mseg-bwart,

lfbnr TYPE mseg-lfbnr,

end of t1_mseg.

data: itab2 TYPE TABLE OF t1_mseg,

w2 TYPE t1_mseg.

*select mblnr bwart lfbnr FROM mseg into table itab2 WHERE bwart = '102'.

  • LOOP AT itab2 INTO w2.

  • WRITE:/ SY-TABIX, w2-mblnr, 27 w2-bwart, 35 w2-lfbnr.

  • ENDLOOP.

select mblnr bwart lfbnr FROM mseg into table itab2 WHERE bwart = '102'.

  • LOOP AT itab2 INTO w2.

  • WRITE:/ SY-TABIX, w2-mblnr, 27 w2-bwart, 35 w2-lfbnr.

  • ENDLOOP.

LOOP at itab_mseg INTO w_mseg.

READ TABLE itab2 INTO w2 with KEY mblnr = w_mseg-mblnr." and

  • lfbnr = w_mseg-lfbnr.

if sy-subrc = 0.

delete itab_mseg.

endif.

endloop.

*LOOP AT itab_mseg INTO w_mseg.

  • WRITE:/ SY-TABIX, w_mseg-mblnr, 27 w_mseg-bwart, 35 w_mseg-lfbnr.

  • ENDLOOP.

LOOP at itab_mseg INTO w_mseg.

READ TABLE itab2 INTO w2 with KEY lfbnr = w_mseg-lfbnr." and

  • lfbnr = w_mseg-lfbnr.

if sy-subrc = 0.

delete itab_mseg.

endif.

endloop.

LOOP AT itab_mseg INTO w_mseg.

WRITE:/ SY-TABIX, w_mseg-mblnr, 27 w_mseg-bwart, 35 w_mseg-lfbnr.

ENDLOOP.