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

VALIDATIONS???? HOW

Former Member
0 Likes
536

WHAT IS THE PROCESS FOR VAILDATIONS GIVE ME A EXAMPLE

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
507

Please check the documentation for transaction OB28.

Rob

3 REPLIES 3
Read only

Former Member
0 Likes
508

Please check the documentation for transaction OB28.

Rob

Read only

Former Member
0 Likes
507

&----


*& Report ZNNR_REPORT

*&

&----


*&

*&

&----


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*****************

***************SCREEN VALIDATIONS *****************

at selection-screen.

SELECT SINGLE *

FROM EKKO

INTO EKKO

WHERE EBELN IN S_EBELN.

IF SY-SUBRC <> 0.

SET CURSOR FIELD 'S_EBELN-LOW'.

MESSAGE E999 WITH TEXT-005.

ENDIF.

********end of screen validation*****************

START-OF-SELECTION.

*set pf-status '100'.

IF R1 EQ 'X'.

SELECT MATNR

WERKS

PSTAT

EKGRP

FROM MARC

INTO TABLE IT_PLANT

WHERE WERKS = P_WERKS.

LOOP AT IT_PLANT.

WRITE : SY-VLINE , 2 IT_PLANT-MATNR COLOR COL_KEY,

21 SY-VLINE , 22 IT_PLANT-WERKS COLOR COL_KEY,

27 SY-VLINE ,28 IT_PLANT-PSTAT COLOR COL_NORMAL,

43 SY-VLINE ,44 IT_PLANT-EKGRP COLOR COL_NORMAL.

ENDLOOP.

ENDIF.

IF R2 EQ 'X'.

SELECT EBELN EBELP MATNR WERKS LGORT

FROM EKPO

INTO TABLE IT_PONO

WHERE EBELN IN S_EBELN.

LOOP AT IT_PONO.

WRITE : SY-VLINE , 2 IT_PONO-EBELN COLOR COL_KEY,

12 SY-VLINE , 13 IT_PONO-EBELP COLOR COL_KEY,

18 SY-VLINE , 19 IT_PONO-MATNR COLOR COL_NORMAL,

37 SY-VLINE , 38 IT_PONO-WERKS COLOR COL_NORMAL,

44 SY-VLINE , 45 IT_PONO-LGORT COLOR COL_NORMAL, 49 SY-VLINE..

ENDLOOP.

ENDIF.

TOP-OF-PAGE.

IF R1 EQ 'X'.

*ULINE AT /1(48).

WRITE : SY-VLINE ,2 'MATERIAL NUMBER',

21 SY-VLINE , 22 'PLANT',

27 SY-VLINE , 28 'STATUS',

43 SY-VLINE , 44 'GRUP', 48 SY-VLINE.

ULINE AT /1(48).

ENDIF.

IF R2 EQ 'X'.

WRITE : SY-VLINE , 2 'PO NUMBER',

12 SY-VLINE, 13 'ITEM',

18 SY-VLINE,19 'MATERIAL NUMBER',

37 SY-VLINE, 38 'PLANT',

44 SY-VLINE, 45 'GRUP',

49 SY-VLINE.

ULINE AT /1(50).

ENDIF.

END-OF-PAGE.

ULINE AT /1(50).

WRITE :/10 'PAGE NUMBER', SY-PAGNO.

Read only

Former Member
0 Likes
507

HI

with this events we can do validations

Hi ,

AT SELECTION-SCREEN OUTPUT .

AT SELECTION-SCREEN .

AT SELECTION-SCREEN ON <field>

AT SELECTION-SCREEN ON BLOCK <block>

AT SELECTION-SCREEN ON HELP-REQUEST FOR <field>

AT SELECTION-SCREEN ON VALUE-REQUEST FOR <field>

AT SELECTION-SCREEN ON RADIOBUTTON GROUP <radi>

AT SELECTION-SCREEN ON END OF <seltab>

Refer the following code:

*----


  • SELECTION SCREEN

*----


SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-020.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001 .

PARAMETERS: p_locl RADIOBUTTON GROUP g1 " desktop file

DEFAULT 'X' USER-COMMAND fil,

p_phys RADIOBUTTON GROUP g1. " appln server file

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002 .

PARAMETERS: p_ifile TYPE dxfile-filename LOWER CASE, " source file

p_afile TYPE dxfile-filename LOWER CASE, " asset class file

p_cfile TYPE dxfile-filename LOWER CASE, " Cost center file

p_dfile TYPE dxfile-filename LOWER CASE, " Depr key file

p_ofile TYPE dxfile-filename LOWER CASE. " Audit file

SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-015.

PARAMETERS: p_test RADIOBUTTON GROUP g2 DEFAULT 'X', " test run

p_create RADIOBUTTON GROUP g2. " data migretion

SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN END OF BLOCK b4.

*----


  • AT SELECTION-SCREEN

*----


AT SELECTION-SCREEN.

PERFORM check_screen USING p_ifile p_afile p_cfile p_dfile

p_ofile p_locl p_phys.

&----


*& Form check_screen

&----


  • text

----


FORM check_screen USING p_ifile1 TYPE dxfile-filename

p_afile1 TYPE dxfile-filename

p_cfile1 TYPE dxfile-filename

p_dfile1 TYPE dxfile-filename

p_ofile1 TYPE dxfile-filename

p_locl1 TYPE any p_phys1 TYPE any .

IF sy-ucomm EQ 'FIL'.

CLEAR:p_ofile1, p_ifile1, p_afile1, p_cfile1, p_dfile1.

EXIT.

ENDIF.

IF p_ifile1 IS INITIAL.

SET CURSOR FIELD 'P_IFILE1'.

MESSAGE e000 WITH text-013.

ENDIF.

IF p_afile1 IS INITIAL.

SET CURSOR FIELD 'P_AFILE1'.

MESSAGE e000 WITH text-068.

ENDIF.

IF p_cfile1 IS INITIAL.

SET CURSOR FIELD 'P_CFILE1'.

MESSAGE e000 WITH text-069.

ENDIF.

IF p_dfile1 IS INITIAL.

SET CURSOR FIELD 'P_DFILE1'.

MESSAGE e000 WITH text-070.

ENDIF.

IF p_ofile1 IS INITIAL.

SET CURSOR FIELD 'P_OFILE1'.

MESSAGE e000 WITH text-014.

ENDIF.

IF p_phys1 EQ 'X'.

CLEAR: g_file_flag.

g_file_flag = 'I'.

PERFORM check_phys_file USING p_ifile1.

g_file_flag = 'A'.

PERFORM check_phys_file USING p_afile1.

g_file_flag = 'C'.

PERFORM check_phys_file USING p_cfile1.

g_file_flag = 'D'.

PERFORM check_phys_file USING p_dfile1.

ELSEIF p_locl1 EQ 'X'.

CLEAR: g_file_flag.

g_file_flag = 'I'.

PERFORM check_local_file USING p_ifile1.

g_file_flag = 'A'.

PERFORM check_local_file USING p_afile1.

g_file_flag = 'C'.

PERFORM check_local_file USING p_cfile1.

g_file_flag = 'D'.

PERFORM check_local_file USING p_dfile1.

ENDIF.

ENDFORM. " check_screen

&----


*& Form check_phys_file

&----


  • Validation of Physical File

----


FORM check_phys_file USING p_file TYPE any.

DATA: l_str(300) TYPE c.

CLEAR l_str.

OPEN DATASET p_file IN TEXT MODE FOR INPUT ENCODING DEFAULT.

IF sy-subrc <> 0.

IF g_file_flag = 'I'.

MESSAGE e000 WITH text-021.

ELSEIF g_file_flag = 'A'.

MESSAGE e000 WITH text-095.

ELSEIF g_file_flag = 'C'.

MESSAGE e000 WITH text-096.

ELSEIF g_file_flag = 'D'.

MESSAGE e000 WITH text-097.

ENDIF.

ENDIF.

READ DATASET p_file INTO l_str.

IF sy-subrc <> 0.

IF g_file_flag = 'I'.

MESSAGE e000 WITH text-017.

ELSEIF g_file_flag = 'A'.

MESSAGE e000 WITH text-098.

ELSEIF g_file_flag = 'C'.

MESSAGE e000 WITH text-099.

ELSEIF g_file_flag = 'D'.

MESSAGE e000 WITH text-100.

ENDIF.

ENDIF.

CLEAR: g_file_flag.

CLOSE DATASET p_file.

ENDFORM. " check_phys_file

&----


*& Form check_local_file

&----


  • Validation of Local File

----


FORM check_local_file USING p_file TYPE any.

DATA: l_size TYPE i.

CLEAR: l_size.

CALL FUNCTION 'TMP_GUI_GET_FILE_EXIST'

EXPORTING

fname = p_file

IMPORTING

  • exist = l_exist

filesize = l_size

EXCEPTIONS

fileinfo_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

IF g_file_flag = 'I'.

MESSAGE e000 WITH text-016.

ELSEIF g_file_flag = 'A'.

MESSAGE e000 WITH text-101.

ELSEIF g_file_flag = 'C'.

MESSAGE e000 WITH text-102.

ELSEIF g_file_flag = 'D'.

MESSAGE e000 WITH text-103.

ENDIF.

ENDIF.

IF l_size IS INITIAL.

IF g_file_flag = 'I'.

MESSAGE e000 WITH text-024.

ELSEIF g_file_flag = 'A'.

MESSAGE e000 WITH text-107.

ELSEIF g_file_flag = 'C'.

MESSAGE e000 WITH text-108.

ELSEIF g_file_flag = 'D'.

MESSAGE e000 WITH text-109.

ENDIF.

ENDIF.

CLEAR: g_file_flag.

ENDFORM. " check_local_file