‎2007 Oct 05 7:13 AM
Hello all , in my i/p screen iam having material , plant and month fileds . if iam going enter invalid plant for the given materila error message have to come , if not excute and o/p should be displayed . for that this is what i have coded but still iam not getting exactly.....give me the exact solution for this ///thanks.
at selection-screen.
if matnr = marc-matnr and werks = marc-werks.
select matnr werks from marc into table it_data
where matnr in s_matnr
and werks in s_plant.
else.
message E001(ZPP01) WITH S_PLANT.
endif.
‎2007 Oct 05 7:18 AM
you need to validate iin AT SELECTION-SCREEN ON VALUE REQUEST
with each select option seperately with its value table
to find value table go to field -> data element-> domain and check last tab below you can see value table for that field
for example
SELECT-OPTIONS: s_bukrs FOR gs_bsid-bukrs OBLIGATORY NO-EXTENSION, " Company code
Validation for Company code
AT SELECTION-SCREEN ON s_bukrs.
PERFORM sub_valid_company_code.
&----
*& Form sub_valid_company_code
&----
Validation for Company Code
----
FORM sub_valid_company_code .
DATA lv_bukrs TYPE t001-bukrs.
Validation for company Code
IF s_bukrs-low IS INITIAL.
IF NOT s_bukrs-high IS INITIAL.
MESSAGE w001.
ENDIF.
ELSE.
SELECT SINGLE bukrs FROM t001 INTO lv_bukrs
WHERE bukrs = s_bukrs-low.
IF sy-subrc NE 0.
MESSAGE e007 WITH s_bukrs-low.
ENDIF.
ENDIF.
IF NOT s_bukrs-high IS INITIAL.
SELECT SINGLE bukrs FROM t001 INTO lv_bukrs
WHERE bukrs = s_bukrs-high.
IF sy-subrc NE 0.
MESSAGE e007 WITH s_bukrs-high.
ENDIF.
ENDIF.
ENDFORM. " sub_valid_company_code
Rewards if useful.............
Minal
‎2007 Oct 05 7:16 AM
‎2007 Oct 05 8:19 AM
when iam going enter invalid entry
i.e exp. for the material REF ER28PHOPSS ,plant vi01 is a invalid entry that time error mesage if not REF ER28PHOPSS plant is ek02 ....o/p into it_data.
this is what i reuire...reply back to me .....thanks
‎2007 Oct 05 7:16 AM
Hi,
Get the plant from table T001W using the s_plant
select werks
into v_werks
from T001W
where werks in s_werks.
if not v_werks is initial.
else.
message
endif.
Regards
Shiva
‎2007 Oct 05 7:18 AM
HI,
do like this.
data:wa_marc type marc.
at selection-screen.
select single * from marc into wa_marc where matnr = matnr and werks = werks.
if sy-subrc <> 0.
message E001(ZPP01) WITH S_PLANT.
endif.
start-of-selection.
select matnr werks from marc into table it_data
where matnr in s_matnr
and werks in s_plant.
rgds,
bharat.
‎2007 Oct 05 7:18 AM
you need to validate iin AT SELECTION-SCREEN ON VALUE REQUEST
with each select option seperately with its value table
to find value table go to field -> data element-> domain and check last tab below you can see value table for that field
for example
SELECT-OPTIONS: s_bukrs FOR gs_bsid-bukrs OBLIGATORY NO-EXTENSION, " Company code
Validation for Company code
AT SELECTION-SCREEN ON s_bukrs.
PERFORM sub_valid_company_code.
&----
*& Form sub_valid_company_code
&----
Validation for Company Code
----
FORM sub_valid_company_code .
DATA lv_bukrs TYPE t001-bukrs.
Validation for company Code
IF s_bukrs-low IS INITIAL.
IF NOT s_bukrs-high IS INITIAL.
MESSAGE w001.
ENDIF.
ELSE.
SELECT SINGLE bukrs FROM t001 INTO lv_bukrs
WHERE bukrs = s_bukrs-low.
IF sy-subrc NE 0.
MESSAGE e007 WITH s_bukrs-low.
ENDIF.
ENDIF.
IF NOT s_bukrs-high IS INITIAL.
SELECT SINGLE bukrs FROM t001 INTO lv_bukrs
WHERE bukrs = s_bukrs-high.
IF sy-subrc NE 0.
MESSAGE e007 WITH s_bukrs-high.
ENDIF.
ENDIF.
ENDFORM. " sub_valid_company_code
Rewards if useful.............
Minal
‎2007 Oct 05 8:03 AM
hi thanks for ur reply......but still iam getting the same problem . my out put internal table is it_data, which consists of other values also for that coding is over . when iam going enter invalid entry
i.e exp. for the material REF ER28PHOPSS ,plant vi01 is a invalid entry that time error mesage if not REF ER28PHOPSS plant is ek02 ....o/p into it_data.
this is what i reuire...reply back to me .....thanks
‎2007 Oct 05 7:18 AM
Hi Check this sample code
TABLES : t001.
PARAMETERS : p_ccd TYPE t001-bukrs.
AT SELECTION-SCREEN.
IF NOT p_ccd IS INITIAL.
SELECT SINGLE * FROM t001 WHERE bukrs = p_ccd.
IF sy-subrc NE 0.
MESSAGE e000(ZCL) WITH 'Incorrect Company Code'.
ENDIF.
ENDIF.Regards
Gopi
‎2007 Oct 05 7:19 AM
Hi Venkat,
Use this code
AT SELECTION-SCREEN ON so_swerk.
PERFORM validate_swerk.
&----
*& Form validate_swerk
&----
Validation of Maintenance Plant
----
FORM validate_swerk.
DATA: lz_mandt TYPE sy-mandt. "#EC NEEDED
CLEAR: lz_mandt.
IF NOT so_swerk[] IS INITIAL.
SELECT mandt
FROM t001w
INTO lz_mandt
UP TO 1 ROWS
WHERE werks IN so_swerk.
ENDSELECT.
IF sy-subrc NE 0.
MESSAGE e900(zbcc)
WITH text-001.
ENDIF. "IF sy-subrc NE 0
ENDIF. "IF NOT so_swerk[] IS INITIAL
ENDFORM. " validate_swerk