D365 F&O requires a different approach to customizations than what we were normally accustomed to in AX. One of the most important changes is that we are no longer able to overlayer our code, we now need to create extensions that will work with Microsoft’s upgrade cadence.
Lucky for us there exists an extremely useful feature in D365 F&O to improve the customizations for specific countries and maintain the functionalities working only for the needed countries.
Today I would like to talk about the CountryRegionCodes property, this property allows us to keep the functionalities separated by geographic region.
This allows displaying or hiding of functionality/objects depending on the legal entity that is selected and the Country it is configured in.
You may find the CountryRegionCodes property in the following Application Object Tree (AOT) elements:
- Extended data type
- Menu and menu items
- Enum and enum value
- Table and table field
- Data entity and data entity field
- View and view field
- Map and map field
- Form control
- Tile
For example: in the next standard table in AX 2012 we have the property for the table Accountant_BR set to “BR” (Brazil). In this case this table only appears in the Menu for the Legal entity that has the Primary Address with Brazil Country .
In D365 F&O we have the same property for the list of the same objects before and it’s a set of powerful features we need to use, for example, Develop Customizations like Localizations for specific Countries (LATAM Localizations in my case)
Table for Ecuador Localization
Primary Address of Legal Entity.
The list of Country Codes is based on ISO 3166-1 alpha-2, you can find the complete list here.
In Pangea Group we have our Localization products work with this functionality and others that we will mention in the following posts.
Utilizing this approach in conjunction with other best practices we are able to maintain more than one Localization within the same environment without having to maintain multiple code sets that simplify implementation and speeds up end-user adoption.