I’m please to announce I finally released the first free and open source version of the Address Validation for M3, and I published the code on GitHub at https://github.com/M3OpenSource/AddressValidation . It’s a combination of a Mashup and a Script for Infor Smart Office, so it’s easy for you to modify, deploy, and run. Currently, it only supports the Google Geocoding API with more address providers to be added later.
I had implemented the first proprietary version of the script for Lawson Software in 2009. Then I had implemented several variants for various customers while working at Lawson Software and Infor. I’ve always wanted it to become available to more customers, so I decided to make it free and open source. But in order to not infringe any intellectual property and copyrights over the previous source code, I had to re-write everything from scratch. The opportunity came up when I quit Infor, and before I joined Ciber, in between the two, so there was no question on the ownership of the source code, and I had made an announcement. It took me a while but here it is. And I made some improvements over to the previous proprietary code.
The script is self-configurable for the following M3 Panels, i.e. just add the script to one of the supported M3 Panels and execute, without any modifications nor arguments:
- Customer. Open – CRS610/E
- Customer. Connect Addresses – OIS002/E
- Supplier. Connect Address – CRS622/E
- Customer Order. Connect Address – OIS102/E
- Internal Address. Open – CRS235/E1
- Company. Connect Division – MNS100/E
- Ship-Via Address. Open – CRS300/E
- Service Order. Connect Delivery Address – SOS005/E
- Shop. Open – OPS500/I
- Bank. Open – CRS690/E
- Bank. Connect Bank Branch Office – CRS691/E
- Equipment Address. Open – MOS272/E
Deploy locally and test
To start using the script, download the Mashup’s Manifest and XAML and the Script from the GitHub repository. Save the three files somewhere temporary on your computer. Then, install the Mashup locally using the Mashup Designer at designer://mashup (watch the video below), and run the Script with the Script Tool at mforms://jscript (watch the video below). Then, enter an address in M3, click the validate button (the little globe icon), you can also use the TAB key from Address line 1 to focus the button and press SPACE to click it, then the Mashup will pop-up with a list of possible matches, and select an address by pressing ENTER or double-clicking the address.
Here are some screenshots:
Here are some videos (watch in full-screen and high-definition for better view):
- How to deploy the Mashup locally
- How to test the Script
- Sample address searches:
Then, you can deploy the Mashup globally with LifeCycle Manager, and set the script to everybody with the Smart Office Personalization Manager in the Navigator widget > Administration tools.
There’s still more work to do. For instance, it appears the Google Geocoding API doesn’t follow the same format for all addresses, they’re local to each country, so right now we have to manually change the address layout based on the country, and I would like to improve that.
Also, I want to add a WebBrowser control to show the addresses in Google Maps.
Also, this first release only supports the Google Geocoding API. I want to add support for other address providers, like Experian QAS, FedEx, Microsoft Bing Maps, UPS, United States Postal Service, and local address providers like Pages Jaunes in France, and Eniro in Sweden.
If you like it, join the project and become a contributor!
Thibaud Lopez Schneider