2008 Nov 23 10:26 AM
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
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
2008 Nov 23 10:36 AM
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
2008 Nov 23 11:32 AM
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
2008 Nov 23 11:57 AM
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
2008 Dec 25 6:00 AM
| User | Count |
|---|---|
| 6 | |
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |