‎2006 Nov 14 9:08 AM
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.
‎2006 Nov 14 10:14 AM
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
‎2006 Nov 14 9:13 AM
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
‎2006 Nov 14 9:59 AM
<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,
‎2006 Nov 14 9:14 AM
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.
‎2006 Nov 14 10:07 AM
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.
‎2006 Nov 14 10:07 AM
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.
‎2006 Nov 14 10:13 AM
hi amit tanek u for your answer it is common sense mybe u can b more detailed if u can given me ex. wonderful
‎2006 Nov 14 10:14 AM
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
‎2006 Nov 14 10:18 AM
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.
‎2006 Nov 14 10:31 AM
Sh....
consider the code after first selection..
that values i have given for testing only...
-Anu