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

email address validation

Former Member
0 Likes
1,756

Hi every one ......see my code

*  ----------------------------------------------------------------------*

*  &                    Start of selection                               *

*  ----------------------------------------------------------------------*

   START-OF-SELECTION.

     SELECT LIFNR

           LAND1

           NAME1

           NAME2

           NAME3

           NAME4

           ORT01

           ORT02

           PFACH

           PSTL2

           PSTLZ

           REGIO

           SORTL

           STRAS

       FROM LFA1

       INTO TABLE IT_LFA1

       WHERE LIFNR IN S_LIFNR.

*      AND   SPRAS = SY-LANGU.                   "Message language

   END-OF-SELECTION.

     DATA: unstruct TYPE sx_address.

     unstruct-type = 'INT'.

     unstruct-address = p_email.

     CALL FUNCTION 'SX_INTERNET_ADDRESS_TO_NORMAL'

       EXPORTING

         ADDRESS_UNSTRUCT           unstruct

*   COMPLETE_ADDRESS           = 'X'

* IMPORTING

*   ADDRESS_NORMAL             =

*   LOCAL                      =

*   DOMAIN                     =

*   COMMENT                    =

*   ADDR_NORMAL_NO_UPPER       =

      EXCEPTIONS

        ERROR_ADDRESS_TYPE         = 1

        ERROR_ADDRESS              = 2

        ERROR_GROUP_ADDRESS        = 3

        OTHERS                     = 4

               .

     IF SY-SUBRC <> 0.

       message  'Please enter valid email address' TYPE 'I'.

     else.

       message 'Email address is valid' TYPE 'I'.

     ENDIF.

     PERFORM TRAITEMENT.

     PERFORM CONVERSION.

*  &---------------------------------------------------------------------*

*  &      Form  TRAITEMENT

*  &---------------------------------------------------------------------*

*         text

*  ----------------------------------------------------------------------*

*    -->  p1        text

*    <--  p2        text

*  ----------------------------------------------------------------------*

   FORM TRAITEMENT .

     PERFORM OPEN_FORM.

*    LOOP AT it_lfa1 INTO wa_lfa1.

     PERFORM WRITE_FORM.

*    ENDLOOP.

     PERFORM CLOSE_FORM.

   ENDFORM.                    " TRAITEMENT

*  &---------------------------------------------------------------------*

*  &      Form  OPEN_FORM

*  &---------------------------------------------------------------------*

*         text

*  ----------------------------------------------------------------------*

*    -->  p1        text

*    <--  p2        text

*  ----------------------------------------------------------------------*

   FORM OPEN_FORM .

     ITCPO-TDGETOTF = 'X'.                           "Return of OTF table. No printing, display, or faxing

     STRUCT-TDDEST = 'LP01'.                         "Spool: Output device

     STRUCT-TDNOPREV = 'X'.                          "No print preview

*To access the SAP Script output in OTF format

     STRUCT-TDGETOTF = 'X'.

     CALL FUNCTION 'OPEN_FORM'

      EXPORTING

*       APPLICATION                       = 'TX'

*       ARCHIVE_INDEX                     =

*       ARCHIVE_PARAMS                    =

        DEVICE                            = 'PRINTER'

        DIALOG                            = SPACE

        FORM                              = 'ZPHF_VMS1'

        LANGUAGE                          = sy-langu        "Message language

        OPTIONS                           = STRUCT

*       MAIL_SENDER                       =

*       MAIL_RECIPIENT                    =

*       MAIL_APPL_OBJECT                  =

*       RAW_DATA_INTERFACE                = '*'

*       SPONUMIV                          =

*     IMPORTING

*       LANGUAGE                          = sy-langu

*       NEW_ARCHIVE_PARAMS                =

*       RESULT                            =

*     EXCEPTIONS

*       CANCELED                          = 1

*       DEVICE                            = 2

*       FORM                              = 3

*       OPTIONS                           = 4

*       UNCLOSED                          = 5

*       MAIL_OPTIONS                      = 6

*       ARCHIVE_ERROR                     = 7

*       INVALID_FAX_NUMBER                = 8

*       MORE_PARAMS_NEEDED_IN_BATCH       = 9

*       SPOOL_ERROR                       = 10

*       CODEPAGE                          = 11

*       OTHERS                            = 12

               .

     IF SY-SUBRC <> 0.

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

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

     ENDIF.

   ENDFORM.                    " OPEN_FORM

*  &---------------------------------------------------------------------*

*  &      Form  WRITE_FORM

*  &---------------------------------------------------------------------*

*         text

*  ----------------------------------------------------------------------*

*    -->  p1        text

*    <--  p2        text

*  ----------------------------------------------------------------------*

   FORM WRITE_FORM .

     CALL FUNCTION 'WRITE_FORM'

      EXPORTING

        ELEMENT                        = 'HEADER1'

*     FUNCTION                       = 'SET'

*     TYPE                           = 'BODY'

        WINDOW                         = 'HEADER'.

     CALL FUNCTION 'WRITE_FORM'

      EXPORTING

        ELEMENT                        = 'LINE'

*     FUNCTION                       = 'SET'

*     TYPE                           = 'BODY'

        WINDOW                         = 'LINE_HD'.

     LOOP AT IT_LFA1 INTO WA_LFA1.

       CALL FUNCTION 'WRITE_FORM'

        EXPORTING

          ELEMENT                        = 'NEW-PAGE'

*     FUNCTION                       = 'SET'

*     TYPE                           = 'BODY'

          WINDOW                         = 'MAIN'.

     ENDLOOP.

   ENDFORM.                    " WRITE_FORM.

*  &---------------------------------------------------------------------*

*  &      Form  CLOSE_FORM

*  &---------------------------------------------------------------------*

*         text

*  ----------------------------------------------------------------------*

*    -->  p1        text

*    <--  p2        text

*  ----------------------------------------------------------------------*

   FORM CLOSE_FORM .

     CALL FUNCTION 'CLOSE_FORM'

     IMPORTING

     RESULT                         = I_ITCPP                "SAPscript output parameters

*     RDI_RESULT                     =

    TABLES

      OTFDATA                        = T_OTF

      EXCEPTIONS

      UNOPENED                       = 1

      BAD_PAGEFORMAT_FOR_PRINT       = 2

      SEND_ERROR                     = 3

      SPOOL_ERROR                    = 4

      CODEPAGE                       = 5

        OTHERS                         = 6

               .

     IF SY-SUBRC <> 0.

       W_ERREUR = W_ERREUR + 1.

     ENDIF.

   ENDFORM.                    "CLOSE_FORM

*  ENDLOOP.                   " CLOSE_FORM

*  &---------------------------------------------------------------------*

*  &      Form  CONVERSION spool to pdf format

*  &---------------------------------------------------------------------*

*         text

*  ----------------------------------------------------------------------*

*    -->  p1        text

*    <--  p2        text

*  ----------------------------------------------------------------------*

   FORM CONVERSION .

     DATA: l_xstring TYPE xstring.

     CALL FUNCTION 'CONVERT_OTF'

      EXPORTING

        FORMAT                      = 'PDF'

        MAX_LINEWIDTH               = 132

*     ARCHIVE_INDEX               = ' '

*     COPYNUMBER                  = 0

*     ASCII_BIDI_VIS2LOG          = ' '

*     PDF_DELETE_OTFTAB           = ' '

*     PDF_USERNAME                = ' '

        IMPORTING

        BIN_FILESIZE                = BINFILESIZE

        BIN_FILE                    = l_xstring

       TABLES

         OTF                         T_OTF

         LINES                       = PDFTAB[]         "SAPscript: Text LINES

* EXCEPTIONS

*   ERR_MAX_LINEWIDTH           = 1

*   ERR_FORMAT                  = 2

*   ERR_CONV_NOT_POSSIBLE       = 3

*   ERR_BAD_OTF                 = 4

*   OTHERS                      = 5

               .

     IF sy-subrc = 0.

       DATA send_request  TYPE REF TO cl_bcs.                "CLASS INTERFACE - Business Communication Service

       DATA document      TYPE REF TO cl_document_bcs.       "CLASS INTERFACE - Wrapper Class for Office Documents

       DATA recipient     TYPE REF TO if_recipient_bcs.      "INTERFACE - Interface of Recipient Object in BCS

       DATA bcs_exception TYPE REF TO cx_bcs.                "CLASS INTERFACE - CX_STATIC_CHECK.

       DATA pdf_size      TYPE so_obj_len.                   "Size of Document Contents

       DATA pdf_content   TYPE solix_tab.                    "GBT: SOLIX as Table Type

       DATA pdf_xstring   TYPE xstring.

       DATA sent_to_all   TYPE os_boolean.

       DATA:   l_document  TYPE REF TO cl_document_bcs.   " Mail body

       TRY.

*-------- create persistent send request ------------------------

           send_request = cl_bcs=>create_persistent( ).

*-------- create and set document -------------------------------

           pdf_content = cl_bcs_convert=>xstring_to_solix( l_xstring ).

           pdf_size = BINFILESIZE "v_len_in.

           DATA:l_text TYPE bcsy_text.                " Mail body

           APPEND 'Hi,' TO l_text.

           APPEND 'The vendor master details are attached for further reference.' to l_text.

           Append 'Regards,' to l_text.

           APPEND 'Meenakshi.' to l_text.

*      append 'Hello world!' to text.

           document = cl_document_bcs=>create_document(

                           i_type    = 'RAW'

                           i_text    = l_text

                           i_length  = '12'

                           i_subject = 'Vendor Master details') .

           CALL METHOD document->add_attachment

             EXPORTING

               i_attachment_type    = 'PDF'

               i_attachment_subject = 'Vendor Master Details'

               i_att_content_hex    = pdf_content.

*     add document object to send request

           send_request->set_document( document ).

*     --------- add recipient (e-mail address) -----------------------

*     create recipient object

           recipient = cl_cam_address_bcs=>create_internet_address( p_email ).

*     add recipient object to send request

           send_request->add_recipient( recipient ).

           SEND_REQUEST->SET_SEND_IMMEDIATELY( 'X' ).

*     ---------- send document ---------------------------------------

           sent_to_all = send_request->send( i_with_error_screen = 'X' ).

           COMMIT WORK.

           IF sent_to_all IS INITIAL.

              MESSAGE i500(sbcoms) WITH p_email.

           ELSE.

            MESSAGE s022(so).

           ENDIF.

*   ------------ exception handling ----------------------------------

*   replace this rudimentary exception handling with your own one !!!

         CATCH cx_bcs INTO bcs_exception.

           MESSAGE i865(so) WITH bcs_exception->error_type.

       ENDTRY.

     ENDIF.

   ENDFORM.   

Here the problem iam facing is for incorrect email also the input showing the message that 'document was send'....pls reply me

1 ACCEPTED SOLUTION
Read only

alok_patra
Product and Topic Expert
Product and Topic Expert
0 Likes
1,567

Hi,

Try SX_INTERNET_ADDRESS_TO_NORMAL

TYP: INT

Address: xxx.xxx@xxx.xxx

Thanks

8 REPLIES 8
Read only

FredericGirod
Active Contributor
0 Likes
1,567

The email validation only check if the character @ is present in the variable.

you could do this only with a CHECK statement

regards

Fred

Read only

manukapur
Active Participant
0 Likes
1,567

Check for the pattern <string>@.<String> into your email address field.

This is the basic check for email address validation.

Regards,

Manu

Read only

alok_patra
Product and Topic Expert
Product and Topic Expert
0 Likes
1,568

Hi,

Try SX_INTERNET_ADDRESS_TO_NORMAL

TYP: INT

Address: xxx.xxx@xxx.xxx

Thanks

Read only

Private_Member_49934
Product and Topic Expert
Product and Topic Expert
0 Likes
1,567

If you want that the email should not be sent incase the email id is not correct then, throw message type 'E'.

IF SY-SUBRC <> 0. 

       message  'Please enter valid email address' TYPE 'E''.

     else.

       message 'Email address is valid' TYPE 'I'.

     ENDIF.

Read only

former_member196490
Active Participant
0 Likes
1,567

You would need to code the checks for email address seperately. check for '@' in validation and based on result display the error message

Read only

Former Member
0 Likes
1,567

Hi Meenakshi,

pls check the below code :

PARAMETERS email TYPE c LENGTH 30 LOWER CASE DEFAULT 'test@gamil.com'.

DATA matcher TYPE REF TO cl_abap_matcher.

matcher = cl_abap_matcher=>create(

              pattern = `\w+(\.\w+)*@(\w+\.)+(\w{2,4})`

              ignore_case = 'X'

              text = email ).

IF matcher->match( ) is INITIAL.

   MESSAGE 'Wrong Format' TYPE 'I'.

ELSE.

   MESSAGE 'Format OK' TYPE 'I'.

ENDIF.

Read only

Former Member
0 Likes
1,567

What is the condition that you are seeing that is making your email "Incorrect"?

Neal

Read only

0 Likes
1,567

It seems pretty clear that the correctness of your messaging depends on the statement

IF sent_to_all IS INITIAL.

Clearly if you have a problem, this is where it is...

Neal