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

Import parametes and insert into database table suggestions

Former Member
0 Likes
570

experts need suggestions

created a table with 3 fields.

zstable.

field dataelement type length

kunnr kunnr char 10 key field

name dname char 30 key field

aedat aedat dats 8

aenam aenam char 12

now i am creating a function modlue with two input parameters

1)kunnr

2)name

i want to update this two fields into table zstable.

1. so suggest me the best way to do this.

Delcarations in import options which one of the below is best and why?

name type char30

kunnr type kunnr

or

name like zstable-name

kunnr like zstable-kunnr

or

kunnr type zstable-kunnr

name type zstable-name.

2. inserting into table

the data that we recieve from the import parameters need to be inserted into the zstable.

please suggest me the appropriate statement waht i need to code for this.

insert kunnr name into zstable.

can i ignore the third field as it is not the key field?

3. before inserting do i need to check whether kunnr and uname is initial ie import parametrs?

4. suppose if i delcared two input parameters in function module zfuntion say vbeln and posnr.

and source code

insert vbeln and posnr into zstable.

now i am calling from the program

zreport.

call function 'ZFUNCTION'.

EXPORT

NAME =

KUNNR =

.

Will the above statement updates the blank records into the table zstable?.

1 ACCEPTED SOLUTION
Read only

MarcinPciak
Active Contributor
0 Likes
536

Hi,

1) I think the best is either refer directly to data element or to table field. This is beacuse once any change is made to this data element it will automatically reflect in your parameters. For table fields it is a bit less safier but still correct. Golden rule - always try to refer to DDIC components like data elements.

name type dname

kunnr type kunnr

2) You need to provide all key fields. I recommend to use MODIFY as it would hanlde both INSERT (if yet no such record exists ) and UPDATE (if already exists).


data: wa_zstable type zstable. "declare work area

wa_zstable-kunnr = kunnr.  "pass parameters here
wa_zstable-name = name. 
modify zstable from wa_zstable.

3) good practise, for this use


if kunnr is initial and   
   name is initial.
  "modify ...
endif.

"or if parameters are set as OPTIONAL, then use
if kunnr is supplied and 
   name is supplied.
   ...
endif.

4) No, the statment you want to use


insert vbeln and posnr into zstable.

is only used for FIELD GROUPS, not DB table. Please refer [INSERT|http://help.sap.com/abapdocu/en/ABAPINSERT_DBTAB_SHORTREF.htm] for correct syntax.

You can alternatively use somthing like


UPDATE zstable SET vbeln = ...
                                        posnr = ...
                                 WHERE ...

This will update fields VBELN and PONR for all records fullfilling WHERE condition. These however musn't be key fields, only non-key fields can be udpated.

Regards

Marcin

3 REPLIES 3
Read only

Former Member
0 Likes
536

HI,

You have to create one more structure similar to your z-table and that you have to use in your FM as table type.

Through that table type you can pass data into your z-table as per the queries used by you in Fm.

Regds,

Anil

Read only

MarcinPciak
Active Contributor
0 Likes
537

Hi,

1) I think the best is either refer directly to data element or to table field. This is beacuse once any change is made to this data element it will automatically reflect in your parameters. For table fields it is a bit less safier but still correct. Golden rule - always try to refer to DDIC components like data elements.

name type dname

kunnr type kunnr

2) You need to provide all key fields. I recommend to use MODIFY as it would hanlde both INSERT (if yet no such record exists ) and UPDATE (if already exists).


data: wa_zstable type zstable. "declare work area

wa_zstable-kunnr = kunnr.  "pass parameters here
wa_zstable-name = name. 
modify zstable from wa_zstable.

3) good practise, for this use


if kunnr is initial and   
   name is initial.
  "modify ...
endif.

"or if parameters are set as OPTIONAL, then use
if kunnr is supplied and 
   name is supplied.
   ...
endif.

4) No, the statment you want to use


insert vbeln and posnr into zstable.

is only used for FIELD GROUPS, not DB table. Please refer [INSERT|http://help.sap.com/abapdocu/en/ABAPINSERT_DBTAB_SHORTREF.htm] for correct syntax.

You can alternatively use somthing like


UPDATE zstable SET vbeln = ...
                                        posnr = ...
                                 WHERE ...

This will update fields VBELN and PONR for all records fullfilling WHERE condition. These however musn't be key fields, only non-key fields can be udpated.

Regards

Marcin

Read only

0 Likes
536

Marcin Pciak

thank you a lot. your explanation is so clear and good to understand