Microsoft_MVP_banner

How to validate Email and URL through X++

With default functionality in AX, Email address and URL can be of any format and these do not get validated as per their respective correct formats.

Existing functionality


Accounts receivable | Common/Customers | All customers | Customer form | Under Contact information fast tab

Someone can put Email address in any format as I did “faisal” which is not a correct format of email address. Same applies for URL under contact information for customers.

Customized functionality


I created a new class with two static methods to validate these attributes as follows by taking concept from this blog post

/// <summary>
///    Class to validate Logistics Electronic
Address using Regex
/// </summary>
class LogiscticsElectronicAddressValidator
{
} 
/// <summary>
///    This method accepts a EMail and validates
this using REGEX
/// </summary>
/// <returns>
///    true or false based on Regex match
/// </returns>
Static Server
boolean validateEMail(EMail    _eMail)
{
    Boolean  
xppBool;
   
System.Boolean netBool;
    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})$”;
   
System.Text.RegularExpressions.Match
myMatch;
    ;
    new
InteropPermission(InteropKind::ClrInterop).assert();
    myMatch =
System.Text.RegularExpressions.Regex::Match(_eMail,MatchEmailPattern);
    netBool =
myMatch.get_Success();
    xppBool =
netBool;
   
CodeAccessPermission::revertAssert();
    Return
xppBool;
} 
/// <summary>
///    This method accepts a URL and validates
this using REGEX
/// </summary>
/// <returns>
///    true or false based on Regex match
/// </returns>
Static Server
boolean validateURL(URL    _url)
{
    Boolean  
xppBool;
   
System.Boolean netBool;
    Str matchURLPattern = “^(https?://)”
        + “?(([0-9a-z_!~*'().&=+$%-]+:
)?[0-9a-z_!~*'().&=+$%-]+@)?”
//user@
        + @”(([0-9]{1,3}.){3}[0-9]{1,3}” // IP- 199.194.52.184
        + “|” //
allows either IP or domain
        + @”([0-9a-z_!~*'()-]+.)*” // tertiary domain(s)- www.
        + @”([0-9a-z][0-9a-z-]{0,61})?[0-9a-z].” // second level domain
        + “[a-z]{2,6})” // first level domain- .com or .museum
        + “(:[0-9]{1,4})?” // port number- :80
        + “((/?)|” //
a slash isn’t required if there is no file name
        + “(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$”;
   
System.Text.RegularExpressions.Match
myMatch;
    new
InteropPermission(InteropKind::ClrInterop).assert();
    myMatch =
System.Text.RegularExpressions.Regex::Match(_url,matchURLPattern);
    netBool =
myMatch.get_Success();
    xppBool =
netBool;
   
CodeAccessPermission::revertAssert();
    Return xppBool;

}

To call these methods you need to override two methods (ModifiedField and ValidateField) in LogisticsElectronicAddress table.

After implementing this solution you will get error on entering invalid email and URL addresses.

Share:

Related Posts

Microsoft Copilot
admin

Exploring Microsoft Copilot Architecture

Microsoft Copilot isn’t just another AI tool; it’s a comprehensive platform designed to be your indispensable companion, enhancing productivity, fostering creativity, and facilitating information comprehension all through a user-friendly chat interface. The concept of Copilot emerged two years ago when Microsoft introduced GitHub Copilot, aiming to assist developers in writing

Read More »
How to enable new Microsoft teams - Public Preview!
Microsoft Teams
Faisal Fareed

How to enable new Microsoft teams – Public Preview!

New Microsoft Teams is just AWESOME, quick but useful post below shows how you have this preview feature to make your life EASY!  Open Microsoft Teams admin center [Ask admin in your organization if you don’t have access] and follow path Teams > Teams update policies > Click on an existing

Read More »

Send Us A Message

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Post

Exploring Microsoft Copilot Architecture

Exploring Microsoft Copilot Architecture

Microsoft Copilot isn’t just another AI tool; it’s a comprehensive platform designed to be your indispensable companion, enhancing productivity, fostering creativity, and facilitating information comprehension all through a user-friendly chat interface. The concept of Copilot emerged two years ago when Microsoft introduced GitHub Copilot, aiming to assist developers in writing…

How to enable new Microsoft teams – Public Preview!

How to enable new Microsoft teams – Public Preview!

New Microsoft Teams is just AWESOME, quick but useful post below shows how you have this preview feature to make your life EASY!  Open Microsoft Teams admin center [Ask admin in your organization if you don’t have access] and follow path Teams > Teams update policies > Click on an existing…

Electronic Reporting: Send vendor payments to external azure storage via X++

Electronic Reporting: Send vendor payments to external azure storage via X++

Electronic Reporting module in Microsoft Dynamics 365 Finance Operation lets you archive file generated by ER at SharePoint location and in Azure Storage as per this link Archive ER destination type – Finance & Operations | Dynamics 365 | Microsoft Learn. APIs can be used to check message status and read…

FaisalFareed@2025. All rights reserved

Design by T3chDesigns