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

Problem when inserting records to a database table.

aris_hidalgo
Contributor
0 Likes
687

Hello experts,

I am currently having problems inserting records to my custom table. The problem says

that my work area is not long enough. My custom table has 6 fields(excluding MANDT) but I

only want to insert values in 5 fields since I dont need the to fill up the 6th one. So I

declared my internal table as:

TYPES: BEGIN OF t_zts_stpgeoloc,

kunnr TYPE zts_stpgeoloc-kunnr,

cdseq TYPE zts_stpgeoloc-cdseq,

zaddress TYPE zts_stpgeoloc-zaddress,

zcperson TYPE zts_stpgeoloc-zcperson,

zcnumber TYPE zts_stpgeoloc-zcnumber,

END OF t_zts_stpgeoloc.

DATA: lt_zts_stpgeoloc type hashed table of t_zts_stpgeoloc

with unique key kunnr cdseq,

wa_zts_stpgeoloc like line of lt_zts_stpgeoloc.

FIELD-SYMBOLS: <fs_stp> like line of lt_zts_stpgeoloc.

Below is the code:

LOOP AT gt_zts0001_old ASSIGNING <fs_old>.

read table lt_zts_stpgeoloc with table key

kunnr = <fs_old>-kunnr

cdseq = <fs_old>-cdseq

assigning <fs_stp>.

if sy-subrc <> 0.

wa_zts_stpgeoloc-kunnr = <fs_old>-kunnr.

wa_zts_stpgeoloc-cdseq = <fs_old>-cdseq.

wa_zts_stpgeoloc-zaddress = <fs_old>-zaddress.

wa_zts_stpgeoloc-zcperson = <fs_old>-zcperson.

wa_zts_stpgeoloc-zcnumber = <fs_old>-zcnumber.

insert into zts_stpgeoloc values wa_zts_stpgeoloc.

endif.

endloop.

So when I syntax check my program it says that my work area is not long enough.

Thanks guys and take care!

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
603

You need to assign all the fields of the table in your work area.

<b>Basically, as you said that you dont need to populate the sixth field of the table ..initialise it to zero/space depending on the field type</b>..

Regards

Anurag

Message was edited by: Anurag Bankley

5 REPLIES 5
Read only

Former Member
0 Likes
604

You need to assign all the fields of the table in your work area.

<b>Basically, as you said that you dont need to populate the sixth field of the table ..initialise it to zero/space depending on the field type</b>..

Regards

Anurag

Message was edited by: Anurag Bankley

Read only

gopi_narendra
Active Contributor
0 Likes
603

using modify is the best way, and no need to omit that field. but do nt pass any value to it

Read only

Former Member
0 Likes
603

Declare this way:

<b>TYPES: BEGIN OF t_zts_stpgeoloc.

Include structure zts_stpgeoloc.

types: END OF t_zts_stpgeoloc.</b>

DATA: lt_zts_stpgeoloc type hashed table of t_zts_stpgeoloc

with unique key kunnr cdseq,

wa_zts_stpgeoloc like line of lt_zts_stpgeoloc.

FIELD-SYMBOLS: <fs_stp> like line of lt_zts_stpgeoloc.

LOOP AT gt_zts0001_old ASSIGNING <fs_old>.

read table lt_zts_stpgeoloc with table key

kunnr = <fs_old>-kunnr

cdseq = <fs_old>-cdseq

assigning <fs_stp>.

if sy-subrc <> 0.

<b>wa_zts_stpgeoloc-mandt = sy-mandt.</b>

wa_zts_stpgeoloc-kunnr = <fs_old>-kunnr.

wa_zts_stpgeoloc-cdseq = <fs_old>-cdseq.

wa_zts_stpgeoloc-zaddress = <fs_old>-zaddress.

wa_zts_stpgeoloc-zcperson = <fs_old>-zcperson.

wa_zts_stpgeoloc-zcnumber = <fs_old>-zcnumber.

insert into zts_stpgeoloc values wa_zts_stpgeoloc.

endif.

endloop.

Message was edited by: Ravi Kanth Talagana

Read only

anversha_s
Active Contributor
0 Likes
603

hi,

tables zts_stpgeoloc.

data : lt_zts_stpgeoloc like zts_stpgeoloc occurs 0 withheader line.

FIELD-SYMBOLS: <fs_stp> like line of lt_zts_stpgeoloc.

LOOP AT gt_zts0001_old ASSIGNING <fs_old>.

read table lt_zts_stpgeoloc with table key

kunnr = <fs_old>-kunnr

cdseq = <fs_old>-cdseq

assigning <fs_stp>.

if sy-subrc <> 0.

lt_zts_stpgeoloc-kunnr = <fs_old>-kunnr.

lt_zts_stpgeoloc-cdseq = <fs_old>-cdseq.

lt_zts_stpgeoloc-zaddress = <fs_old>-zaddress.

lt_zts_stpgeoloc-zcperson = <fs_old>-zcperson.

lt_zts_stpgeoloc-zcnumber = <fs_old>-zcnumber.

insert into zts_stpgeoloc values lt_zts_stpgeoloc.

endif.

endloop.

this will solve ur pblm.rwrd points if hlped

anver

Read only

Former Member
0 Likes
603

LOOP AT gt_zts0001_old ASSIGNING <fs_old>.

read table lt_zts_stpgeoloc with table key

kunnr = <fs_old>-kunnr

cdseq = <fs_old>-cdseq

assigning <fs_stp>.

if sy-subrc <> 0.

wa_zts_stpgeoloc-kunnr = <fs_old>-kunnr.

wa_zts_stpgeoloc-cdseq = <fs_old>-cdseq.

wa_zts_stpgeoloc-zaddress = <fs_old>-zaddress.

wa_zts_stpgeoloc-zcperson = <fs_old>-zcperson.

wa_zts_stpgeoloc-zcnumber = <fs_old>-zcnumber.

*insert into zts_stpgeoloc values wa_zts_stpgeoloc.

instead of this insert line you can use modify stmt like

modify wa_zts.

endif.

endloop.