2011 May 31 4:28 PM
TYPES: BEGIN OF ty_block1,
werks TYPE likp-werks,
lfdat TYPE likp-lfdat,
lfart TYPE likp-lfart,
vbeln TYPE likp-vbeln,
END OF ty_block1.
DATA: li_block1 TYPE STANDARD TABLE OF ty_block1.
DATA: li_block2 TYPE STANDARD TABLE OF ty_block2.
SELECT likpwerks likplfdat likplfart likpvbeln
INTO TABLE li_block1
FROM likp
INNER JOIN lips ON lipsvbeln = likpvbeln
WHERE likp~werks IN s_werks
SELECT ????? (Don´t allow me to select liblock1 fields in this area)
INTO TABLE li_block2
FROM vbfa
FOR ALL ENTRIES IN li_block1
WHERE vbfa~vbelv = li_block1-vbeln.
ENDIF.
Any idea to extract data from li_block1 table into li_block2 table (i.e li_block1-fdat or li_block1-werks)?
Thanks in advance
TYPES: BEGIN OF ty_block1,
werks TYPE likp-werks,
lfdat TYPE likp-lfdat,
lfart TYPE likp-lfart,
vbeln TYPE likp-vbeln,
END OF ty_block1.
DATA: li_block1 TYPE STANDARD TABLE OF ty_block1.
DATA: li_block2 TYPE STANDARD TABLE OF ty_block2.
SELECT likpwerks likplfdat likplfart likpvbeln
INTO TABLE li_block1
FROM likp
INNER JOIN lips ON lipsvbeln = likpvbeln
WHERE likp~werks IN s_werks
SELECT ????? (Don´t allow me to select liblock1 fields in this area)
INTO TABLE li_block2
FROM vbfa
FOR ALL ENTRIES IN li_block1
WHERE vbfa~vbelv = li_block1-vbeln.
ENDIF.
Any idea to extract data from li_block1 table into li_block2 table (i.e li_block1-fdat or li_block1-werks)?
Thanks in advance
2011 May 31 4:37 PM
2011 Jun 01 9:02 AM
hi
if you want you can select from vbfa d.b table you have to hive one more declaration part to that particular table after you can continue with for all entries and also remove endif .
thanking you
2011 Jun 01 12:10 PM
Hallo Ignacio,
the only way you have is to declare an ITAB containing the field names you need to select and put it in your select code.
The code should be similar to this:
TYPES: BEGIN OF ty_block1,
werks TYPE likp-werks,
lfdat TYPE likp-lfdat,
lfart TYPE likp-lfart,
vbeln TYPE likp-vbeln,
END OF ty_block1.
DATA: li_block1 TYPE STANDARD TABLE OF ty_block1.
DATA: li_block2 TYPE STANDARD TABLE OF ty_block2.
DATA : BEGIN OF t_fields OCCURS 0,
fieldname TYPE aind_str3-fieldname,
END OF t_fields.
APPEND 'LIKP~WERKS' TO t_fields.
APPEND 'LIKP~LFDAT' TO t_fields.
APPEND 'LIKP~LFART' TO t_fields.
APPEND 'LIKP~VBELN' TO t_fields.
SELECT (t_fields)
INTO TABLE li_block1
FROM likp
INNER JOIN lips ON lipsvbeln = likpvbeln
WHERE likp~werks IN s_werks
SELECT (t_fields)
INTO TABLE li_block2
FROM vbfa
FOR ALL ENTRIES IN li_block1
WHERE vbfa~vbelv = li_block1-vbeln.
2011 Jun 01 1:20 PM
Hi,
Please try below code
TYPES: BEGIN OF ty_block1,
werks TYPE likp-werks,
lfdat TYPE likp-lfdat,
lfart TYPE likp-lfart,
vbeln TYPE likp-vbeln,
END OF ty_block1.
TYPES: BEGIN OF ty_block2,
vbeln TYPE likp-vbeln,
posnv type vbfa-posnv,
werks TYPE likp-werks,
lfdat TYPE likp-lfdat,
lfart TYPE likp-lfart,
END OF ty_block2.
tables:marc.
select-options s_werks for marc-werks.
DATA: li_block1 TYPE STANDARD TABLE OF ty_block1.
DATA: li_block2 TYPE STANDARD TABLE OF ty_block2.
data: wa_block1 type ty_block1,
wa_block2 type ty_block2.
SELECT likp~werks likp~lfdat likp~lfart likp~vbeln
INTO TABLE li_block1
FROM likp
INNER JOIN lips ON lips~vbeln = likp~vbeln
WHERE likp~werks IN s_werks.
if sy-subrc = 0.
select vbelv posnv
into table li_block2
from vbfa
for all entries in li_block1
where vbelv = li_block1-vbeln.
if sy-subrc = 0.
loop at li_block2 into wa_block2.
read table li_block1 into wa_block1
with key vbeln = wa_block2-vbeln.
if sy-subrc = 0.
wa_block2-werks = wa_block1-werks.
wa_block2-lfdat = wa_block1-lfdat.
wa_block2-lfart = wa_block1-lfart.
modify li_block2 from wa_block2.
endif.
clear: wa_block1, wa_block2.
endloop.
endif.
endif.
Regards
Dande
2011 Jun 01 2:34 PM
Hi Ignacio,
According to my opinion if U just create a copy of that internal table and DELETE the unwanted data based on ur conditions from the copied internal table, it will solve ur problem.
This will Improve ur Programs Performance rather than taking a Loop and transferring the Data to another internal Table.
2011 Jun 01 4:34 PM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |