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

VALIDATION

Former Member
0 Likes
1,087

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.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,049

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

8 REPLIES 8
Read only

Former Member
0 Likes
1,049

Hi Venkat,

what is marc-matnr and marc-werks.

Read only

0 Likes
1,049

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

Read only

Former Member
0 Likes
1,049

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

Read only

Former Member
0 Likes
1,049

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.

Read only

Former Member
0 Likes
1,050

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

Read only

0 Likes
1,049

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

Read only

gopi_narendra
Active Contributor
0 Likes
1,049

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

Read only

Former Member
0 Likes
1,049

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