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

Validate Se;ection Screen

Former Member
0 Likes
628

Hi Gurus!!

Apart from At Selection-screen event, are there any ways to validate Selection-screen inputs?

Plz do reply me

Pratibha J

5 REPLIES 5
Read only

Former Member
0 Likes
606

Hi

You can use different eveents related AT SELECTION-SCREN like to validate the fields,blocks etc

AT SELECTION-SCREEN on <field>

AT SELECTION-SCREEN on Block < block>

AT SELECTION-SCREEN OUTPUT

AT SELECTION-SCREEN

Regards

Anji

Read only

Former Member
0 Likes
606

Hi Pratibha,

1. U are right, we can do it in <b>START-OF-SELECTION</b> event.

2. But we have to take care like this.

3.

<b>START-OF-SELECTION.</b>

IF <CONDITION>.

<b>MESSAGE 'WRONG INPUT' TYPE 'I'.

LEAVE LIST-PROCESSING.</b>

ENDIF.

WRITE 😕 'DATA'.

4. <b>Important point is</b>

a)use message type I and not <b>E</b>

b) use <b>leave list-processing</b>.

===================================

and u can use <b>AT SELECTION-SCREEN variants</b> as well..

for more information about AT SELECTION-SCREEN and

write AT SELECTION-SCREEN in ABAP Editor..

put ur cursor on it

then press F1... nd go through ABAP keyword documentation...

press F1

AT SELECTION-SCREEN on <field>

AT SELECTION-SCREEN on Block < block>

AT SELECTION-SCREEN OUTPUT

AT SELECTION-SCREEN

Hope it will solve ur problem,

<b>Reward points if useful...</b>

Thanks & Regards

ilesh 24x7

Read only

Former Member
0 Likes
606

You can make input obligatory.

And you can use parameters of the correct type. If you declare a parameter TYPE sy-datum, then, if the user doen't enter a proper date in the proper format, then the selection screen won't allow it. In many cases, the user won't be able to type in incorrect data.

Rob

Read only

Former Member
0 Likes
606

Hi

Its possible ...

Check below Code,,u can write this under At selection-screen on so_vbeln(eg)

  • Validate Delivery Document

AT SELECTION-SCREEN ON so_vbeln . " Delivery document

PERFORM validate_vbeln .

FORM validate_vbeln.

DATA : l_t_vbeln TYPE TABLE OF vbuk-vbeln WITH HEADER LINE ,

l_f_vbeln TYPE vbuk-vbeln .

RANGES ra_vbeln FOR vbuk-vbeln.

LOOP AT so_vbeln.

IF NOT so_vbeln-low IS INITIAL.

ra_vbeln-sign = 'I'.

ra_vbeln-option = 'EQ'.

ra_vbeln-low = so_vbeln-low.

APPEND ra_vbeln.

ENDIF.

IF NOT so_vbeln-high IS INITIAL.

ra_vbeln-sign = 'I'.

ra_vbeln-option = 'EQ'.

ra_vbeln-low = so_vbeln-high..

APPEND ra_vbeln.

ENDIF.

ENDLOOP .

IF NOT so_vbeln[] IS INITIAL.

SELECT vbeln INTO TABLE l_t_vbeln

FROM vbuk

WHERE vbeln IN ra_vbeln.

ENDIF.

LOOP AT so_vbeln.

IF so_vbeln-low <> space.

READ TABLE l_t_vbeln WITH KEY = so_vbeln-low.

IF sy-subrc <> 0.

SET CURSOR FIELD 'SO_vbeln-LOW'.

MESSAGE e001(vb) WITH so_vbeln-low.

ENDIF.

ENDIF.

IF so_vbeln-high <> space.

READ TABLE l_t_vbeln WITH KEY = so_vbeln-high.

IF sy-subrc <> 0.

SET CURSOR FIELD 'SO_vbeln-HIGH'.

MESSAGE e001(vb) WITH so_vbeln-high.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM. " validate_vbeln

Hope this Helps .

Praveen

Read only

Former Member
0 Likes
606

HI

Yes , there some evnts other than AT SELECTION-SCREEN which will validate the screen

i am listing here 2 examples

you can understand very easily

REPORT ZNNR_REPORT NO STANDARD PAGE HEADING MESSAGE-ID ZNNR LINE-SIZE 100 LINE-COUNT 65(4).

******DATA DECLARATIONS**********

DATA : BEGIN OF IT_PLANT OCCURS 0,

MATNR LIKE MARA-MATNR,

WERKS LIKE MARC-WERKS,

PSTAT LIKE MARC-PSTAT,

EKGRP LIKE MARC-EKGRP,

END OF IT_PLANT.

DATA : BEGIN OF IT_PONO OCCURS 0,

EBELN LIKE EKKO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

WERKS LIKE EKPO-WERKS,

LGORT LIKE EKPO-LGORT,

END OF IT_PONO.

TABLES EKKO.

********END OF DATA DECLARATIONS*********

********SELECTION SCREEN DESIGN ***********

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETER : P_WERKS LIKE MARC-WERKS MODIF ID S1.

SELECT-OPTIONS : S_EBELN FOR EKKO-EBELN NO INTERVALS MODIF ID S2.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-004.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS : R1 RADIOBUTTON GROUP G1 DEFAULT 'X'.

SELECTION-SCREEN COMMENT 5(20) TEXT-002 FOR FIELD R1.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS : R2 RADIOBUTTON GROUP G1.

SELECTION-SCREEN COMMENT 5(20) TEXT-003 FOR FIELD R2.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK B2.

******END OF SELECTION SCREEN DESIGN****************

*********INITIALIZATION OF SELECTION SCREEN ELEMENTS.*****

INITIALIZATION.

P_WERKS = '1000'.

S_EBELN-LOW = '4500016926'.

S_EBELN-OPTION = 'EQ'.

S_EBELN-SIGN = 'I'.

APPEND S_EBELN.

CLEAR S_EBELN.

************END OF INITIALIZATION***********************

***********SCREEN MODIFICATIONS*******************

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF R1 EQ 'X' AND SCREEN-GROUP1 EQ 'S2'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

IF R2 EQ 'X' AND SCREEN-GROUP1 EQ 'S1'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

********END OF SCREEN MODIFICATIONS*****************

*********VALIDATION FOR SCREEN FIELDS********************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_OBJID-LOW.

  • IF S_OBJID IS NOT INITIAL.

SELECT OTYPE OBJID FROM HRP1000

INTO TABLE IT_OBJID_SH

WHERE OTYPE = 'D'.

IF SY-SUBRC EQ 0.

  • SEARCH HELP FOR QUALIFICATION.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'OBJID'

  • PVALKEY = ' '

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'S_OBJID'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

TABLES

VALUE_TAB = IT_OBJID_SH

  • FIELD_TAB =

  • RETURN_TAB = RETURN_TAB

  • DYNPFLD_MAPPING =

  • EXCEPTIONS

  • PARAMETER_ERROR = 1

  • NO_VALUES_FOUND = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

.

  • IF SY-SUBRC NE 0.

  • MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA.' TYPE 'E'.

  • ENDIF.

*

  • ENDIF.

  • REFRESH IT_OBJID.

***************VALIDATION OF SCREEN FIELDS ENDS***********

<b>Reward if usefull</b>