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

read_text problem.......

Former Member
0 Likes
1,090

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

11 REPLIES 11
Read only

Former Member
0 Likes
1,049

how did u declare internal table 'tbl_lines'?

it should be with header line.

Regards,

Aparna Gaikwad

Read only

0 Likes
1,049

hi aparna,

ya declared as follow only......

data: begin of tbl_lines occurs 0.

include structure tline.

data: end of tbl_lines.

Read only

0 Likes
1,049

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

Read only

0 Likes
1,049

friends,

-


>loop at tbl_lines.

In debugging, tbl_lines here only it's reading single line..........

Read only

Former Member
0 Likes
1,049

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

Read only

Former Member
0 Likes
1,049

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

Read only

0 Likes
1,049

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.

Read only

0 Likes
1,049

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.

Read only

0 Likes
1,049

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

Read only

0 Likes
1,049

hi ilesh,

better to close this thread now......will open new thread for better understanding

Read only

Former Member
0 Likes
1,049

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.