Application Development 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: 

updating the database using z bapi without deleting existing data

former_member823776
Discoverer
0 Kudos

hi every body,

i am using a zbapi in that i am updating a table which is having 40 fields but i am modifying the only four fields but it is deleting the remaining field entries

i am now attaching the code what i have used

ZMPETS_SHIPHDR-SHIPDOCNO = wf_shipdocno.

ZMPETS_SHIPHDR-VENACCEPTIND = VENACCEPTIND.

ZMPETS_SHIPHDR-LASTCHANGEDT = SY-DATUM.

ZMPETS_SHIPHDR-LASTCHANGEBY = SY-UNAME.

ZMPETS_SHIPHDR-LOEKZ = ' '.

CALL FUNCTION 'Z_MPETS_SAVE_SHIPHDR'

EXPORTING

zmpets_shiphdr_save = ZMPETS_SHIPHDR.

*COMMITING THE UPDATION.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

IMPORTING

RETURN = RETURN.

  • UPDATING THE SHIPMENT ACTIVITY TABLE.

ZMPETS_SHIPACTIV-PETSDOCNUMBER = wf_shipdocno.

ZMPETS_SHIPACTIV-LOEKZ = ' '.

ZMPETS_SHIPACTIV-ACTIVITY = '20'.

CALL FUNCTION 'Z_MPETS_SAVE_SHIPACTIV'

EXPORTING

zmpets_shipactiv_save = ZMPETS_SHIPACTIV.

in the upper function module the code

is

modify zmpets_shipactiv from zmpets_shipactiv_save.

we have to use this compulsory as it is client's standard

*COMMITING THE UPDATION.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

IMPORTING

RETURN = RETURN.

kindly give me reply

i will reward the points for a best reply

2 REPLIES 2

Former Member
0 Kudos

Welcome to SDN!

You will need to pass all 40 fields into your BAPI structure (ZMPETS_SHIPACTIV). The problem is that when you use the modify from statement, the BAPI updates the DB as-is from the BAPI structure, and since you are passing it only 4 values, it defaults the others to space.

Do this:

SELECT * FROM ZMPETS_SHIPACTIV WHERE <specify key fields here>

and then

ZMPETS_SHIPACTIV-PETSDOCNUMBER = wf_shipdocno.

ZMPETS_SHIPACTIV-LOEKZ = ' '.

ZMPETS_SHIPACTIV-ACTIVITY = '20'.

CALL FUNCTION 'Z_MPETS_SAVE_SHIPACTIV'

EXPORTING

zmpets_shipactiv_save = ZMPETS_SHIPACTIV.

This should work.

Hope this helps.

Sudha

Former Member
0 Kudos

Hi,

pass all the key fields along with the non

key fields you want to modify by filling BAPI

structure .

CALL FUNCTION 'Z_MPETS_SAVE_SHIPACTIV'

EXPORTING

zmpets_shipactiv_save = ZMPETS_SHIPACTIV.

Regards

Amole