UK postcode integration with D365 Ops (AX7)
Views (705)
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.
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.

Like
Report
*This post is locked for comments