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

how can we update database table fields ?

Former Member
0 Likes
800

hi all

i have to update data base fiels

my requirment is

from BKPF i have to select bellow fields

BUKRS

BELNR

GJAHR

BLART

MONAT

where AWTYP = 'harpay'

from BSEG i have to select

LIFNR

where inputs are BKPF-BUKRS

BKPF-BELNR

BKPF-GJAHR

now i have some lifnr values

if above Vender no (lifnr) in LFBW

i have to update BSEG-QSSKZ = 'xx'

for this i have write bellow code pls check once , if any modify is there pls tell me

code;

REPORT Zrep.

TABLES: BKPF,BSEG,LFBW.

TYPES:BEGIN OF TY_BKPF,

BUKRS TYPE BUKRS,

BELNR TYPE BELNR_D,

GJAHR TYPE GJAHR,

BLART TYPE BLART,

MONAT TYPE MONAT,

END OF TY_BKPF.

DATA:IT_BKPF TYPE STANDARD TABLE OF TY_BKPF.

TYPES: BEGIN OF TY_BSEG,

BUKRS TYPE BUKRS,

BELNR TYPE BELNR_D,

GJAHR TYPE GJAHR,

BUZEI TYPE BUZEI,

QSSKZ TYPE QSSKZ,

LIFNR TYPE LIFNR,

END OF TY_BSEG.

DATA:IT_BSEG TYPE STANDARD TABLE OF TY_BSEG.

data : wa_tempbseg TYPE bseg.

TYPES: BEGIN OF TY_LFBW,

LIFNR TYPE LFBW,

END OF TY_LFBW.

DATA:IT_LFBW TYPE STANDARD TABLE OF TY_LFBW.

DATA: WA_BKPF TYPE TY_BKPF.

DATA: WA_BSEG TYPE TY_BSEG.

DATA: WA_LFBW TYPE TY_LFBW.

----


  • SELECTION SCREEN *

----


SELECT-OPTIONS : S_BUKRS FOR BKPF-BUKRS OBLIGATORY,

S_BELNR FOR BKPF-BELNR,

S_GJAHR FOR BKPF-GJAHR OBLIGATORY,

S_BLART FOR BKPF-BLART,

S_MONAT FOR BKPF-MONAT. "OBLIGATORY.

*Get data

SELECT BUKRS

BELNR

GJAHR

BLART

MONAT

FROM BKPF INTO TABLE IT_BKPF

WHERE AWTYP = 'HRPAY'

AND BUKRS IN S_BUKRS

AND BELNR IN S_BELNR

AND GJAHR IN S_GJAHR

AND BLART IN S_BLART

AND MONAT IN S_MONAT.

SELECT BUKRS

BELNR

GJAHR

BUZEI

LIFNR

FROM BSEG INTO TABLE IT_BSEG

FOR ALL ENTRIES IN IT_BKPF

WHERE BUKRS = IT_BKPF-BUKRS

AND BELNR = IT_BKPF-BELNR

AND GJAHR = IT_BKPF-GJAHR.

  • AND KOART = 'K'.

SELECT LIFNR

FROM LFBW INTO TABLE IT_LFBW.

  • To check lifnr in LFBK or not

LOOP AT IT_BSEG INTO WA_BSEG.

READ TABLE IT_LFBW INTO WA_LFBW WITH KEY LIFNR = WA_tempBSEG-LIFNR.

IF SY-SUBRC = 0.

  • UPDATING BSEG-QSSKZ

modify bseg from wa_tempbseg.

if sy-subrc = 0.

COMMIT work.

else.

ROLLBACK work.

endif.

CLEAR WA_BSEG.

ENDIF.

ENDLOOP.

regards

Saimedha

4 REPLIES 4
Read only

Former Member
0 Likes
699

ur code seems fine.

but at the end u cud use.

UPDATE <dbtable> FROM <wa>

then u dont need to explicitely specify commit and roll back statements

Read only

0 Likes
699

Hi Prashanti,

Thanks for ur reply.

I have used Modify <dtable>form <wa>

But u mentioned update <dtable>form <wa>

which one i will use kindly specify with reason

Saimedha

Read only

0 Likes
699

Choose modify insted of UPDATE !!

Because Update canonly update the existing recording ...It cant create new record ..

Where as modify can update the record as well as create a new record.

Regards

Sas

Read only

Former Member
0 Likes
699

i got it