‎2014 Jan 30 1:10 PM
Hi all.
I preparing a simple program for hr module. I was make join but fields are empty. I can't some tables but I already need them( like p1000-stext, s001-sptag ) Later I try "for all entries" method, but still doesn't work and this is my error text
| The WHERE condition does not refer to the FOR ALL ENTRIES table. . |
What I do ?
And this is all of my code.
REPORT Z_ORGTURLISTESI.
TABLES: pa0001, s001, t001, t001p, t501t, p1000, p0001.
""""" SEÇİM EKRANI """""
"Butonlar"
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN PUSHBUTTON (20) pb_but1 USER-COMMAND BUT1. "dgr seçmler
SELECTION-SCREEN PUSHBUTTON (20) pb_but2 USER-COMMAND BUT2. "arama yard
SELECTION-SCREEN PUSHBUTTON (20) pb_but3 USER-COMMAND BUT3. "sıralama
SELECTION-SCREEN PUSHBUTTON (20) pb_but4 USER-COMMAND BUT4. "org. yapısı
SELECTION-SCREEN END OF LINE.
"Seçim aralıkları"
SELECTION-SCREEN BEGIN OF BLOCK secim WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_pernr FOR pa0001-pernr no intervals. "pers. numarası
SELECT-OPTIONS: s_bukrs FOR pa0001-bukrs no intervals. "ÅŸirket kodu
SELECT-OPTIONS: s_werks FOR pa0001-werks no intervals. "pers. alanı
SELECT-OPTIONS: s_btrtl FOR pa0001-btrtl no intervals. "pers. alt alanı
SELECT-OPTIONS: s_persg FOR pa0001-persg no intervals. "çalışan grubu
SELECT-OPTIONS: s_persk FOR pa0001-persk no intervals. "çal. alt grubu
SELECT-OPTIONS: s_abkrs FOR pa0001-abkrs no intervals. "bordro birimi
SELECT-OPTIONS: s_orgeh FOR pa0001-orgeh no intervals. "org. birimi
SELECTION-SCREEN END OF BLOCK secim.
"Pozisyon ve tarih seçimi aralıkları"
SELECTION-SCREEN BEGIN OF BLOCK secim2 WITH FRAME TITLE text-002.
SELECT-OPTIONS: s_plans FOR pa0001-plans OBLIGATORY no-extension. "poz.
SELECT-OPTIONS: s_sptag FOR s001-sptag no-extension . "tarih
*s_sptag-low = '29.01.2014'.
*s_sptag-high = '29.01.2014'.
*APPEND s_sptag.
SELECTION-SCREEN END OF BLOCK secim2.
"""""SEÇİM EKRANI BİTİMİ"""""
INITIALIZATION.
pb_but1 = 'Diğer Seçimler'.
pb_but2 = 'Arama Yardımları'.
pb_but3 = 'Sıralama'.
pb_but4 = 'Org. Yapısı'.
"""""DATALAR"""""
"""""DATALAR"""""
"""""DATALAR"""""
"""""DATALAR"""""
DATA: BEGIN OF itab1 OCCURS 0,
pernr LIKE pa0001-pernr, "pers. numarası
sname LIKE pa0001-sname, "çalışan/başvuran adı
bukrs LIKE pa0001-bukrs, "ÅŸirket kodu
butext LIKE t001-butxt, "şirket adı
kostl LIKE pa0001-kostl, "masraf yeri
sachp LIKE pa0001-sachp, "personel ana verileri sorumlusu
plans LIKE pa0001-plans, "pozisyon
stext LIKE p1000-stext, "nesne tanımı
werks LIKE pa0001-werks, "personel alanı
btext LIKE t001p-btext, "personel alt alanı texti
persg LIKE pa0001-persg, "çalışan grubu
ptext LIKE t501t-ptext, "çalışan grubu tanımı(yaka durumu)
END OF itab1.
DATA: BEGIN OF itab_pa OCCURS 0,
pernr LIKE pa0001-pernr, "pers. numarası
sname LIKE pa0001-sname, "çalışan/başvuran adı
bukrs LIKE pa0001-bukrs, "ÅŸirket kodu
kostl LIKE pa0001-kostl, "masraf yeri
sachp LIKE pa0001-sachp, "personel ana verileri sorumlusu
plans LIKE pa0001-plans, "pozisyon
werks LIKE pa0001-werks, "personel alanı
persg LIKE pa0001-persg, "çalışan grubu
END OF itab_pa.
DATA: BEGIN OF itab_t0 OCCURS 0,
butxt LIKE t001-butxt, "şirket adı
END OF itab_t0.
DATA: BEGIN OF itab_tp OCCURS 0,
btext LIKE t001p-btext, "personel alt alan texti
END OF itab_tp.
DATA: BEGIN OF itab_t5 OCCURS 0,
ptext LIKE t501t-ptext, "çalışan grubu tanımı(m.yaka, çırak vs)
END OF itab_t5.
DATA: gt_fieldcat TYPE lvc_t_fcat,
gs_layout TYPE lvc_s_layo.
"""""STRUCTERE"""""
DATA: BEGIN OF gs_pa,
pernr LIKE itab_pa-pernr, "pers. numarası
sname LIKE itab_pa-sname, "çalışan/başvuran adı
bukrs LIKE itab_pa-bukrs, "ÅŸirket kodu
kostl LIKE itab_pa-kostl, "masraf yeri
sachp LIKE itab_pa-sachp, "personel ana verileri sorumlusu
plans LIKE itab_pa-plans, "pozisyon
persg LIKE itab_pa-persg, "çalışan grubu
END OF gs_pa.
DATA: BEGIN OF gs_t0,
butxt LIKE itab_t0, "şirket adı
END OF gs_t0.
DATA: BEGIN OF gs_tp,
btext LIKE itab_tp-btext, "personel alt alan texti
END OF gs_tp.
DATA: BEGIN OF gs_t5,
ptext LIKE itab_t5-ptext, "çalışan grubu tanımı(m.yaka, çırak vs)
END OF gs_t5.
START-OF-SELECTION.
PERFORM get_data_pa.
PERFORM get_data_t1.
PERFORM get_data_tp.
PERFORM get_data_t5.
PERFORM transfer.
form GET_DATA_PA .
SELECT * FROM pa0001 AS p
INTO CORRESPONDING FIELDS OF TABLE itab_pa
WHERE
p~pernr IN s_pernr AND
p~bukrs IN s_bukrs AND
p~werks IN s_werks AND
p~btrtl IN s_btrtl AND
p~persg IN s_persg AND
p~persk IN s_persk AND
p~abkrs IN s_abkrs AND
p~orgeh IN s_orgeh AND
p~plans IN s_plans.
endform. " GET_DATA_PA
"""""PERFORMLAR"""""
form GET_DATA_T1 .
SELECT butxt FROM t001 INTO itab_t0
FOR ALL ENTRIES IN itab_pa
WHERE bukrs IN s_bukrs.
ENDSELECT.
endform. " GET_DATA_T1
form GET_DATA_TP .
SELECT btext FROM t001p INTO itab_tp-btext
" FOR ALL ENTRIES IN itab_pa
WHERE werks IN s_werks.
ENDSELECT.
endform. " GET_DATA_TP
form GET_DATA_T5 .
SELECT ptext FROM t501t INTO itab_t5-ptext
"FOR ALL ENTRIES IN itab_pa
WHERE persg IN s_persg.
ENDSELECT.
endform. " GET_DATA_T5
form TRANSFER ."""sorunu çözdükten sonra devam et"""
‎2014 Jan 30 1:17 PM
Hi,
here you mentioned the forall entries in table itab_pa but didnt emntioned the key to compare.
where condition shoukd be like below when forall entries.
SELECT BUTXT FROM t001 INTO itab_t0
FOR ALL ENTRIES IN itab_pa
WHERE bukrs = itab_pa-bukrs."s_bukrs.
ENDSELECT.
‎2014 Jan 30 1:17 PM
Hi,
here you mentioned the forall entries in table itab_pa but didnt emntioned the key to compare.
where condition shoukd be like below when forall entries.
SELECT BUTXT FROM t001 INTO itab_t0
FOR ALL ENTRIES IN itab_pa
WHERE bukrs = itab_pa-bukrs."s_bukrs.
ENDSELECT.
‎2014 Jan 30 1:19 PM
later u can add select option like below if you want.
SELECT BUTXT FROM t001 INTO itab_t0
FOR ALL ENTRIES IN itab_pa
WHERE bukrs = itab_pa-bukrs and bukrs in s_bukrs.
ENDSELECT.
‎2014 Jan 30 1:18 PM
when ever you are using for all entries in your query ,
you must refer to one of the field in the reference table .
say you have an internal table with document number - vbeln as its field say it_xyz ,
then your query should look like,
select Xfield yfield zfield (any field you want)
from xyztabel ( any table )
into <internal table>
for all entries in it_xyz
where xfield = it_xyz-vbeln. "this is what missing in your query.
and xyz = xyz ...... more condition as you have ...
‎2014 Jan 30 1:21 PM
Hi,
When you are using for all entries you need to pass data which is in that internal table.
Below you are passing the select-option in where condition.
SELECT ptext FROM t501t INTO itab_t5-ptext
"FOR ALL ENTRIES IN itab_pa
WHERE persg IN s_persg.
ENDSELECT.
Instead pass as below.
SELECT ptext FROM t501t INTO itab_t5-ptext
"FOR ALL ENTRIES IN itab_pa
WHERE persg eq itab_pa-persg.
ENDSELECT.
Regards,
K.Srikanth Reddy.