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 not from memory.

Former Member
0 Likes
1,794

Hi,

I’m using the function READ_TEXT to get the item note text. I call this function at USEREXIT_SAVE_DOCUMENT_PREPARE method of MV45AFZZ user exit. As a result, I get the item note text entered by the user (not the stored into to STXL). My question is: how can I retrieve the text stored at STXL (not from memory)?

Thanks in advance,

Ricard.

3 REPLIES 3
Read only

Former Member
0 Likes
869

See this sample code

ABAP READ_TEXT functions to read the SAP Long Text

You have to used the READ_TEXT functions to read the SAP long text. e.g. Sales Order, Purchase Order Item text etc.

To check your long text header, go into the long text. Click Goto -> Header

Example of READ_TEXT functions reading tables PBIM - Independent requirements for material.

Example of READ_TEXT functions reading tables PBIM - Independent requirements for material.

REPORT ZTEXT .

TABLES: PBIM.

  • stxh, stxl, stxb - trans tables for text

  • ttxit - text on text-ids

  • ttxot - Short texts on text objects

  • Transaction MD63

SELECT-OPTIONS: S_MATNR FOR PBIM-MATNR,

S_WERKS FOR PBIM-WERKS.

DATA: BEGIN OF HTEXT.

INCLUDE STRUCTURE THEAD.

DATA: END OF HTEXT.

DATA: BEGIN OF LTEXT OCCURS 50.

INCLUDE STRUCTURE TLINE.

DATA: END OF LTEXT.

DATA: BEGIN OF DTEXT OCCURS 50.

DATA: MATNR LIKE PBIM-MATNR.

INCLUDE STRUCTURE TLINE.

DATA: END OF DTEXT.

DATA: TNAME LIKE THEAD-TDNAME.

SELECT * FROM PBIM WHERE WERKS IN S_WERKS.

MOVE PBIM-BDZEI TO TNAME.

CALL FUNCTION <b>'READ_TEXT'</b>

EXPORTING

  • CLIENT = SY-MANDT

ID = 'PB'

LANGUAGE = 'E'

NAME = TNAME

OBJECT = 'PBPT'

  • ARCHIVE_HANDLE = 0

IMPORTING

HEADER = HTEXT

TABLES

LINES = LTEXT

EXCEPTIONS

ID = 1

LANGUAGE = 2

NAME = 3

NOT_FOUND = 4

OBJECT = 5

REFERENCE_CHECK = 6

WRONG_ACCESS_TO_ARCHIVE = 7

OTHERS = 8.

LOOP AT LTEXT.

IF LTEXT-TDLINE NE ''.

MOVE LTEXT-TDLINE TO DTEXT-TDLINE.

MOVE PBIM-MATNR TO DTEXT-MATNR.

APPEND DTEXT.

ENDIF.

ENDLOOP.

ENDSELECT.

LOOP AT DTEXT.

WRITE:/ DTEXT-MATNR, DTEXT-TDLINE.

ENDLOOP.

http://www.sapdevelopment.co.uk/sapscript/sapscript_texts.htm

Also

*Internal table to store standard texts

DATA: IT_TEXTS like T_LINE occurs o with header line.

CALL FUNCTION 'READ_TEXT'

EXPORTING

  • CLIENT = SY-MANDT

id = "Text ID

language = "Laguage

name = "Text name

object = "text object

  • ARCHIVE_HANDLE = 0

  • IMPORTING

  • HEADER =

tables

lines = IT_TEXTS "Internal table

  • 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.

Hope this helps

Read only

Former Member
0 Likes
869

Hi Karthikeyan,

Thanks for your answer, but my problem is quite different.

I retrieve the text using READ_TEXT, but the stored at memory (not from stxl). For example: if I modify an item note (text tab) of a material from a sales order (tx-VA02) then the READ_TEXT function (implemented at the user exit) returns the new value (and it has not been stored yet). My problem is, how can I get the old text value (the one that is still stored at STXL)?.

Thanks again,

Ricard.

Read only

Former Member
0 Likes
869

Hello Karthikeyan,

I have found the solution. To get the texts entered by the user (and still uncommitted) I use the READ_TEXT function. To get the texts from the database:

DATA:

BEGIN OF STXL_ID,

TDOBJECT LIKE STXL-TDOBJECT,

TDNAME LIKE STXL-TDNAME,

TDID LIKE STXL-TDID,

TDSPRAS LIKE STXL-TDSPRAS,

END OF STXL_ID.

….

…. Fill stxl_id fields with the same values used in READ_TEXT function

import tline to lines_bd

from database stxl(tx)

client SY-MANDT

id stxl_id

IGNORING CONVERSION ERRORS.

Finally, I have implemented this code in the USEREXIT_SAVE_DOCUMENT method of MV45AFZZ user exit (presentation behaviour, nothing related with this issue).

Thanks you for your help,

Ricard.