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

Reg : Logic

Former Member
0 Likes
865

Hi Experts ,

When try 2 execute the follwoing code : its not Validating the date ??

The follwing code has to validate the date i.e entered by the user ..

when i enter value 19.12.2005

on the screen , it has to give the values for only 19.12.20005

but it is giving all th values ...

SELECT OBJECT_ID

AR_DATE

INTO TABLE T_TOA01

FROM TOA01

FOR ALL ENTRIES IN T_NAST

WHERE AR_DATE EQ T_NAST-DATVR

AND AR_DATE IN S_DATVR.

Regs ,

Murthy

Hi Experts ,

When try 2 execute the follwoing code : its not Validating the date ??

The follwing code has to validate the date i.e entered by the user ..

when i enter value 19.12.2005

on the screen , it has to give the values for only 19.12.20005

but it is giving all th values ...

SELECT OBJECT_ID

AR_DATE

INTO TABLE T_TOA01

FROM TOA01

FOR ALL ENTRIES IN T_NAST

WHERE AR_DATE EQ T_NAST-DATVR

AND AR_DATE IN S_DATVR.

Regs ,

Murthy

6 REPLIES 6
Read only

Former Member
0 Likes
838

hi,

U r using two dates.Can u plz send the code clearly.

Read only

0 Likes
838

HI this is the full code ...

************************************************************************

  • TABLES DECLARATIONS *

************************************************************************

TABLES : NAST,TOA01.

************************************************************************

  • DECLARATIONS FOR TYPES *

************************************************************************

TYPES : BEGIN OF TP_NAST1,

KAPPL TYPE NAST-KAPPL,

OBJKY TYPE NAST-OBJKY,

KSCHL TYPE NAST-KSCHL,

DATVR TYPE NAST-DATVR,

UHRVR TYPE NAST-ERUHR,

NACHA TYPE NAST-NACHA,

VSTAT TYPE NAST-VSTAT,

END OF TP_NAST1.

TYPES : BEGIN OF TP_TOA011,

OBJECT_ID TYPE TOA01-OBJECT_ID ,

AR_DATE TYPE TOA01-AR_DATE ,

END OF TP_TOA011.

TYPES : BEGIN OF TP_MISS1,

KAPPL TYPE NAST-KAPPL ,

OBJKY TYPE NAST-OBJKY ,

KSCHL TYPE NAST-KSCHL,

DATVR TYPE NAST-DATVR,

END OF TP_MISS1.

************************************************************************

  • DECLARATIONS FOR INTERNALTABLES *

************************************************************************

DATA : T_NAST TYPE STANDARD TABLE OF TP_NAST1,

T_TOA01 TYPE STANDARD TABLE OF TP_TOA011,

T_MISS TYPE STANDARD TABLE OF TP_MISS1.

************************************************************************

  • WORK AREA DECLARATIONS *

************************************************************************

DATA : WA_NAST TYPE TP_NAST1,

WA_TOA01 TYPE TP_TOA011,

WA_MISS TYPE TP_MISS1.

***********************************************************************

  • GLOBAL VARIABLE DECLARATIONS *

***********************************************************************

DATA : W_KAPPL TYPE NAST-KAPPL,

W_KSCHL TYPE NAST-KSCHL,

W_DATVR TYPE NAST-DATVR.

************************************************************************

  • CONSTANTS DECLARATIONS *

************************************************************************

CONSTANTS : C_X TYPE C VALUE 'X',

C_E TYPE C VALUE 'E',

C_I TYPE C VALUE '1'.

***********************************************************************

  • SELECTION SCREENS *

***********************************************************************

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

SELECT-OPTIONS:S_KAPPL FOR W_KAPPL OBLIGATORY NO INTERVALS NO-EXTENSION,

S_KSCHL FOR W_KSCHL NO INTERVALS NO-EXTENSION OBLIGATORY,

S_DATVR FOR W_DATVR .

PARAMETERS : NAST1 AS CHECKBOX DEFAULT 'X' MODIF ID ABC ,

TOA0 AS CHECKBOX MODIF ID DEF ,

MISS AS CHECKBOX MODIF ID GHI .

SELECTION-SCREEN END OF BLOCK BLCK1.

***********************************************************************

  • SELECTION SCREEN VALIDATIONS *

***********************************************************************

AT SELECTION-SCREEN ON S_KAPPL.

IF S_KAPPL[] IS NOT INITIAL.

SELECT SINGLE KAPPL

FROM NAST

INTO W_KAPPL

WHERE KAPPL IN S_KAPPL.

IF SY-SUBRC NE 0.

MESSAGE W000 DISPLAY LIKE C_E WITH TEXT-005.

ENDIF.

ENDIF.

AT SELECTION-SCREEN ON S_KSCHL.

IF S_KSCHL[] IS NOT INITIAL.

SELECT SINGLE KSCHL

FROM NAST

INTO W_KSCHL

WHERE KSCHL IN S_KSCHL.

IF SY-SUBRC NE 0.

MESSAGE W000 DISPLAY LIKE C_E WITH TEXT-006.

ENDIF.

ENDIF.

AT SELECTION-SCREEN ON S_DATVR.

IF S_DATVR[] IS NOT INITIAL.

SELECT SINGLE DATVR

FROM NAST

INTO W_DATVR

WHERE DATVR IN S_DATVR.

IF SY-SUBRC NE 0.

MESSAGE W000 DISPLAY LIKE C_E WITH TEXT-007.

ENDIF.

ENDIF.

TOP-OF-PAGE.

WRITE : /45 'NAST TABLE ENTRIES' COLOR 5.

SKIP 1.

WRITE :/1 'SERIAL NO' COLOR 5,

12 'APPLICATION' COLOR 5,

25 'OBJECT KEY' COLOR 5,

39 'MESSAGE TYPE' COLOR 5,

52 'DATE' COLOR 5,

69 'TIME' COLOR 5,

80 'TRANSMISSION' COLOR 5,

95 'STATUS' COLOR 5.

SKIP 1.

************************************************************************

  • START OF SELECTION *

************************************************************************

START-OF-SELECTION.

IF NAST1 = C_X.

PERFORM GET_DATA.

ENDIF.

IF TOA0 = C_X.

PERFORM COM_DATA.

ENDIF.

IF MISS = C_X.

PERFORM MISS_DATA.

ENDIF.

***********************************************************************

  • END OF SELECTION *

************************************************************************

&----


*& Form GET_DATA *

&----


  • Text : THIS FORM IS USED TO FETCH THE DATA FROM THE DATABASE *

  • TABLE NAST. *

----


FORM GET_DATA.

CLEAR T_NAST.

SELECT KAPPL

OBJKY

KSCHL

DATVR

UHRVR

NACHA

VSTAT

INTO TABLE T_NAST

FROM NAST

WHERE KAPPL IN S_KAPPL

AND KSCHL IN S_KSCHL

AND DATVR IN S_DATVR

AND VSTAT EQ C_I

AND NACHA EQ C_I.

IF sy-subrc NE 0.

MESSAGE S000 DISPLAY LIKE C_E WITH TEXT-004.

LEAVE LIST-PROCESSING.

ENDIF.

SORT T_NAST BY OBJKY .

LOOP AT T_NAST INTO WA_NAST.

WRITE : / SY-TABIX UNDER 'SERIAL NO',

WA_NAST-KAPPL UNDER 'APPLICATION' ,

WA_NAST-OBJKY UNDER 'OBJECT KEY',

WA_NAST-KSCHL UNDER 'MESSAGE TYPE',

WA_NAST-DATVR UNDER 'DATE',

WA_NAST-UHRVR UNDER 'TIME',

WA_NAST-NACHA UNDER 'TRANSMISSION',

WA_NAST-VSTAT UNDER 'STATUS'.

ENDLOOP.

SKIP 2.

WRITE : /9 'TOTAL NUMBER OF NAST TABLE ENTRIES ARE ::',SY-DBCNT.

SKIP 2.

ENDFORM. "GET_DATA

&----


*& Form COM_DATA

&----


  • text

----


FORM COM_DATA.

  • CLEAR T_TOA01.

SELECT OBJECT_ID

AR_DATE

INTO TABLE T_TOA01

FROM TOA01

FOR ALL ENTRIES IN T_NAST

WHERE AR_DATE EQ T_NAST-DATVR

AND AR_DATE IN S_DATVR.

IF sy-subrc NE 0.

MESSAGE S000 DISPLAY LIKE C_E WITH TEXT-004.

LEAVE LIST-PROCESSING.

ENDIF.

WRITE : /45 'LINK TABLE ENTRIES' COLOR 5.

SKIP 1.

WRITE :/1 'SERIAL NO' COLOR 5,

12 'OBJECT NUMBER' COLOR 5,

32 'DATE' COLOR 5.

LOOP AT T_TOA01 INTO WA_TOA01.

WRITE : / SY-TABIX UNDER 'SERIAL NO',

WA_TOA01-OBJECT_ID UNDER 'OBJECT NUMBER',

WA_TOA01-AR_DATE UNDER 'DATE'.

ENDLOOP.

SKIP 2.

IF T_TOA01 IS NOT INITIAL .

WRITE : /9 'TOTAL NUMBER OF LINK TABLE ENTRIES ARE ::',SY-DBCNT.

SKIP 1.

ELSE.

WRITE : / ' NO ENTRIES IN THE LINK TABLE ' ,SY-DBCNT.

ENDIF.

ENDFORM. "COM_DATA

&----


*& Form MISS_DATA

&----


  • text

----


FORM MISS_DATA.

LOOP AT T_NAST INTO WA_NAST.

READ TABLE T_TOA01 INTO WA_TOA01 WITH KEY AR_DATE = WA_NAST-DATVR.

IF SY-SUBRC NE 0.

APPEND WA_NAST TO T_MISS.

ENDIF.

ENDLOOP.

WRITE : /45 ' MISSING ENTRIES' COLOR 5.

SKIP 1.

WRITE :/1 'SERIAL NO' COLOR 5,

12 'APPLICATION' COLOR 5,

25 'OBJECT KEY' COLOR 5,

39 'MESSAGE TYPE' COLOR 5,

49 'DATE' COLOR 5.

SORT T_MISS BY OBJKY.

LOOP AT T_MISS INTO WA_MISS.

WRITE : / SY-TABIX UNDER 'SERIAL NO',

WA_MISS-KAPPL UNDER 'APPLICATION',

WA_MISS-OBJKY UNDER 'OBJECT KEY ',

WA_MISS-KSCHL UNDER 'MESSAGE TYPE',

WA_MISS-DATVR UNDER 'DATE'.

ENDLOOP.

SKIP 2.

WRITE : /9 'TOTAL NUMBER OF MISSGING ENTRIES ARE ::', SY-TFILL.

ENDFORM. "MISS_DATA

Read only

Former Member
0 Likes
838

Hi,

By debugging check the values are coming properly in S_DATVR

Reward if useful!

Read only

Former Member
0 Likes
838

HI

You are entering the date in wrong format thats why it's giving all the data

Try entering the date as 20051219 ie yyyymmdd.

regards

ravish

PS: Reward if useful

Read only

Former Member
0 Likes
838

Hi,

>>but it is giving all th values ...

This happens only when the parameter passed to the query is empty,

Check if the select query is getting the proper date from T_NAST.

Regards,

Samson Rodrigues.

Read only

Former Member
0 Likes
838

Hello,

Before checking for the validity you have to do the following,

Try this.

Regards,

Rakesh.


CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
  EXPORTING
    date_external                  = wrk_edate "EG: 20.05.2005
*   ACCEPT_INITIAL_DATE            =
 IMPORTING
   DATE_INTERNAL                  = wrK_idate
 EXCEPTIONS
   DATE_EXTERNAL_IS_INVALID       = 1
   OTHERS                         = 2
          .
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.