‎2007 Nov 28 10:58 AM
Hi All,
My requirement is to update or add new record to z table.
I have to implose validation rule on specific fields.
For eg.
Consider,
Table - ZVARASTO.
Primary key field - VARASTO.
Field on which to impose validation - WERKS.
Rule is --- use check table T001W when checking the input and updating DB.
This is the code which im using for updating the record
UPDATE zvarasto SET varastonimi = zvarasto-varastonimi
werks = zvarasto-werks
lgort = zvarasto-lgort
nipkaa_kuvaan = zvarasto-nipkaa_kuvaan
kuljma_kuvaan = zvarasto-kuljma_kuvaan
kauptltiedot = zvarasto-kauptltiedot
ktinventointi = zvarasto-ktinventointi
kunnr = zvarasto-kunnr
laadutusvots = zvarasto-laadutusvots
WHERE varasto = zvarasto-varasto.
So where should i in clude this particular validation.
Please help me with same.
Thanks in Advance,
Amruta.
‎2007 Nov 28 11:04 AM
select single werks
from T001W
into w_werks
where werks eq zvarasto-werks.
if sy-subrc eq 0.
UPDATE zvarasto SET varastonimi = zvarasto-varastonimi
werks = zvarasto-werks
lgort = zvarasto-lgort
nipkaa_kuvaan = zvarasto-nipkaa_kuvaan
kuljma_kuvaan = zvarasto-kuljma_kuvaan
kauptltiedot = zvarasto-kauptltiedot
ktinventointi = zvarasto-ktinventointi
kunnr = zvarasto-kunnr
laadutusvots = zvarasto-laadutusvots
WHERE varasto = zvarasto-varasto.
endif.
if werks is a selection-screen field then you can give the select in AT SELECTION-SCREEN on S_WERKS. " selection-option/parameter s_werks.
Message was edited by:
Jyothi
‎2007 Nov 28 11:01 AM
Hi,
First select data into internal table which field u want to update n then loop on that intarnal table n update.
Just refer this code.
&----
*& Form SUB_READ_UPDATE_BSEG
&----
text
----
FORM sub_read_update_bseg.
IF NOT it_final[] IS INITIAL.
LOOP AT it_final INTO wa_final.
UPDATE bseg SET zuonr = wa_final-ccnum
WHERE bukrs EQ wa_final-bukrs
AND belnr EQ wa_final-vbeln
AND rfzei EQ wa_final-rfzei
AND saknr NE ' '.
ENDLOOP.
*--Message data updated successfully
MESSAGE i888 WITH text-002.
LEAVE LIST-PROCESSING.
ELSE.
*--Message No data found
MESSAGE i888 WITH text-003.
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM. " SUB_READ_UPDATE_BSEG
Regards,
Prashant
‎2007 Nov 28 11:04 AM
select single werks
from T001W
into w_werks
where werks eq zvarasto-werks.
if sy-subrc eq 0.
UPDATE zvarasto SET varastonimi = zvarasto-varastonimi
werks = zvarasto-werks
lgort = zvarasto-lgort
nipkaa_kuvaan = zvarasto-nipkaa_kuvaan
kuljma_kuvaan = zvarasto-kuljma_kuvaan
kauptltiedot = zvarasto-kauptltiedot
ktinventointi = zvarasto-ktinventointi
kunnr = zvarasto-kunnr
laadutusvots = zvarasto-laadutusvots
WHERE varasto = zvarasto-varasto.
endif.
if werks is a selection-screen field then you can give the select in AT SELECTION-SCREEN on S_WERKS. " selection-option/parameter s_werks.
Message was edited by:
Jyothi
‎2007 Nov 28 12:10 PM
‎2007 Nov 28 11:05 AM
Hi
1st send that data to the internal table and use MODIFY ztable with internal table statement
then you table will update
or
PARAMETERS: p_carrid TYPE sflight-carrid,
percent(1) TYPE p DECIMALS 0.
DATA sflight_tab TYPE TABLE OF sflight.
FIELD-SYMBOLS <sflight> TYPE sflight.
SELECT *
FROM sflight
INTO TABLE sflight_tab
WHERE carrid = p_carrid AND
fldate = sy-datum.
IF sy-subrc = 0.
LOOP AT sflight_tab ASSIGNING <sflight>.
<sflight>-price =
<sflight>-price * ( 1 - percent / 100 ).
ENDLOOP.
ENDIF.
UPDATE sflight FROM TABLE sflight_tab.