back to top

Infor CRM Contour Geocode mapping

Starting in Infor CRM 8.3.04 they added a feature called Contour which can utilize either Google or Bing mapping APIs to geocode the ADDRESS table in Infor CRM and then allow you to map addresses and find other close records. Scott Weber has a nice demo of all the features here.

I wanted to get into a couple of gothchas and technical details of what this all means.

In the ADDRESS table there are now some new database fields:

  • GEOCODEPROVIDER
  • GEOCODELONGITUDE
  • GEOCODELATITUDE
  • GEOCODEFAILED

When the job service “GeoCodes” addresses it performs the following logic.

First it uses the following underlying SQL query to find the ADDRESS records it attempts to process:

select * from sysdba.ADDRESS
WHERE 
(
    (                    
		(
			GEOCODEPROVIDER is null or 
			GEOCODELATITUDE is null
		) 
        or 
		GEOCODELONGITUDE is null
    ) 
	and 
    (
		GEOCODEFAILED is null or 
		GEOCODEFAILED = 'F'
	)
) 
and not (ENTITYID is null)

Essentially it looks for any records where one of three fields are blank: GEOCODEPROVIDER, GEOCODELATITUDE, or GEOCODELONGITUDE. In addition the GEOCODEFAILED must either be null of “F”. Finally the ADDRESS record has to have a value in the ENTITYID column.

Using this recordset it then gets in an attempts to work with things.

There are 2 outcomes when geocoding:
FAILURE

  1. The GEOCODEFAILED column is set to T

SUCCESS

  1. The GEOCODEFAILED column is set to F
  2. The GEOCODEPROVIDER is set to “Bing” or “Google”.
  3. The GEOCODELONGITUDE is set to found Longitude from the service.
  4. The GEOCODELATITUDE is set to found Latitude from the service.

First it looks to see if the DESCRIPTION field is empty. If it is empty then it looks to see if this empty DESCRIPTION record is tied to a User record (The ENTITYID contains a USERID). If it does then it attempts to Geocode the address using the address service.

If the DESCRIPTION field is empty and it is not a user linked Address, then it skips this record altogether and does not attempt to geocode it. This is problematic because DESCRIPTION should not determine the validity of an address.

If the DESCRIPTION field is not empty, then it attempts to Geocode the address. It takes the component parts of the Address (Address1-Address6, City, State, Postalcode, Country/CountryCode) and if there is at least one data element for the address, it then passes this into the Geocode service API. If none of the attributes have a value then if FAILS the Geocoding without passing it to the service.

Both mapping APIs have threshold limits to how many addresses you can do daily. These limits depend on the API type purchased. If during processing, the job service detects you have reached the limit then the job exits.

In the compiled BusinessRules assembly, for the Address entity there is now also code in the OnBeforeUpdate event that if one of the following is changed:

  • Address1
  • Address2
  • City
  • State
  • PostalCode
  • Country
  • CountryCode

Then the GEOCODEFAILED is set to F. It then immediately calls Geocoding on this address.

Note: that it does not include a check for just Address3-Address6. If one of those changed it does not set the GEOCODEFAILED=F, nor does it attempt to GeoCode the Address.

Contact Customer FX for your CRM project
We let our expertise speak for itself - let us know how our all-star team can help on your CRM project
About the Author
Kris Halsrud
Kris Halsrud
Kris Halsrud is a Senior Analyst / Developer for Customer FX Corporation.

1 COMMENT

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Infor CRM Sync for Exchange: Action Required by August 31, 2026

Using Infor CRM Sync for Exchange with Microsoft 365? Your Exchange administrator must update tenant settings by August 31, 2026 to prevent sync disruption.

[Webinar] What’s Coming Next for Infor CRM SLX and Why v10 Matters

See what’s coming next for Infor CRM SLX, including new marketing workflows, automation improvements, and reasons to consider upgrading to v10.

Disable Caching in Infor CRM SLX Web Client

In the rare case caching is causing issues in the Infor CRM SLX web client, it is possible to disable specific types of caching by making edits using Application Architect, and then deploying.

Exploring AI Options for Infor CRM v10

I've started taking a closer look at the AI capabilities built into Infor CRM v10. Over the next several posts, I'll share what I learn. From the built-in features and supported AI providers to implementation considerations, costs, and practical use cases.

Infor CRM SLX 10.0: Delegate Ownership Changes for “Everyone” Records

Learn how the new EveryoneOwnerAssignment secured action in Infor CRM SLX 10.0 allows designated users to change ownership of Everyone-owned records without requiring Administrator access.

Related Articles

Infor CRM Sync for Exchange: Action Required by August 31, 2026

Using Infor CRM Sync for Exchange with Microsoft 365? Your Exchange administrator must update tenant settings by August 31, 2026 to prevent sync disruption.

[Webinar] What’s Coming Next for Infor CRM SLX and Why v10 Matters

See what’s coming next for Infor CRM SLX, including new marketing workflows, automation improvements, and reasons to consider upgrading to v10.

Disable Caching in Infor CRM SLX Web Client

In the rare case caching is causing issues in the Infor CRM SLX web client, it is possible to disable specific types of caching by making edits using Application Architect, and then deploying.

Exploring AI Options for Infor CRM v10

I've started taking a closer look at the AI capabilities built into Infor CRM v10. Over the next several posts, I'll share what I learn. From the built-in features and supported AI providers to implementation considerations, costs, and practical use cases.

Related Videos