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

How to use 'READ_TEXT'

Former Member
0 Likes
3,907

How can i find OBJECT and other parameters?

How can i find OBJECT and other parameters?

11 REPLIES 11
Read only

Former Member
0 Likes
2,892

Hi,

If you know the object name you can check for the name in the table THEAD . I am not very clear with your quoestion . Can you be more precise ?

Regards,

Varun .

Read only

former_member186741
Active Contributor
0 Likes
2,892

a good way to find this out is to set a break-point in read_text and then use a transaction which uses the fm to read text. For example ME23n or va03 OR VL03N.

Read only

RichHeilman
Developer Advocate
Developer Advocate
2,892

You can see all of the text objects and ids in transation SE75. If you don't know what the object/id is for your text, here is a tip. Create your text via the normal transaction, then go to se16, for table STXH, enter your user name for "Created By" and today's date for "Created on" and execute, the text header which you just created should be selected. Now you can see the object, the id, and how the NAME field is built. This is usually the business object, like material number, or sales document number, or a concatenation of more than one value, like maybe material number and plant.

Regards,

Rich Heilman

Read only

aris_hidalgo
Contributor
0 Likes
2,892

Hi,

Here is an example. Suppose I need to get the long text from transaction FB03(Display Document) so I enter the document number and the company code and then I click on the 'FIRST ITEM' button. Now I click on the 'LONG TEXT' button and I click on its editor. Now to see what parameters are needed go to 'GOTO' then click 'HEADER'. Now you can see the needed parameters under the field 'text name'. For example, mine is GLOB15000000982001001. So that will be company code(bukrs), accounting document number(belnr), fiscal year(gjahr) and line item(buzei). So that is the needed parameters to get the long text. Below is an actual example on how to use a long text:

REPORT zfr_aging_of_deposits

NO STANDARD PAGE HEADING

LINE-SIZE 0

LINE-COUNT 0

MESSAGE-ID zz.

TYPE-POOLS: slis.

----


  • Data dictionary tables *

----


TABLES: bsik,

bkpf,

lfa1,

t001.

----


  • Structures *

----


TYPES: BEGIN OF t_final,

bukrs TYPE bsik-bukrs, "Company Code

lifnr TYPE bsik-lifnr, "Account number of vendor or creditor

hkont TYPE bsik-hkont, "General ledger account

belnr TYPE bsik-belnr, "Accounting document number

gjahr TYPE bsik-gjahr, "Fiscal year

shkzg TYPE bsik-shkzg, "Debit/credit indicator

dmbtr TYPE bsik-dmbtr, "Amount in local currency

sgtxt TYPE bsik-sgtxt, "Item Text

buzei TYPE bsik-buzei, "Number of Line Item

budat TYPE bkpf-budat, "Posting date in the document

bldat TYPE bkpf-bldat, "Document date in document

xblnr TYPE bkpf-xblnr, "Reference document number

bktxt TYPE bkpf-bktxt, "Document header text

name1 TYPE lfa1-name1, "Vendor name

s_dat(10) TYPE c, "Start date(from long text)

e_dat(10) TYPE c, "End date(from long text)

amount1 TYPE bsik-dmbtr, "If 30 days and below

amount2 TYPE bsik-dmbtr, "If > 30 and < 60 days

amount3 TYPE bsik-dmbtr, "If > 60 and < 90 days

amount4 TYPE bsik-dmbtr, "If > 90 and < 120 days

amount5 TYPE bsik-dmbtr, "If > 120 and < 180 days

amount6 TYPE bsik-dmbtr, "If > 180 days

END OF t_final.

----


  • Internal tables *

----


DATA: it_final TYPE STANDARD TABLE OF t_final,

it_lines TYPE STANDARD TABLE OF tline WITH HEADER LINE,

it_thead TYPE STANDARD TABLE OF thead WITH HEADER LINE.

----


  • Data declarations *

----


*ALV Declarations

DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,

g_repid LIKE sy-repid,

gs_layout TYPE slis_layout_alv,

gt_list_top_of_page TYPE slis_t_listheader,

gt_events TYPE slis_t_event WITH HEADER LINE,

gt_print TYPE slis_print_alv.

CONSTANTS: gc_top TYPE slis_formname VALUE 'TOP_OF_PAGE',

gc_topsum TYPE slis_formname VALUE 'TOP_OF_LIST'.

----


  • Initialization *

----


INITIALIZATION.

g_repid = sy-repid.

----


  • Selection screen *

----


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

PARAMETERS: p_bukrs(4) TYPE c OBLIGATORY,

p_budat TYPE bsik-budat OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

*at selection-screen on p_bukrs

AT SELECTION-SCREEN ON p_bukrs.

IF p_bukrs <> 'GLOB' AND

p_bukrs <> 'INOV' AND

p_bukrs <> 'GXCH'.

MESSAGE e008 WITH 'Invalid Company Code!'.

ENDIF.

*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_bukrs

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_bukrs.

TYPES: BEGIN OF t_search_help,

bukrs LIKE t001-bukrs,

butxt LIKE t001-butxt,

END OF t_search_help.

DATA: it_search_help TYPE STANDARD TABLE OF t_search_help

WITH HEADER LINE.

  • get only the valid company code from T001

SELECT bukrs butxt FROM t001

INTO TABLE it_search_help

WHERE bukrs IN ('GLOB', 'GXCH', 'INOV').

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

retfield = 'BUKRS'

  • PVALKEY = ' '

dynpprog = g_repid

dynpnr = sy-dynnr

dynprofield = 'P_BUKRS'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

value_org = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

TABLES

value_tab = it_search_help

  • FIELD_TAB =

  • RETURN_TAB =

  • DYNPFLD_MAPPING =

  • EXCEPTIONS

  • PARAMETER_ERROR = 1

  • NO_VALUES_FOUND = 2

  • OTHERS = 3

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

----


  • Start of selection *

----


START-OF-SELECTION.

PERFORM get_data.

CHECK NOT it_final[] IS INITIAL.

PERFORM combine_data.

----


  • End of selection *

----


END-OF-SELECTION.

IF it_final[] IS INITIAL.

MESSAGE i010.

ELSE.

PERFORM display_results.

ENDIF.

----


  • FORM get_data *

----


  • ........ *

----


FORM get_data.

DATA: lv_hkont TYPE bsik-hkont VALUE '190100'.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = '190100'

IMPORTING

output = lv_hkont.

  • get records from BSIK

SELECT bukrs lifnr hkont belnr gjahr shkzg dmbtr sgtxt buzei

FROM bsik

INTO TABLE it_final

WHERE bukrs = p_bukrs

AND budat < p_budat

AND hkont = lv_hkont.

ENDFORM.

----


  • FORM combine_data *

----


  • ........ *

----


FORM combine_data.

DATA: lv_age_of_rec TYPE p.

FIELD-SYMBOLS: <fs_final> LIKE LINE OF it_final.

LOOP AT it_final ASSIGNING <fs_final>.

  • get records from BKPF

SELECT SINGLE bukrs belnr gjahr budat bldat xblnr bktxt FROM bkpf

INTO (bkpf-bukrs, bkpf-belnr, bkpf-gjahr, <fs_final>-budat,

<fs_final>-bldat, <fs_final>-xblnr, <fs_final>-bktxt)

WHERE bukrs = <fs_final>-bukrs

AND belnr = <fs_final>-belnr

AND gjahr = <fs_final>-gjahr.

  • if <fs_final>-shkzg = 'H', multiply dmbtr(amount in local currency)

  • by negative 1

IF <fs_final>-shkzg = 'H'.

<fs_final>-dmbtr = <fs_final>-dmbtr * -1.

ENDIF.

  • combine company code(bukrs), accounting document number(belnr),

  • fiscal year(gjahr) and line item(buzei) to get long text.

CONCATENATE: <fs_final>-bukrs <fs_final>-belnr

<fs_final>-gjahr <fs_final>-buzei

INTO it_thead-tdname.

CALL FUNCTION 'READ_TEXT'

EXPORTING

client = sy-mandt

id = '0001'

language = sy-langu

name = it_thead-tdname

object = 'DOC_ITEM'

  • ARCHIVE_HANDLE = 0

  • LOCAL_CAT = ' '

  • IMPORTING

  • HEADER =

TABLES

lines = it_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 <> 0.

  • MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

  • WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

  • ENDIF.

  • if successful, split long text into start and end date

IF sy-subrc = 0.

READ TABLE it_lines TRANSPORTING tdline.

IF sy-subrc = 0.

SPLIT it_lines-tdline AT '-' INTO

<fs_final>-s_dat <fs_final>-e_dat.

ENDIF.

ENDIF.

  • get vendor name from LFA1

SELECT SINGLE name1 FROM lfa1

INTO <fs_final>-name1

WHERE lifnr = <fs_final>-lifnr.

lv_age_of_rec = p_budat - <fs_final>-budat.

  • condition for age of deposits

IF lv_age_of_rec <= 30.

<fs_final>-amount1 = <fs_final>-dmbtr.

ELSEIF lv_age_of_rec > 30 AND lv_age_of_rec <= 60.

<fs_final>-amount2 = <fs_final>-dmbtr.

ELSEIF lv_age_of_rec > 60 AND lv_age_of_rec <= 90.

<fs_final>-amount3 = <fs_final>-dmbtr.

ELSEIF lv_age_of_rec > 90 AND lv_age_of_rec <= 120.

<fs_final>-amount4 = <fs_final>-dmbtr.

ELSEIF lv_age_of_rec > 120 AND lv_age_of_rec <= 180.

<fs_final>-amount5 = <fs_final>-dmbtr.

ELSEIF lv_age_of_rec > 180.

<fs_final>-amount6 = <fs_final>-dmbtr.

ENDIF.

CLEAR: bkpf, it_lines-tdline, lv_age_of_rec.

ENDLOOP.

ENDFORM.

----


  • FORM display_results *

----


  • ........ *

----


FORM display_results.

SORT it_final BY lifnr budat bldat.

PERFORM f_build_layout USING gs_layout.

PERFORM f_init_fieldcat USING gt_fieldcat[].

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = g_repid

i_callback_top_of_page = 'TOP_OF_PAGE'

is_layout = gs_layout

it_fieldcat = gt_fieldcat[]

i_save = 'X'

TABLES

t_outtab = it_final[]

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " DISPLAY_ALV

----


  • FORM top_of_page *

----


  • ........ *

----


FORM top_of_page.

*ALV header declarations

DATA: t_header TYPE slis_t_listheader,

wa_header TYPE slis_listheader,

t_line LIKE wa_header-info,

lv_header TYPE string,

lv_date(10),

lv_time(10),

lv_user TYPE sy-uname,

lv_time_n_date(30).

SELECT SINGLE butxt FROM t001

INTO t001-butxt

WHERE bukrs = p_bukrs.

*Company code

CLEAR lv_header.

CONCATENATE: 'Company:' t001-butxt INTO lv_header

SEPARATED BY space.

wa_header-typ = 'H'.

wa_header-info = lv_header.

APPEND wa_header TO t_header.

CLEAR wa_header.

*Title of the report

CLEAR lv_header.

CONCATENATE: 'Report Title:' sy-title INTO lv_header

SEPARATED BY space.

wa_header-typ = 'A'.

wa_header-info = lv_header.

APPEND wa_header TO t_header.

CLEAR wa_header.

*Date and time

WRITE: sy-datum TO lv_date MM/DD/YYYY,

sy-uzeit TO lv_time USING EDIT MASK '__:__:__'.

CONCATENATE: 'Generated on:' lv_date lv_time

INTO lv_time_n_date SEPARATED BY space.

wa_header-typ = 'A'.

wa_header-info = lv_time_n_date.

APPEND wa_header TO t_header.

CLEAR wa_header.

*Generated by

CLEAR lv_header.

MOVE sy-uname TO lv_user.

CONCATENATE: 'Generated by:' lv_user INTO lv_header

SEPARATED BY space.

wa_header-typ = 'A'.

wa_header-info = lv_header.

APPEND wa_header TO t_header.

CLEAR wa_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = t_header.

ENDFORM. " TOP_OF_PAGE

----


  • FORM f_build_layout *

----


  • ........ *

----


  • --> %LAYOUT *

----


FORM f_build_layout USING %layout TYPE slis_layout_alv.

%layout-zebra = 'X'.

%layout-colwidth_optimize = 'X'.

ENDFORM. " F_BUILD_LAYOUT

----


  • FORM f_init_fieldcat *

----


  • ........ *

----


  • --> %FIELDCAT *

----


FORM f_init_fieldcat USING %fieldcat TYPE slis_t_fieldcat_alv.

DATA: lc_fieldcat TYPE slis_fieldcat_alv.

CLEAR lc_fieldcat.

DEFINE m_field.

add 1 to lc_fieldcat-col_pos.

lc_fieldcat-fieldname = &1.

lc_fieldcat-outputlen = &2.

lc_fieldcat-seltext_l = &3.

lc_fieldcat-do_sum = &4.

lc_fieldcat-inttype = &5.

lc_fieldcat-hotspot = &6.

lc_fieldcat-fix_column = &7.

lc_fieldcat-ddictxt = 'L'.

lc_fieldcat-no_zero = 'X'.

append lc_fieldcat to %fieldcat.

END-OF-DEFINITION.

m_field 'BELNR' '10' 'Doc No.' '' '' '' 'X'.

m_field 'GJAHR' '4' 'Fiscal Year' '' '' '' 'X'.

m_field 'BLDAT' '8' 'Doc date' '' '' '' 'X'.

m_field 'BUDAT' '8' 'Posting Date' '' '' '' 'X'.

m_field 'LIFNR' '10' 'Vendor Code' '' '' '' 'X'.

m_field 'NAME1' '35' 'Vendor Name' '' '' '' 'X'.

m_field 'XBLNR' '16' 'Reference' '' '' '' ''.

m_field 'BKTXT' '25' 'Header Text' '' '' '' ''.

m_field 'SGTXT' '50' 'Line Item Text' '' '' '' ''.

m_field 'S_DAT' '10' 'Start Date' '' '' '' ''.

m_field 'E_DAT' '10' 'End Date' '' '' '' ''.

m_field 'DMBTR' '13' 'Amount in PHP' 'X' '' '' ''.

m_field 'AMOUNT1' '13' '30 days and below' 'X' '' '' ''.

m_field 'AMOUNT2' '13' 'If > 30 but <= 60 days' 'X' '' '' ''.

m_field 'AMOUNT3' '13' 'If > 60 but <= 90 days' 'X' '' '' ''.

m_field 'AMOUNT4' '13' 'If > 90 but <= 120 days' 'X' '' '' ''.

m_field 'AMOUNT5' '13' 'If > 120 but <= 180 days' 'X' '' '' ''.

m_field 'AMOUNT6' '13' 'Over 180 days' 'X' '' '' ''.

ENDFORM. " f_init_fieldcat

Hope this helps...

P.S. Please award points for useful answers.

Read only

Former Member
0 Likes
2,892

Thank you very much,viraylab

can you show it by 'VL03N'!?

Read only

0 Likes
2,892

Hi Amao,

I belived I have done the read_text in the past. I think you need to concatenate its VBELN AND POSNR. You can also go to 'GOTO', 'HEADER' and then 'TEXT'. Check out the code below:

LOOP AT order_details.

CONCATENATE order_details-vbeln order_details-posnr

INTO ls_thead-tdname.

*Function to read text related to item.

REFRESH : lt_lines.

CALL FUNCTION 'READ_TEXT'

EXPORTING

id = '0002'

language = sy-langu

name = ls_thead-tdname

object = 'VBBP'

TABLES

lines = lt_lines

EXCEPTIONS

id = 1

language = 2

name = 3

not_found = 4.

IF sy-subrc = 0.

READ TABLE lt_lines INDEX 2 TRANSPORTING tdline.

IF sy-subrc = 0.

order_details-ls_lines2 = lt_lines-tdline.

ENDIF.

READ TABLE lt_lines INDEX 3 TRANSPORTING tdline.

IF sy-subrc = 0.

order_details-ls_lines3 = lt_lines-tdline.

ENDIF.

READ TABLE lt_lines INDEX 4 TRANSPORTING tdline.

IF sy-subrc = 0.

order_details-ls_lines4 = lt_lines-tdline.

ENDIF.

ELSE.

SELECT SINGLE kunnr INTO vbpa-kunnr FROM vbpa

WHERE vbeln = order_details-vbeln AND

posnr = order_details-posnr AND

parvw = 'WE'.

IF sy-subrc = 0.

  • READ TABLE it_vbpa INDEX 1.

SELECT SINGLE name1 telf1 stras

INTO (kna1-name1,kna1-telf1,kna1-stras)

FROM kna1

WHERE kunnr = vbpa-kunnr.

MOVE: kna1-stras TO order_details-ls_lines2,

kna1-name1 TO order_details-ls_lines3,

kna1-telf1 TO order_details-ls_lines4.

ELSE.

MOVE: zstras TO order_details-ls_lines2,

zname1 TO order_details-ls_lines3,

ztelf1 TO order_details-ls_lines4.

ENDIF.

ENDIF.

MODIFY order_details.

ENDLOOP.

Hope this helps...

P.S. Please award points for useful answers.

Read only

0 Likes
2,892

vl03n

1. input dlv no

2. click menu "goto" -> header -> text

3. click button "call log" at bottom, the button looks like a paper

Read only

Former Member
0 Likes
2,892

yes,but i can only find:

OBJECT 'VBBK'

'KNVV'

'KNA1'

How to find others? if it isn't exist, what OBJECT shoud i choose?

Read only

0 Likes
2,892

SET A BREAK-POINT IN READ_TEXT. GOTO VL03N. CLICK ON THE MAGNIFYING GLASS THEN GOTO TEXTS. THE BREAKP-PINT SHOULD POPUP AND YOU WILL SEE WHAT 'OBJECT' IS.

Read only

Former Member
0 Likes
2,892

My program:

<i>FUNCTION ZOPC_CRM_SO_ALTERATION.

*"----


""Local interface:

*" IMPORTING

*" VALUE(I_DATE_BEGIN) LIKE JCDS-UDATE

*" VALUE(I_DATE_END) LIKE JCDS-UDATE

*" TABLES

*" T_ORDER_HEADER STRUCTURE ZOPC_SO_ORDER_HEADER OPTIONAL

*" T_ORDER_ITEM STRUCTURE ZOPC_SO_ORDER_ITEM OPTIONAL

*" T_DELIVERY STRUCTURE ZOPC_SO_DELIVERY OPTIONAL

*"----


RANGES: r_date FOR jcds-udate.

r_date-sign = 'I'.

r_date-option = 'BT'.

r_date-low = i_date_begin.

r_date-high = i_date_end.

APPEND r_date.

DATA: lv_kwmeng LIKE ekpo-menge,

lv_lfimg LIKE ekpo-menge,

lv_name LIKE thead-tdname,

lv_lines LIKE sy-tabix,

t_tline LIKE tline OCCURS 0 WITH HEADER LINE,

it_jcds LIKE jcds OCCURS 0.

DATA: BEGIN OF it_vbak_vbap OCCURS 0,

vbeln LIKE vbak-vbeln,

auart LIKE vbak-auart,

vtweg LIKE vbak-vtweg,

augru LIKE vbak-augru,

audat LIKE vbak-audat,

kunnr LIKE vbak-kunnr,

waerk LIKE vbak-waerk,

netwr LIKE vbak-netwr,

vkorg LIKE vbak-vkorg,

spart LIKE vbak-spart,

vkgrp LIKE vbak-vkgrp,

vkbur LIKE vbak-vkbur,

knumv LIKE vbak-knumv,

posnr LIKE vbap-posnr,

werks LIKE vbap-werks,

abgru LIKE vbap-abgru,

matnr LIKE vbap-matnr,

arktx LIKE vbap-arktx,

kwmeng LIKE ekpo-menge,

vrkme LIKE vbap-vrkme,

  • etdat LIKE vbap-etdat,

kondm LIKE vbap-kondm,

charg LIKE vbap-charg,

END OF it_vbak_vbap.

DATA: BEGIN OF it_konv OCCURS 0,

knumv LIKE konv-knumv,

kposn LIKE konv-kposn,

kschl LIKE konv-kschl,

kbetr LIKE konv-kbetr,

waers LIKE konv-waers,

kkurs LIKE konv-kkurs,

END OF it_konv.

DATA: BEGIN OF it_zstate OCCURS 0,

vbeln LIKE zstate-vbeln,

state LIKE zstate-state,

END OF it_zstate.

DATA: BEGIN OF it_vbkd OCCURS 0,

vbeln LIKE vbkd-vbeln,

posnr LIKE vbkd-posnr,

zterm LIKE vbkd-zterm,

inco1 LIKE vbkd-inco1,

inco2 LIKE vbkd-inco2,

END OF it_vbkd.

DATA: BEGIN OF it_vbpa OCCURS 0,

vbeln LIKE vbpa-vbeln,

parvw LIKE vbpa-parvw,

kunnr LIKE vbpa-kunnr,

END OF it_vbpa.

DATA: BEGIN OF it_knkk OCCURS 0,

kunnr LIKE knkk-kunnr,

kkber LIKE knkk-kkber,

klimk LIKE knkk-klimk,

END OF it_knkk.

DATA: BEGIN OF it_vbfa OCCURS 0,

vbelv LIKE vbfa-vbelv,

posnv LIKE vbfa-posnv,

vbeln LIKE vbfa-vbeln,

posnn LIKE vbfa-posnn,

END OF it_vbfa.

DATA: BEGIN OF it_likp_lips OCCURS 0,

vbeln LIKE likp-vbeln,

wadat LIKE likp-wadat,

wadat_ist LIKE likp-wadat_ist,

posnr LIKE lips-posnr,

matnr LIKE lips-matnr,

lfimg LIKE ekpo-menge,

charg LIKE lips-charg,

vrkme LIKE lips-vrkme,

werks LIKE lips-werks,

vgbel LIKE lips-vgbel,

vgpos LIKE lips-vgpos,

END OF it_likp_lips.

DATA: BEGIN OF it_lips_collect OCCURS 0,

lfimg LIKE lips-lfimg,

vrkme LIKE lips-vrkme,

vgbel LIKE lips-vgbel,

vgpos LIKE lips-vgpos,

END OF it_lips_collect.

DATA: BEGIN OF it_zlips OCCURS 0,

vbeln LIKE zlips-vbeln,

posnr LIKE zlips-posnr,

lfimg LIKE zlips-lfimg,

vrkme LIKE zlips-vrkme,

END OF it_zlips.

DATA: BEGIN OF it_makt OCCURS 0,

matnr LIKE makt-matnr,

maktx LIKE makt-maktx,

END OF it_makt.

SELECT *

INTO CORRESPONDING FIELDS OF TABLE it_jcds

FROM jcds AS a

WHERE a~udate IN r_date

and ( STAT <> 'E0001' OR STAT NOT LIKE 'I%' ).

  • &#21462;&#35746;&#21333;&#20449;&#24687;

SELECT a~vbeln

a~auart

a~vtweg

a~augru

a~audat

a~kunnr

a~waerk

a~netwr

a~vkorg

a~spart

a~vkgrp

a~vkbur

a~knumv

b~posnr

b~werks

b~abgru

b~matnr

b~arktx

b~kwmeng

b~vrkme

  • b~etdat

b~kondm

b~charg

INTO CORRESPONDING FIELDS OF TABLE it_vbak_vbap

FROM vbak AS a INNER JOIN vbap AS b

ON avbeln = bvbeln

FOR ALL ENTRIES IN it_jcds

WHERE a~objnr = it_jcds-objnr.

CHECK NOT it_vbak_vbap[] IS INITIAL.

  • &#21333;&#20215;&#21644;&#29260;&#20215;

SELECT a~knumv

a~kposn

a~kschl

a~kbetr

a~waers

a~kkurs

INTO CORRESPONDING FIELDS OF TABLE it_konv

FROM konv AS a

FOR ALL ENTRIES IN it_vbak_vbap

WHERE a~knumv = it_vbak_vbap-knumv

AND a~kposn = it_vbak_vbap-posnr

AND a~kschl IN ('PR00','PR01').

  • &#31614;&#26680;&#29366;&#24577;

SELECT a~vbeln

a~state

INTO CORRESPONDING FIELDS OF TABLE it_zstate

FROM zstate AS a

FOR ALL ENTRIES IN it_vbak_vbap

WHERE a~vbeln = it_vbak_vbap-vbeln.

  • &#38144;&#21806;&#20973;&#35777;&#19994;&#21153;&#25968;&#25454;

SELECT a~vbeln

a~posnr

a~zterm

a~inco1

a~inco2

INTO CORRESPONDING FIELDS OF TABLE it_vbkd

FROM vbkd AS a

FOR ALL ENTRIES IN it_vbak_vbap

WHERE a~vbeln = it_vbak_vbap-vbeln

AND a~posnr = it_vbak_vbap-posnr.

  • &#21512;&#20316;&#20249;&#20276;&#25968;&#25454;

SELECT a~vbeln

a~parvw

a~kunnr

INTO CORRESPONDING FIELDS OF TABLE it_vbpa

FROM vbpa AS a

FOR ALL ENTRIES IN it_vbak_vbap

WHERE a~vbeln = it_vbak_vbap-vbeln

AND a~posnr = it_vbak_vbap-posnr

AND a~parvw IN ('AG','Z2','Z3').

  • &#23458;&#25143;&#20449;&#29992;&#39069;&#24230;

SELECT a~kunnr

a~kkber

a~klimk

INTO CORRESPONDING FIELDS OF TABLE it_knkk

FROM knkk AS a

FOR ALL ENTRIES IN it_vbak_vbap

WHERE a~kunnr = it_vbak_vbap-kunnr.

  • &#38144;&#21806;&#20973;&#35777;&#27969;

SELECT a~vbelv

a~posnv

a~vbeln

a~posnn

INTO CORRESPONDING FIELDS OF TABLE it_vbfa

FROM vbfa AS a

FOR ALL ENTRIES IN it_vbak_vbap

WHERE a~vbelv = it_vbak_vbap-vbeln

AND a~posnv = it_vbak_vbap-posnr

AND A~vbtyp_n EQ 'J'.

  • &#21462;&#21457;&#36135;&#20449;&#24687;

SELECT a~vbeln

a~wadat

a~wadat_ist

b~posnr

b~matnr

b~lfimg

b~charg

b~vrkme

b~werks

b~vgbel

b~vgpos

INTO CORRESPONDING FIELDS OF TABLE it_likp_lips

FROM likp AS a INNER JOIN lips AS b

ON avbeln = bvbeln

FOR ALL ENTRIES IN it_vbfa

WHERE a~vbeln = it_vbfa-vbeln

AND b~posnr = it_vbfa-posnn.

  • &#21462;&#39044;&#21457;&#25968;&#37327;&#65288;ZLIPS-LFIMG&#65289;

SELECT a~vbeln

a~posnr

a~lfimg

a~vrkme

INTO CORRESPONDING FIELDS OF TABLE it_zlips

FROM zlips AS a

FOR ALL ENTRIES IN it_likp_lips

WHERE a~vbeln = it_likp_lips-vbeln

AND a~posnr = it_likp_lips-posnr.

  • &#21462;&#29289;&#26009;&#25551;&#36848;

SELECT a~matnr

a~maktx

INTO CORRESPONDING FIELDS OF TABLE it_makt

FROM makt AS a

FOR ALL ENTRIES IN it_likp_lips

WHERE a~matnr = it_likp_lips-matnr.

LOOP AT it_likp_lips.

  • &#21457;&#36135;&#26126;&#32454;&#34920;

t_delivery-vbeln = it_likp_lips-vbeln.

t_delivery-posnr = it_likp_lips-posnr.

t_delivery-matnr = it_likp_lips-matnr.

t_delivery-wadat = it_likp_lips-wadat.

t_delivery-wadat_ist = it_likp_lips-wadat_ist.

t_delivery-lfimg2 = it_likp_lips-lfimg.

t_delivery-charg = it_likp_lips-charg.

t_delivery-vrkme2 = it_likp_lips-vrkme.

t_delivery-werks = it_likp_lips-werks.

t_delivery-vgbel = it_likp_lips-vgbel.

t_delivery-vgpos = it_likp_lips-vgpos.

READ TABLE it_makt WITH KEY matnr = it_likp_lips-matnr.

IF sy-subrc EQ 0.

t_delivery-maktx = it_makt-maktx.

ENDIF.

READ TABLE it_zlips WITH KEY vbeln = it_likp_lips-vbeln

posnr = it_likp_lips-posnr.

IF sy-subrc EQ 0.

t_delivery-lfimg1 = it_zlips-lfimg.

t_delivery-vrkme1 = it_zlips-vrkme.

ENDIF.

CONCATENATE t_delivery-vbeln t_delivery-posnr INTO lv_name.

CALL FUNCTION 'READ_TEXT'

EXPORTING

client = SY-MANDT

id = '0001'

language = '1'

name = lv_name

object = 'VBBK'

TABLES

lines = t_tline

EXCEPTIONS

not_found = 4.

DESCRIBE TABLE t_tline LINES lv_lines.

IF lv_lines > 0.

READ TABLE t_tline INDEX 1.

t_delivery-text1 = t_tline-tdline.

ENDIF.

CLEAR t_tline.

CALL FUNCTION 'READ_TEXT'

EXPORTING

client = SY-MANDT

id = 'Z001'

language = '1'

name = lv_name

object = 'VBBK'

TABLES

lines = t_tline

EXCEPTIONS

not_found = 4.

DESCRIBE TABLE t_tline LINES lv_lines.

IF lv_lines > 0.

READ TABLE t_tline INDEX 1.

t_delivery-text2 = t_tline-tdline.

ENDIF.

CLEAR t_tline.

CALL FUNCTION 'READ_TEXT'

EXPORTING

client = SY-MANDT

id = 'Z002'

language = '1'

name = lv_name

object = 'VBBK'

TABLES

lines = t_tline

EXCEPTIONS

not_found = 4.

DESCRIBE TABLE t_tline LINES lv_lines.

IF lv_lines > 0.

READ TABLE t_tline INDEX 1.

t_delivery-text3 = t_tline-tdline.

ENDIF.

CLEAR t_tline.

CALL FUNCTION 'READ_TEXT'

EXPORTING

client = SY-MANDT

id = 'Z003'

language = '1'

name = lv_name

object = 'VBBK'

TABLES

lines = t_tline

EXCEPTIONS

not_found = 4.

DESCRIBE TABLE t_tline LINES lv_lines.

IF lv_lines > 0.

READ TABLE t_tline INDEX 1.

t_delivery-text4 = t_tline-tdline.

ENDIF.

CLEAR t_tline.

CALL FUNCTION 'READ_TEXT'

EXPORTING

client = SY-MANDT

id = 'Z004'

language = '1'

name = lv_name

object = 'VBBK'

TABLES

lines = t_tline

EXCEPTIONS

not_found = 4.

DESCRIBE TABLE t_tline LINES lv_lines.

IF lv_lines > 0.

READ TABLE t_tline INDEX 1.

t_delivery-text5 = t_tline-tdline.

ENDIF.

CLEAR t_tline.

  • &#21457;&#36135;&#27719;&#24635;

it_lips_collect-vgbel = it_likp_lips-vgbel.

it_lips_collect-vgpos = it_likp_lips-vgpos.

CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'

exporting

i_matnr = it_likp_lips-matnr

i_in_me = it_likp_lips-vrkme

i_out_me = 'KG'

i_menge = it_likp_lips-lfimg

importing

e_menge = lv_lfimg.

it_lips_collect-lfimg = lv_lfimg / 1000.

it_lips_collect-vrkme = 'TO'.

COLLECT: t_delivery, it_lips_collect.

CLEAR: t_delivery, it_lips_collect, lv_lfimg.

ENDLOOP.

LOOP AT it_vbak_vbap.

  • &#22635;&#20805;&#35746;&#21333;&#25260;&#22836;&#34920;

t_order_header-vbeln = it_vbak_vbap-vbeln.

t_order_header-auart = it_vbak_vbap-auart.

t_order_header-vtweg = it_vbak_vbap-vtweg.

t_order_header-augru = it_vbak_vbap-augru.

t_order_header-audat = it_vbak_vbap-audat.

t_order_header-kunnr = it_vbak_vbap-kunnr.

t_order_header-waerk = it_vbak_vbap-waerk.

t_order_header-netwr = it_vbak_vbap-netwr.

t_order_header-vkorg = it_vbak_vbap-vkorg.

t_order_header-spart = it_vbak_vbap-spart.

t_order_header-vkgrp = it_vbak_vbap-vkgrp.

t_order_header-vkbur = it_vbak_vbap-vkbur.

CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'

exporting

i_matnr = it_vbak_vbap-matnr

i_in_me = it_vbak_vbap-vrkme

i_out_me = 'KG'

i_menge = it_vbak_vbap-kwmeng

importing

e_menge = lv_kwmeng.

t_order_header-kwmeng = lv_kwmeng / 1000.

t_order_header-vrkme = 'TO'.

READ TABLE it_zstate WITH KEY vbeln = it_vbak_vbap-vbeln.

IF sy-subrc EQ 0.

t_order_header-state = it_zstate-state.

ENDIF.

READ TABLE it_vbkd WITH KEY vbeln = it_vbak_vbap-vbeln

posnr = it_vbak_vbap-posnr.

IF sy-subrc EQ 0.

t_order_header-zterm = it_vbkd-zterm.

t_order_header-inco1 = it_vbkd-inco1.

t_order_header-inco2 = it_vbkd-inco2.

ENDIF.

READ TABLE it_vbpa WITH KEY vbeln = it_vbak_vbap-vbeln

parvw = 'AG'.

IF sy-subrc EQ 0.

t_order_header-kunag = it_vbpa-kunnr.

ENDIF.

READ TABLE it_vbpa WITH KEY vbeln = it_vbak_vbap-vbeln

parvw = 'Z2'.

IF sy-subrc EQ 0.

t_order_header-kunz2 = it_vbpa-kunnr.

ENDIF.

READ TABLE it_vbpa WITH KEY vbeln = it_vbak_vbap-vbeln

parvw = 'Z3'.

IF sy-subrc EQ 0.

t_order_header-kunz3 = it_vbpa-kunnr.

ENDIF.

READ TABLE it_knkk WITH KEY kunnr = it_vbak_vbap-kunnr.

IF sy-subrc EQ 0.

t_order_header-klimk = it_knkk-klimk.

ENDIF.

  • &#22635;&#20805;&#35746;&#21333;&#39033;&#30446;&#34920;

t_order_item-vbeln = it_vbak_vbap-vbeln.

t_order_item-posnr = it_vbak_vbap-posnr.

t_order_item-werks = it_vbak_vbap-werks.

t_order_item-abgru = it_vbak_vbap-abgru.

t_order_item-arktx = it_vbak_vbap-arktx.

t_order_item-matnr = it_vbak_vbap-matnr.

t_order_item-kwmeng = it_vbak_vbap-kwmeng.

t_order_item-vrkme1 = it_vbak_vbap-vrkme.

t_order_item-kondm = it_vbak_vbap-kondm.

t_order_item-charg = it_vbak_vbap-charg.

READ TABLE it_konv WITH KEY knumv = it_vbak_vbap-knumv

kposn = it_vbak_vbap-posnr

kschl = 'PR00'.

IF sy-subrc EQ 0.

t_order_item-kbetr1 = it_konv-kbetr.

t_order_item-waers1 = it_konv-waers.

ENDIF.

READ TABLE it_konv WITH KEY knumv = it_vbak_vbap-knumv

kposn = it_vbak_vbap-posnr

kschl = 'PR01'.

IF sy-subrc EQ 0.

t_order_item-kbetr2 = it_konv-kbetr.

t_order_item-waers2 = it_konv-waers.

ENDIF.

READ TABLE it_lips_collect WITH KEY vgbel = it_vbak_vbap-vbeln

vgpos = it_vbak_vbap-posnr.

IF sy-subrc EQ 0.

t_order_item-lfimg = it_lips_collect-lfimg.

t_order_item-vrkme2 = it_lips_collect-vrkme.

ENDIF.

COLLECT: t_order_header, t_order_item.

CLEAR: t_order_header, t_order_item, lv_kwmeng.

ENDLOOP.

SORT: t_order_header, t_order_item, t_delivery.

ENDFUNCTION.</i>

Read only

Laxmana_Appana_
Active Contributor
0 Likes
2,892

Hi,

Check these links , i have written sample code using READ_TEXT.

Regards

Appana