web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Dynamics 365 Community / Blogs / DAXSEED / UK postcode integration wi...

UK postcode integration with D365 Ops (AX7)

SunilRakesh Profile Picture SunilRakesh 340
 Royal mail provides UK postcode data on subscription. This blog will demonstrate how to fetch postcode's Address, County, Town, Street, Premise level data integrates with form Organization Admin->Address setup -> Zip/postal code Tab.
1. Get the UK postcode web service. 
2. Create VS project, Add Service Reference of url "http://ws1.postcodesoftware.co.uk/lookup.asmx". 
3. Create static class of your own code.
4. Build solution, a .dll of postcode will be available.
5. Create New Dynamics AX project in VS with Class.
6. Add the Reference of postcode .dll to the project.
7. Create extension for LogisticsAddressSetup form.
8. Copy ZIpcode control's event onModified and past on the class.
9. write code as below.

using PostcodeProject; //.dll
class ZipCodeModified
{
[FormControlEventHandler(formControlStr(LogisticsAddressSetup, ZipCode), FormControlEventType::Modified)]
    public static void ZipCode_OnModified(FormControl sender, FormControlEventArgs e)
    {
        
        FormRun             element   = sender.formRun();         
        FormControl         zipcode   = element.design(0).controlName("ZipCode");
        String20            postcode;
        FormDataSource LogisticsAddressZipCode_DS = element.dataSource(formDataSourceStr(LogisticsAddressSetup, LogisticsAddressZipCode)) as FormDataSource;
        LogisticsAddressZipCode logisticsAddressZipCode = LogisticsAddressZipCode_DS.cursor();

        postcode = zipcode.valueStr();
       
PostcodeProject.MyPostcodeService.Lookup lookup      = new  PostcodeProject.MyPostcodeService.Lookup();
        PostcodeProject.MyPostcodeService.Address address    = new  PostcodeProject.MyPostcodeService.Address();
        
        address = lookup.getAddress("Test","Test",postcode);
        
        if(address)
        {            
            logisticsAddressZipCode.City        = address.Town;
            logisticsAddressZipCode.County      = address.County;
            logisticsAddressZipCode.StreetName  = address.Address1;
            logisticsAddressZipCode.State       = address.PremiseData;            
        }
        else
        {
            info("Postcode has no address.");
        }
        
    }

}

​Provide Postcode in Zip/ postal code field the rest highlighted fields will populate automatically.

Comments

*This post is locked for comments