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

loop problem

Former Member
0 Likes
937

convert it to objid num8 my problem is because I doing into table (INTO CORRESPONDING FIELDS OF TABLE b_itab) how can I use It for table.i think with loop but i dont now how

<b>Data :sec_objid(8) type n.</b>

SELECT objid sobid sclas begda endda

FROM hrp1001

INTO CORRESPONDING FIELDS OF TABLE <b>b_itab</b>

FOR ALL ENTRIES IN z_course_table

WHERE objid = z_course_table-objid

AND otype = z_course_table-otype

AND plvar = '01'

AND relat = '020'

AND rsign = 'B'

AND begda LE sy-datum

AND endda GE sy-datum.

<b>sec_objid = wa_b_itab-sobid.</b>

IF sy-subrc = 0.

*2 for all 'E' read hrp1001

SELECT objid sobid priox begda endda

FROM hrp1001

INTO CORRESPONDING FIELDS OF TABLE c_itab

FOR ALL ENTRIES IN b_itab

WHERE ( otype EQ 'E' OR otype EQ 'ET' )

<b> AND objid = sec_objid</b> AND ( relat EQ '025' OR relat EQ '614' )

AND sclas EQ 'P'

AND begda LE sy-datum

AND endda GE sy-datum.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
879

Hi Sh..

b_itab-sobid type sobid.

SELECT objid sobid sclas begda endda

FROM hrp1001

INTO CORRESPONDING FIELDS OF TABLE b_itab

WHERE objid = '000005'

AND otype = '0007'

AND plvar = '01'

AND relat = '020'

AND rsign = 'B'

AND begda LE sy-datum

AND endda GE sy-datum.

IF sy-subrc = 0.

loop at b_itab.

SELECT objid sobid priox begda endda

FROM hrp1001

INTO CORRESPONDING FIELDS OF TABLE c_itab

WHERE ( otype EQ 'E' OR otype EQ 'ET' )

AND objid = <b>b_itab-sobid+0(8)</b> AND ( relat EQ '025' OR relat EQ '614' )

AND sclas EQ 'P'

AND begda LE sy-datum

AND endda GE sy-datum.

endloop.

endif.

if you don't want to use loop, declare another IT with the same stru and sobid of type HROBJID.

and get b_itab[] into new_itab[].

do for all entries in new_itab.

like.......

new_itab[] = b_itab[].

data : begin of new_itab occurs 0,

objid like hrp1001-objid,

sobid like hrp1001-objid,

sclas like hrp1001-sclas,

begda like hrp1001-begda,

endda like hrp1001-endda,

end of new_itab.

SELECT objid sobid priox begda endda

FROM hrp1001

INTO CORRESPONDING FIELDS OF TABLE c_itab

for all entries in new_itab

WHERE ( otype EQ 'E' OR otype EQ 'ET' )

AND objid = new_itab-sobid AND ( relat EQ '025'

OR relat EQ '614' )

AND sclas EQ 'P'

AND begda LE sy-datum

AND endda GE sy-datum.

endif.

-Anu.

Message was edited by:

Anupama Reddy

9 REPLIES 9
Read only

Former Member
0 Likes
879

Hi..

get 45 char value first then giving 2nd select,

SELECT objid sobid priox begda endda

FROM hrp1001

INTO CORRESPONDING FIELDS OF TABLE c_itab

FOR ALL ENTRIES IN b_itab

WHERE ( otype EQ 'E' OR otype EQ 'ET' )

AND objid = <b>sec_objid+0(8)</b> AND ( relat EQ '025' OR relat EQ '614' )

AND sclas EQ 'P'

AND begda LE sy-datum

AND endda GE sy-datum.

-Anu

Read only

0 Likes
879

<b>hellow anupama</b> i have a problem i cant compile this becouse

FOR ALL ENTRIES IN<b> b_itab</b>

and what did you mean get 45 char value first then giving 2nd select,

Read only

Former Member
0 Likes
879

SELECT objid sobid sclas begda endda

FROM hrp1001

INTO CORRESPONDING FIELDS OF TABLE b_itab

FOR ALL ENTRIES IN z_course_table

WHERE objid = z_course_table-objid

AND otype = z_course_table-otype

AND plvar = '01'

AND relat = '020'

AND rsign = 'B'

AND begda LE sy-datum

AND endda GE sy-datum.

Loop at b_itab into wa_b_itab.

*2 for all 'E' read hrp1001

SELECT objid sobid priox begda endda

FROM hrp1001

INTO CORRESPONDING FIELDS OF TABLE c_itab

FOR ALL ENTRIES IN b_itab

WHERE ( otype EQ 'E' OR otype EQ 'ET' )

AND objid = wa_b_itab-sobid AND ( relat EQ '025' OR relat EQ '614' )

AND sclas EQ 'P'

AND begda LE sy-datum

AND endda GE sy-datum.

Endloop.

Read only

0 Likes
879

hellow anurag this loop dosent help becouse i give u ex. if i do simpele select i do

SELECT objid stext

FROM hrp1000

INTO (wa_itab-objid,wa_itab-stext)

WHERE plvar ='01'

AND otype ='O'

AND begda <= currnt_date

AND endda => currnt_date

AND langu = 'B'.

wa_itab-obj_display = wa_itab-objid.

&----


  • 2 org_unit_manager

----


SELECT SINGLE sobid begda

FROM hrp1001

INTO (wa_itab-sobid,wa_itab-begda)

WHERE plvar ='01'

AND otype ='O'

AND objid = wa_itab-objid

AND rsign ='B'

AND relat ='012'

AND begda <= currnt_date

AND endda => currnt_date.

IF sy-subrc = 0 .

<b>

wa_itab-objid = wa_itab-sobid</b>

becouse i have to move sobid to objid becouse sobid is char 45 and sobid is num8 and in simple select its ok but becuse i use for all entries i have a problem u have an idea how to solve it

SELECT objid sobid sclas begda endda

FROM hrp1001

<b>INTO CORRESPONDING FIELDS OF TABLE b_itab</b>

FOR ALL ENTRIES IN z_course_table

WHERE objid = z_course_table-objid

AND otype = z_course_table-otype

AND plvar = '01'

AND relat = '020'

AND rsign = 'B'

AND begda LE sy-datum

AND endda GE sy-datum.

Loop at b_itab into wa_b_itab.

*2 for all 'E' read hrp1001

SELECT objid sobid priox begda endda

FROM hrp1001

INTO CORRESPONDING FIELDS OF TABLE c_itab

<b>FOR ALL ENTRIES IN b_itab</b>

WHERE ( otype EQ 'E' OR otype EQ 'ET' )

AND objid = wa_b_itab-sobid <b>not working not the same ?????</b>

AND ( relat EQ '025' OR relat EQ '614' )

AND sclas EQ 'P'

AND begda LE sy-datum

AND endda GE sy-datum.

Endloop.

Read only

Former Member
0 Likes
879

Hi sh,

1. this won't work

2. bcos OBJDI = 8 char

and sobid = 45

so it wont match in for all entries.

3. For this purpose.

a) in the main internal table create one more extra field eg. MYOBJID (like objid 8 char)

b) after using SELECT statement, loop at the internal table

c) write itab-sobid to itab-myobjid.

4. Now in your for all entries,

use this new field MYOBJID (instead of sobid etc)

regards,

amit m.

Read only

0 Likes
879

hi amit tanek u for your answer it is common sense mybe u can b more detailed if u can given me ex. wonderful

Read only

Former Member
0 Likes
880

Hi Sh..

b_itab-sobid type sobid.

SELECT objid sobid sclas begda endda

FROM hrp1001

INTO CORRESPONDING FIELDS OF TABLE b_itab

WHERE objid = '000005'

AND otype = '0007'

AND plvar = '01'

AND relat = '020'

AND rsign = 'B'

AND begda LE sy-datum

AND endda GE sy-datum.

IF sy-subrc = 0.

loop at b_itab.

SELECT objid sobid priox begda endda

FROM hrp1001

INTO CORRESPONDING FIELDS OF TABLE c_itab

WHERE ( otype EQ 'E' OR otype EQ 'ET' )

AND objid = <b>b_itab-sobid+0(8)</b> AND ( relat EQ '025' OR relat EQ '614' )

AND sclas EQ 'P'

AND begda LE sy-datum

AND endda GE sy-datum.

endloop.

endif.

if you don't want to use loop, declare another IT with the same stru and sobid of type HROBJID.

and get b_itab[] into new_itab[].

do for all entries in new_itab.

like.......

new_itab[] = b_itab[].

data : begin of new_itab occurs 0,

objid like hrp1001-objid,

sobid like hrp1001-objid,

sclas like hrp1001-sclas,

begda like hrp1001-begda,

endda like hrp1001-endda,

end of new_itab.

SELECT objid sobid priox begda endda

FROM hrp1001

INTO CORRESPONDING FIELDS OF TABLE c_itab

for all entries in new_itab

WHERE ( otype EQ 'E' OR otype EQ 'ET' )

AND objid = new_itab-sobid AND ( relat EQ '025'

OR relat EQ '614' )

AND sclas EQ 'P'

AND begda LE sy-datum

AND endda GE sy-datum.

endif.

-Anu.

Message was edited by:

Anupama Reddy

Read only

0 Likes
879

hi anupama

b_itab-sobid type sobid.

SELECT objid sobid sclas begda endda

FROM hrp1001

INTO CORRESPONDING FIELDS OF TABLE b_itab

<b>WHERE objid = '000005' what is this????

AND otype = '0007'

AND plvar = '01'</b>

AND relat = '020'

AND rsign = 'B'

AND begda LE sy-datum

AND endda GE sy-datum.

IF sy-subrc = 0.

loop at b_itab.

SELECT objid sobid priox begda endda

FROM hrp1001

INTO CORRESPONDING FIELDS OF TABLE c_itab

WHERE ( otype EQ 'E' OR otype EQ 'ET' )

AND objid = b_itab-sobid+0(8) AND ( relat EQ '025' OR relat EQ '614' )

AND sclas EQ 'P'

AND begda LE sy-datum

AND endda GE sy-datum.

endloop.

endif.

if you don't want to use loop, declare another IT with the same stru and sobid of type HROBJID.

and get b_itab[] into new_itab[].

do for all entries in new_itab.

Read only

0 Likes
879

Sh....

consider the code after first selection..

that values i have given for testing only...

-Anu