‎2008 Aug 12 7:15 AM
hi friends,
I have following code......
data:wa_matnr like j_1iexcdtl-matnr.
data: l_name1 like thead-tdname.
data:p_num2 type string.
data:p_matnr type matnr.
data:p_vkorg type vkorg.
data:p_vtweg type vtweg.
read table in_tab with key 'J_1IEXCDTL-MATNR'.
move in_tab-value to wa_matnr.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = wa_matnr
importing
output = wa_matnr
.
select single matnr vkorg vtweg from mvke into (p_matnr,p_vkorg,p_vtweg) where matnr = wa_matnr.
concatenate p_matnr p_vkorg p_vtweg into l_name1.
call function 'READ_TEXT'
exporting
client = sy-mandt
id = '0001'
language = sy-langu
name = l_name1
object = 'MVKE'
tables
lines = tbl_lines
exceptions
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
others = 8.
.
if sy-subrc eq 0.
loop at tbl_lines.
write tbl_lines-tdline.
if tbl_lines-tdline ne space.
p_num2 = tbl_lines-tdline.
exit.
endif.
endloop.
endif.
refresh tbl_lines.
read table out_tab with key 'J_1IEXCDTL-MAKTX'.
move p_num2 to out_tab-value.
modify out_tab index sy-tabix.
I'm displaying sales text maintained in material master.
Problem is tbl_lines-tdline is reading only first line eventhough they have maintained continuous text....
How to get all the text
‎2008 Aug 12 7:23 AM
how did u declare internal table 'tbl_lines'?
it should be with header line.
Regards,
Aparna Gaikwad
‎2008 Aug 12 7:25 AM
hi aparna,
ya declared as follow only......
data: begin of tbl_lines occurs 0.
include structure tline.
data: end of tbl_lines.
‎2008 Aug 12 7:31 AM
hi,
In the loop instead of EXIT use CONTINUE.
loop at tbl_lines.
write tbl_lines-tdline.
if tbl_lines-tdline ne space.
p_num2 = tbl_lines-tdline.
CONTINUE "exit.
endif.
endloop.
endif.
OR
USE concatenate instead of write
DATA : V_TEXT TYPE STRING
loop at tbl_lines.
CONCATENATE V_TEXT tbl_lines-tdline into V_TEXT separated by space.
endloop.
Edited by: krishna prasad on Aug 12, 2008 8:32 AM
‎2008 Aug 12 7:35 AM
friends,
-
>loop at tbl_lines.
In debugging, tbl_lines here only it's reading single line..........
‎2008 Aug 12 7:27 AM
Hi,
Before you do this
loop at tbl_lines.
write tbl_lines-tdline.
if tbl_lines-tdline ne space.
p_num2 = tbl_lines-tdline.
exit.
endif.
endloop.
endif.
check count of lines in tbl_lines, in debugging mode.
As soon as you write first line, i think you are exiting the loop.
That may be the problem, that you see only one line in output.
Regards
Meenakshi
‎2008 Aug 12 7:37 AM
Hi Hosmath,
DATA:WA_MATNR LIKE J_1IEXCDTL-MATNR.
DATA: L_NAME1 LIKE THEAD-TDNAME.
DATA:P_NUM2 TYPE STRING.
DATA:P_MATNR TYPE MATNR.
DATA:P_VKORG TYPE VKORG.
DATA:P_VTWEG TYPE VTWEG.
READ TABLE IN_TAB WITH KEY 'J_1IEXCDTL-MATNR'.
MOVE IN_TAB-VALUE TO WA_MATNR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_MATNR
IMPORTING
OUTPUT = WA_MATNR.
SELECT SINGLE MATNR VKORG VTWEG FROM MVKE INTO (P_MATNR,P_VKORG,P_VTWEG) WHERE MATNR = WA_MATNR.
CONCATENATE P_MATNR P_VKORG P_VTWEG INTO L_NAME1.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = '0001'
LANGUAGE = SY-LANGU
NAME = L_NAME1
OBJECT = 'MVKE'
TABLES
LINES = TBL_LINES
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
.
IF SY-SUBRC EQ 0.
Commented EXIT statement...
*Remove below EXIT statement..due to this it exit from the loop after printing first line of TBL_LINES
LOOP AT TBL_LINES.
WRITE TBL_LINES-TDLINE.
IF TBL_LINES-TDLINE NE SPACE.
P_NUM2 = TBL_LINES-TDLINE.
* EXIT.
ENDIF.
ENDLOOP.
ENDIF.
REFRESH TBL_LINES.
READ TABLE OUT_TAB WITH KEY 'J_1IEXCDTL-MAKTX'.
MOVE P_NUM2 TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX SY-TABIX.Hope it will solve your problem..
Thanks & Regards
ilesh 24x7
‎2008 Aug 12 7:46 AM
no friend you didn't get me......
right after the function module read_text......
LOOP AT TBL_LINES.----->this TBL_LINES has taken only single line........whole text is not populated here only ....that's the problem.
‎2008 Aug 12 10:21 AM
Hi,
LOOP AT TBL_LINES.
WRITE TBL_LINES-TDLINE.
IF TBL_LINES-TDLINE NE SPACE.
P_NUM2 = TBL_LINES-TDLINE.
ENDIF.
ENDLOOP.
ENDIF.
REFRESH TBL_LINES.
READ TABLE OUT_TAB WITH KEY 'J_1IEXCDTL-MAKTX'.
MOVE P_NUM2 TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX SY-TABIX.
I removed the EXIT.
It is passing only last line to out_tab-value eventhough I got all the texts in TBL_LINES.
How to get all the lines to my out_tab-value.
‎2008 Aug 12 10:47 AM
Hi Hosmath,
I am not sure exactly wht u need but try below code it will help you out... For moving all the TDLINE of Table TBL_LINES u need to update the Table OUT_TAB withing the loop... Check out below code and modify according to ur exact need...
LOOP AT TBL_LINES.
WRITE TBL_LINES-TDLINE.
IF TBL_LINES-TDLINE NE SPACE.
P_NUM2 = TBL_LINES-TDLINE.
* Inserted below 3 line of code here
READ TABLE OUT_TAB WITH KEY 'J_1IEXCDTL-MAKTX'.
MOVE P_NUM2 TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX SY-TABIX.
ENDIF.
ENDLOOP.
REFRESH TBL_LINES.Hope it will solve your problem..
Thanks & Regards
ilesh 24x7
‎2008 Aug 12 11:09 AM
hi ilesh,
better to close this thread now......will open new thread for better understanding
‎2008 Aug 12 7:44 AM
Hi,
I have used READ_TEXT for DOC_ITEM.This is for F-02.
Here is an example.Hope this will be helpful to you.
REPORT zbank_voucher.
TABLES: bseg,bkpf,skat,spell.
TYPES: BEGIN OF i_bseg,
bukrs TYPE bseg-bukrs,
belnr TYPE bseg-belnr,
gjahr TYPE bseg-gjahr,
hkont TYPE bseg-hkont,
kunnr TYPE bseg-kunnr,
lifnr TYPE bseg-lifnr,
sgtxt TYPE bseg-sgtxt,
shkzg TYPE bseg-shkzg,
wrbtr TYPE bseg-wrbtr,
dmbtr TYPE bseg-dmbtr,
kostl TYPE bseg-kostl,
aufnr TYPE bseg-aufnr,
prctr TYPE bseg-prctr,
hbkid TYPE bseg-hbkid,
END OF i_bseg.
TYPES: BEGIN OF i_bkpf,
bukrs TYPE bkpf-bukrs,
belnr TYPE bkpf-belnr,
gjahr TYPE bkpf-gjahr,
budat TYPE bkpf-budat,
bldat TYPE bkpf-bldat,
blart TYPE bkpf-blart,
kursf TYPE bkpf-kursf,
waers TYPE bkpf-waers,
monat TYPE bkpf-monat,
END OF i_bkpf.
TYPES: BEGIN OF i_skat,
saknr TYPE skat-saknr,
txt50 TYPE skat-txt50,
END OF i_skat.
TYPES: BEGIN OF i_kna1,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
END OF i_kna1.
TYPES: BEGIN OF i_lfa1,
lifnr TYPE lfa1-lifnr,
name1 TYPE lfa1-name1,
END OF i_lfa1.
TYPES:BEGIN OF i_payr,
zbukr TYPE payr-zbukr,
hbkid TYPE payr-hbkid,
chect TYPE payr-chect,
lifnr TYPE payr-lifnr,
vblnr TYPE payr-vblnr,
gjahr TYPE payr-gjahr,
END OF i_payr.
DATA: BEGIN OF it_final OCCURS 10,
bukrs TYPE bseg-bukrs,
belnr TYPE bseg-belnr,
gjahr TYPE bseg-gjahr,
hkont TYPE bseg-hkont,
lifnr TYPE bseg-lifnr,
kunnr TYPE bseg-kunnr,
name1 TYPE kna1-name1,
txt50 TYPE skat-txt50,
budat TYPE bkpf-budat,
bldat TYPE bkpf-bldat,
blart TYPE bkpf-blart,
kursf TYPE bkpf-kursf,
shkzg TYPE bseg-shkzg,
debit TYPE bseg-wrbtr,
credit TYPE bseg-wrbtr,
ldebit TYPE bseg-dmbtr,
lcredit TYPE bseg-dmbtr,
kostl TYPE bseg-kostl,
sgtxt TYPE bseg-sgtxt,
aufnr TYPE bseg-aufnr,
prctr TYPE bseg-prctr,
hbkid TYPE bseg-hbkid,
waers TYPE bkpf-waers,
monat TYPE bkpf-monat,
zbukr TYPE payr-zbukr,
chect TYPE payr-chect,
vblnr TYPE payr-vblnr,
END OF it_final.
DATA: it_bseg TYPE TABLE OF i_bseg INITIAL SIZE 10,
wa_bseg TYPE i_bseg.
DATA: it_skat TYPE TABLE OF i_skat INITIAL SIZE 10,
wa_skat TYPE i_skat.
DATA: it_bkpf TYPE TABLE OF i_bkpf INITIAL SIZE 10,
wa_bkpf TYPE i_bkpf.
DATA: it_kna1 TYPE TABLE OF i_kna1 INITIAL SIZE 10,
wa_kna1 TYPE i_kna1.
DATA: it_lfa1 TYPE TABLE OF i_lfa1 INITIAL SIZE 10,
wa_lfa1 TYPE i_lfa1.
DATA: it_payr TYPE TABLE OF i_payr INITIAL SIZE 10,
wa_payr TYPE i_payr.
DATA: sdebit TYPE bseg-wrbtr,
scredit TYPE bseg-wrbtr,
ddebit TYPE bseg-dmbtr,
dcredit TYPE bseg-dmbtr,
word1(100) TYPE c,
word2(100) TYPE c,
num1(20) TYPE c,
word TYPE pc207-betrg,
text(20) TYPE c,
txtid(4) TYPE c,
a(10),
b(10),
var TYPE thead-tdname,
num(10),
fi(4) TYPE c,
count TYPE i.
DATA: BEGIN OF item OCCURS 1,
belnr TYPE bkpf-belnr,
blart TYPE bkpf-blart,
END OF item.
DATA: itab LIKE tline OCCURS 10 WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE tit1.
SELECTION-SCREEN SKIP.
PARAMETERS: docno TYPE bkpf-belnr,
code TYPE bkpf-bukrs,
year TYPE bkpf-gjahr,
dtype TYPE bkpf-blart.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK blk1.
INITIALIZATION.
GET PARAMETER ID 'BLN' FIELD num.
docno = num.
GET PARAMETER ID 'GJR' FIELD fi.
year = fi.
code = '1000'.
tit1 = 'SELECTION-CRITERIA'.
count = 0.
START-OF-SELECTION.
SELECT bukrs
belnr
gjahr
budat
bldat
blart
kursf
waers
monat
FROM bkpf
INTO TABLE it_bkpf
WHERE belnr = docno
AND bukrs = code
AND gjahr = year
AND blart = dtype.
LOOP AT it_bkpf INTO wa_bkpf.
a = wa_bkpf-blart.
ENDLOOP.
SELECT SINGLE ltext FROM t003t INTO text WHERE blart = a
AND spras = 'EN'.
IF sy-subrc EQ 0.
SELECT bukrs
belnr
gjahr
hkont
kunnr
lifnr
sgtxt
shkzg
wrbtr
dmbtr
kostl
aufnr
prctr
hbkid
FROM bseg
INTO TABLE it_bseg
FOR ALL ENTRIES IN it_bkpf
WHERE belnr = it_bkpf-belnr
AND bukrs = it_bkpf-bukrs
AND gjahr = it_bkpf-gjahr.
ELSE.
MESSAGE 'No Data Selected' TYPE 'I'.
EXIT.
ENDIF.
SELECT saknr
txt50
FROM skat
INTO TABLE it_skat
FOR ALL ENTRIES IN it_bseg
WHERE saknr = it_bseg-hkont
AND spras = 'EN'.
SELECT kunnr
name1
FROM kna1
INTO TABLE it_kna1
FOR ALL ENTRIES IN it_bseg
WHERE kunnr = it_bseg-kunnr.
SELECT lifnr
name1
FROM lfa1
INTO TABLE it_lfa1
FOR ALL ENTRIES IN it_bseg
WHERE lifnr = it_bseg-lifnr.
SELECT zbukr
hbkid
chect
lifnr
vblnr
gjahr
FROM payr
INTO TABLE it_payr
FOR ALL ENTRIES IN it_bseg
WHERE zbukr = it_bseg-bukrs
AND lifnr = it_bseg-lifnr
AND vblnr = it_bseg-belnr
AND gjahr = it_bseg-gjahr.
SELECT SINGLE tdid FROM stxl INTO txtid WHERE tdobject = 'DOC_ITEM'
AND tdspras = 'EN'.
CONCATENATE code docno year txtid+1(3) INTO var.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = txtid
language = sy-langu
name = var
object = 'DOC_ITEM'
ARCHIVE_HANDLE = 0
LOCAL_CAT = ' '
IMPORTING
HEADER =
TABLES
lines = itab[]
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
not_found = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT it_final.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'HEADER_TEXT'
function = 'SET'
type = 'TOP'
window = 'MAIN'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'CONTINUOUS_TEXT'
function = 'SET'
type = 'BODY'
window = 'MAIN'.
endloop.
Using this i got all the Continuos Text Data.
with Regards,
Sharmishta.