Purpose:
The purpose of this post is to demonstrate how can we validate the data entry of email addresses.
Product:
Dynamics 365 for Finance and Operations
Description:
The code below uses regular expressions to validate the data entry of email addresses by hooking up a ValidatedField event handler to LogisticsElectronicAddress table.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | /// <summary> /// This method accepts a email and validates this using REGEX /// </summary> /// <returns> /// true or false based on Regex match /// </returns> static server boolean isValidEmail(Email _email) { System.Text.RegularExpressions.Match match; System.Boolean netBool; boolean xppBool; str matchEmailPattern = @"^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@" + @"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]? [0-9]{1,2}|25[0-5]|2[0-4][0-9])\." + @"([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]? [0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|" + @"([\w-]+\.)+[a-zA-Z]{2,4})$" ; new InteropPermission(InteropKind::ClrInterop).assert(); match = System.Text.RegularExpressions.Regex::Match(_email, matchEmailPattern); netBool = match.get_Success(); xppBool = netBool; CodeAccessPermission::revertAssert(); return xppBool; } /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> [DataEventHandler(tableStr(LogisticsElectronicAddress), DataEventType::ValidatedField)] public static void LogisticsElectronicAddress_onValidatedField(Common sender, DataEventArgs e) { LogisticsElectronicAddress logisticsElectronicAddress = sender; ValidateFieldEventArgs validateFieldEventArgs = e as ValidateFieldEventArgs; LogisticsElectronicAddressLocator locator; boolean ret = validateFieldEventArgs.parmValidateResult(); if (ret) { switch (validateFieldEventArgs.parmFieldId()) { case fieldNum(LogisticsElectronicAddress, Locator): if (logisticsElectronicAddress.Type == LogisticsElectronicAddressMethodType::Email) { locator = logisticsElectronicAddress.Locator; if (!LogisticsElectronicAddress_SXSExtension::isValidEmail(locator)) { ret = checkFailed( "Email address is invalid." ); } } break ; default : break ; } } validateFieldEventArgs.parmValidateResult(ret); } |
Comments
Post a Comment