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

Runtime error

Former Member
0 Likes
730

Hi All,

I am writing a simple select query,in my query I am taking two fields wbwbest and mbwbest it is going to dump other wise everything is fine here Iam giving my query.

REPORT ZMMTEST.

tables:s031,s032,makt,marc.

DATA : BEGIN OF itab1 OCCURS 0,

matnr TYPE s031-matnr,

lgort TYPE s031-lgort,

werks TYPE s031-werks,

spmon TYPE s031-spmon,

magbb type S031-magbb,

wagbb type S031-wagbb,

azubb type S031-azubb,

aagbb type S031-aagbb,

END OF itab1.

DATA : BEGIN OF itab2 OCCURS 0,

matnr like makt-matnr,

maktx like makt-maktx,

END OF itab2.

DATA : BEGIN OF itab3 OCCURS 0,

matnr TYPE marc-matnr,

werks type marc-werks,

ekgrp type marc-ekgrp,

END OF itab3.

DATA : BEGIN OF itab4 OCCURS 0 ,

matnr TYPE s032-matnr,

lgort TYPE s032-lgort,

werks TYPE s032-werks,

mbwbest type s032-mbwbest,

wbwbest type s032-wbwbest,

END OF itab4.

DATA : BEGIN OF itab_final OCCURS 0,

matnr TYPE s031-matnr,

lgort TYPE s031-lgort,

werks TYPE s031-werks,

spmon TYPE s031-spmon,

magbb type S031-magbb,

wagbb type S031-wagbb,

azubb type S031-azubb,

aagbb type S031-aagbb,

maktx TYPE makt-maktx,

ekgrp type marc-ekgrp,

mbwbest type s032-mbwbest,

wbwbest type s032-wbwbest,

END OF itab_final.

select-options:s_matnr for s031-matnr.

start-of-selection.

select matnr lgort werks spmon magbb wagbb azubb aagbb

from s031 into table itab1

where matnr in s_matnr.

if not itab1[] is initial.

select matnr maktx from makt into table itab2 for all entries in itab1 where matnr = itab1-matnr.

if not itab2[] is initial.

select matnr werks ekgrp from marc into table itab3 for all entries in itab2 where matnr = itab2-matnr.

if not itab3[] is initial.

select matnr werks mbwbest from s032 into table itab4 for all entries in itab3 where matnr = itab3-matnr.

endif.

endif.

endif.

end-of-selection.

loop at itab3.

itab_final-matnr = itab3-matnr.

read table itab2 with key matnr = itab3-matnr.

if sy-subrc = 0.

itab_final-maktx = itab2-maktx.

read table itab1 with key matnr = itab2-matnr.

if sy-subrc = 0.

itab_final-lgort = itab1-lgort.

itab_final-werks = itab1-werks.

itab_final-spmon = itab1-spmon.

itab_final-magbb = itab1-magbb.

itab_final-wagbb = itab1-wagbb.

itab_final-azubb = itab1-azubb.

itab_final-aagbb = itab1-aagbb.

endif.

endif.

itab_final-ekgrp = itab3-ekgrp.

read table itab4 with key matnr = itab3-matnr.

if sy-subrc = 0.

itab_final-mbwbest = itab4-mbwbest.

endif.

itab_final-wbwbest = itab4-wbwbest.

append itab_final.

clear itab_final.

endloop.

loop at itab_final.

WRITE: /2 itab_final-matnr, 23 itab_final-lgort,29 itab_final-werks,35 itab_final-spmon,44 itab_final-magbb,66 itab_final-wagbb,86 itab_final-azubb,97 itab_final-aagbb,109 itab_final-wagbb,

150 itab_final-maktx, 160 itab_final-ekgrp,itab_final-mbwbest.

ENDLOOP.

*Error analysis *

An exception occurred that is explained in detail below.

The exception, which is assigned to class 'CX_SY_OPEN_SQL_DB', was not caught

and

therefore caused a runtime error.

The reason for the exception is:

In a SELECT access, the read file could not be placed in the target

field provided.

Either the conversion is not supported for the type of the target field,

the target field is too small to include the value, or the data does not

have the format required for the target field.

Thanks&regds,

Sree.

1 ACCEPTED SOLUTION
Read only

peter_ruiz2
Active Contributor
0 Likes
711

hi,

try changing your INTO statement to this


into corresponding fields of table itab1

regards,

Peter

7 REPLIES 7
Read only

Former Member
0 Likes
711

hi,,

goto transaction st22..u can find where exactly it goin to dump.

pls reward if useful

regards,

rekha

Read only

peter_ruiz2
Active Contributor
0 Likes
712

hi,

try changing your INTO statement to this


into corresponding fields of table itab1

regards,

Peter

Read only

Former Member
0 Likes
711

Hi,

check it now.


tables:s031,s032,makt,marc.


DATA : BEGIN OF itab1 OCCURS 0,
matnr TYPE s031-matnr,
lgort TYPE s031-lgort,
werks TYPE s031-werks,
spmon TYPE s031-spmon,
magbb type S031-magbb,
wagbb type S031-wagbb,
azubb type S031-azubb,
aagbb type S031-aagbb,
END OF itab1.

DATA : BEGIN OF itab2 OCCURS 0,
matnr like makt-matnr,
maktx like makt-maktx,
END OF itab2.

DATA : BEGIN OF itab3 OCCURS 0,
matnr TYPE marc-matnr,
werks type marc-werks,
ekgrp type marc-ekgrp,
END OF itab3.

DATA : BEGIN OF itab4 OCCURS 0 ,
matnr TYPE s032-matnr,
lgort TYPE s032-lgort,
werks TYPE s032-werks,
mbwbest type s032-mbwbest,
wbwbest type s032-wbwbest,
END OF itab4.

DATA : BEGIN OF itab_final OCCURS 0,
matnr TYPE s031-matnr,
lgort TYPE s031-lgort,
werks TYPE s031-werks,
spmon TYPE s031-spmon,
magbb type S031-magbb,
wagbb type S031-wagbb,
azubb type S031-azubb,
aagbb type S031-aagbb,
maktx TYPE makt-maktx,
ekgrp type marc-ekgrp,
mbwbest type s032-mbwbest,
wbwbest type s032-wbwbest,
END OF itab_final.

select-options:s_matnr for s031-matnr.

start-of-selection.
select matnr lgort werks spmon magbb wagbb azubb aagbb
from s031 into table itab1
where matnr in s_matnr.

if not itab1[] is initial.
select matnr maktx from makt into CORRESPONDING FIELDS OF TABLE itab2
for all entries in itab1
where matnr = itab1-matnr.

if not itab2[] is initial.
select matnr werks ekgrp from marc into CORRESPONDING FIELDS OF TABLE
itab3 for all entries in
itab2 where matnr = itab2-matnr.


if not itab3[] is initial.
select matnr werks mbwbest from s032 into CORRESPONDING FIELDS OF
TABLE itab4 for all entries
in itab3 where matnr = itab3-matnr.

endif.
endif.
endif.


end-of-selection.

loop at itab3.
itab_final-matnr = itab3-matnr.

read table itab2 with key matnr = itab3-matnr.
if sy-subrc = 0.
itab_final-maktx = itab2-maktx.

read table itab1 with key matnr = itab2-matnr.
if sy-subrc = 0.
itab_final-lgort = itab1-lgort.
itab_final-werks = itab1-werks.
itab_final-spmon = itab1-spmon.
itab_final-magbb = itab1-magbb.
itab_final-wagbb = itab1-wagbb.
itab_final-azubb = itab1-azubb.
itab_final-aagbb = itab1-aagbb.

endif.
endif.
itab_final-ekgrp = itab3-ekgrp.


read table itab4 with key matnr = itab3-matnr.

if sy-subrc = 0.
itab_final-mbwbest = itab4-mbwbest.

endif.

itab_final-wbwbest = itab4-wbwbest.

append itab_final.
clear itab_final.

endloop.

loop at itab_final.

WRITE: /2 itab_final-matnr, 23 itab_final-lgort,29 itab_final-werks,35
itab_final-spmon,44 itab_final-magbb,66 itab_final-wagbb,86
itab_final-azubb,97 itab_final-aagbb,109 itab_final-wagbb,
150 itab_final-maktx, 160 itab_final-ekgrp,itab_final-mbwbest.
ENDLOOP.

rgds,

bharat.

Read only

Former Member
0 Likes
711

Hi Sree,

Using Break point find exactly where the error was raised.

ST22 also give the brief explanation about your Error.

Thanks.

Read only

Former Member
0 Likes
711

Hi Sree

Change ur coding like this and try...

if not itab3[] is initial.

select matnr lgort werks mbwbest wbwbest from s032 into table itab4 for all entries in itab3 where matnr = itab3-matnr.

endif.

endif.

endif.

end-of-selection.

loop at itab3.

itab_final-matnr = itab3-matnr.

read table itab2 with key matnr = itab3-matnr binary search.

if sy-subrc = 0.

itab_final-maktx = itab2-maktx.

read table itab1 with key matnr = itab2-matnr binary search.

if sy-subrc = 0.

itab_final-lgort = itab1-lgort.

itab_final-werks = itab1-werks.

itab_final-spmon = itab1-spmon.

itab_final-magbb = itab1-magbb.

itab_final-wagbb = itab1-wagbb.

itab_final-azubb = itab1-azubb.

itab_final-aagbb = itab1-aagbb.

endif.

endif.

itab_final-ekgrp = itab3-ekgrp.

read table itab4 with key matnr = itab3-matnr binary search.

if sy-subrc = 0.

itab_final-mbwbest = itab4-mbwbest.

endif.

itab_final-wbwbest = itab4-wbwbest.

append itab_final.

clear itab_final.

endloop.

I think this will solve ur problem.

Reward Me point.

By

Pari

Read only

Former Member
0 Likes
711

Hi,

try this statement.

*select matnr werks mbwbest from s032 into corresponding fields of table

itab4 for all entries in

itab3 where matnr = itab3-matnr.*

reward if helpful

raam

Read only

Pramanan
Active Participant
0 Likes
711

hi,

Just use corresponding fields of table

I have corrected it

tables:s031,s032,makt,marc.

DATA : BEGIN OF itab1 OCCURS 0,

matnr TYPE s031-matnr,

lgort TYPE s031-lgort,

werks TYPE s031-werks,

spmon TYPE s031-spmon,

magbb type S031-magbb,

wagbb type S031-wagbb,

azubb type S031-azubb,

aagbb type S031-aagbb,

END OF itab1.

DATA : BEGIN OF itab2 OCCURS 0,

matnr like makt-matnr,

maktx like makt-maktx,

END OF itab2.

DATA : BEGIN OF itab3 OCCURS 0,

matnr TYPE marc-matnr,

werks type marc-werks,

ekgrp type marc-ekgrp,

END OF itab3.

DATA : BEGIN OF itab4 OCCURS 0 ,

matnr TYPE s032-matnr,

lgort TYPE s032-lgort,

werks TYPE s032-werks,

mbwbest type s032-mbwbest,

wbwbest type s032-wbwbest,

END OF itab4.

DATA : BEGIN OF itab_final OCCURS 0,

matnr TYPE s031-matnr,

lgort TYPE s031-lgort,

werks TYPE s031-werks,

spmon TYPE s031-spmon,

magbb type S031-magbb,

wagbb type S031-wagbb,

azubb type S031-azubb,

aagbb type S031-aagbb,

maktx TYPE makt-maktx,

ekgrp type marc-ekgrp,

mbwbest type s032-mbwbest,

wbwbest type s032-wbwbest,

END OF itab_final.

select-options:s_matnr for s031-matnr.

start-of-selection.

select matnr lgort werks spmon magbb wagbb azubb aagbb

from s031 into table itab1

where matnr in s_matnr.

if not itab1[] is initial.

select matnr maktx from makt into table itab2 for all entries in itab1 where matnr = itab1-matnr.

endif.

if not itab2[] is initial.

select matnr werks ekgrp from marc into table itab3 for all entries in itab2 where matnr = itab2-matnr.

endif.

if not itab3[] is initial.

select matnr werks mbwbest from s032 into CORRESPONDING FIELDS OF TABLE itab4 for all entries in itab3 where matnr = itab3-matnr.

endif.

"endif.

"endif.

end-of-selection.

loop at itab3.

itab_final-matnr = itab3-matnr.

read table itab2 with key matnr = itab3-matnr.

if sy-subrc = 0.

itab_final-maktx = itab2-maktx.

read table itab1 with key matnr = itab2-matnr.

if sy-subrc = 0.

itab_final-lgort = itab1-lgort.

itab_final-werks = itab1-werks.

itab_final-spmon = itab1-spmon.

itab_final-magbb = itab1-magbb.

itab_final-wagbb = itab1-wagbb.

itab_final-azubb = itab1-azubb.

itab_final-aagbb = itab1-aagbb.

endif.

endif.

itab_final-ekgrp = itab3-ekgrp.

read table itab4 with key matnr = itab3-matnr.

if sy-subrc = 0.

itab_final-mbwbest = itab4-mbwbest.

endif.

itab_final-wbwbest = itab4-wbwbest.

append itab_final.

clear itab_final.

endloop.

loop at itab_final.

WRITE: /2 itab_final-matnr, 23 itab_final-lgort,29 itab_final-werks,35 itab_final-spmon,44 itab_final-magbb,66 itab_final-wagbb,86 itab_final-azubb,97 itab_final-aagbb,109 itab_final-wagbb,

150 itab_final-maktx, 160 itab_final-ekgrp,itab_final-mbwbest.

ENDLOOP.