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

Material description

Former Member
0 Likes
2,136

HI All,,

I have a internal table int with following fields matnr maktxd maktxe.

i have a field material in the selection screen.

i have to retrieve both the material description in english as well as DE.

I is there any optimized way to retrieve both the text from MAKT through a single query?

Tnx,

Joe

9 REPLIES 9
Read only

Former Member
0 Likes
1,559

Hi

For the material (MATNR) fetch the corresponding description from MAKT.

While selecting use the criteria SPRAS = 'EN' or "DE'.

Regards

Ansari

Read only

Former Member
0 Likes
1,559

Hi,

Table contains data in a single language.You cannot retrieve data from both languages with a single qurey.Try extract the data into a field and then convert the same into desired language.

Regards,

Vamshi

Read only

0 Likes
1,559

Hi,

when i checked my MARA table i can see for the same material description is mainatined in EN and FR..

SELECT *

FROM mara

INTO TABLE it_mara

where matnr = '000000000000000031'.

SELECT *

FROM makt

INTO TABLE it_makt

FOR ALL ENTRIES IN it_mara

WHERE matnr = it_mara-matnr

AND spras = 'EN'

OR spras = 'FR'.

Using this select stmnt i was able to fetch the data belonging to both the languages.

Regards

Ansari

Read only

0 Likes
1,559

Hi All,

This is my itab structure,

data : begin of itab ,

matnr like makt-matnr,

maktxd like makt-maktx, " Launguage english

maktxe like makt-maktx "Launguage german

end of itab.

i want to have it in a single table with a single select query bioth the english as well as german,

Tnx,

Joe

Read only

0 Likes
1,559

can anhy one take this up plz...

Tnx,

Joe

Read only

0 Likes
1,559

Hi, Try this.

data : begin of itab ,

matnr like makt-matnr,

maktxd like makt-maktx, " Launguage english

maktxe like makt-maktx "Launguage german

end of itab.

data : begin of it_desc ,

matnr like makt-matnr,

maktx like makt-maktx,

spras like makt-spras,

end of it_desc.

Select matnr maktx spras into table it_desc from makt where

matnr = 'Your parameter value'

AND spras in ( 'EN', 'DE' ).

Loop at it_desc.

Move it_desc-matnr to itab-matnr.

if it_desc-spras = 'EN'.

Move it_desc-maktx to itab-maktxd.

ELSE.

Move it_desc-maktx to itab-maktxe.

ENDIF.

append itab.

endloop.

Regds,

Senthil

Edited by: senthil kumar on Sep 1, 2009 4:44 PM

Read only

santosh_kumarm
Participant
0 Likes
1,559

Hi Joe,

Check the below code for your requirement

data : begin of itab ,

matnr like makt-matnr,

maktx like makt-maktx,

end of itab.

Select matnr maktx into table itab from makt where spras in ( 'EN', 'DE' ).

Hope it shall be useful.

Regards

Santosh

Read only

santosh_kumarm
Participant
0 Likes
1,559

Hi Jeo,

check the below code.

data : begin of itab ,

matnr like makt-matnr,

maktxd like makt-maktx, " Launguage english

maktxe like makt-maktx "Launguage german

end of itab.

data : wa_itab like itab.

select single matnr maktx into wa_itab from makt where

matnr eq "parameter" and

spras eq 'EN'.

select single maktx into wa_itab-maktx from maktx where

matnr eq "parameter" and

spras eq 'DE'.

append wa_itab to itab.

clear wa_itab.

Hope it shall be useful.

Regards

Santosh

Read only

Former Member
0 Likes
1,559

Hi,

I dont think we can do it in one select statement..

Try the sample code given below..

TYPES: BEGIN OF ty_s_mara,

matnr TYPE matnr,

eng TYPE char50,

ger TYPE char50,

END OF ty_s_mara.

DATA it_mara TYPE STANDARD TABLE OF ty_s_mara.

DATA it_makt TYPE TABLE OF makt.

FIELD-SYMBOLS <gf_mara> TYPE ty_s_mara.

DATA ls_makt TYPE makt.

SELECT matnr

FROM mara

INTO TABLE it_mara

WHERE matnr = '000000000000000031'.

SELECT *

FROM makt

INTO TABLE it_makt

FOR ALL ENTRIES IN it_mara

WHERE matnr = it_mara-matnr

AND spras = 'EN'

OR spras = 'FR'.

LOOP AT it_mara ASSIGNING <gf_mara>.

LOOP AT it_makt INTO ls_makt WHERE matnr = <gf_mara>-matnr.

IF sy-tabix = 1.

MOVE ls_makt-maktx TO <gf_mara>-eng.

ELSE.

MOVE ls_makt-maktx TO <gf_mara>-ger.

ENDIF.

ENDLOOP.

ENDLOOP.

Regards

Ansari