You've hit a common challenge when implementing Dynamics 365 Field Service (and other Power Platform apps) in multilingual environments for setup tables like Priority, Incident Type, and Booking Status. Unfortunately, standard lookup fields in Dynamics 365 do not inherently support multilingual values out-of-the-box.
Your observation is correct: setting up all possible language variations as separate options within a single lookup field leads to significant issues with data consistency, reporting, and user experience.
Here are the recommended approaches and best practices for handling multiple languages for setup tables in Dynamics 365 Field Service:
1. Using Localized Labels for Option Sets (Recommended for Option Sets):
For fields that use Option Sets (like Priority), Dynamics 365 has built-in multilingual support. You can define localized labels for each option value.
msdyn_priority
).
2. Creating Separate Localized Entities and Relationships (Best Approach for Lookups):
For lookup fields like Booking Status and Incident Type (which link to tables), the most robust and scalable approach is to create separate entities to hold the localized values and establish relationships.
Booking Status (Localized)
Booking Status (Language)
(Lookup to the Language entity - OOB)Booking Status Value
(Lookup to the main Booking Status
entity - OOB or custom if you created it)Localized Label
(Single Line of Text)Booking Status
entity to the Booking Status (Localized)
entity (e.g., msdyn_bookingstatus_localized
).Booking Status
entity, you would create corresponding records in the Booking Status (Localized)
entity for each language you support, linking them back to the main record and providing the translated Localized Label
.Localized Label
from the related Booking Status (Localized)
entity based on the user's preferred language. This often involves using FetchXML with linked entities.Booking Status Value
(the lookup to the main table). For displaying language-specific text in notifications or other automated processes, you would need to query the Booking Status (Localized)
entity based on the target user's language.Incident Type (Localized)
with a link to the main Incident Type
entity and a Localized Label
.
3. Using a Configuration Entity with JSON (More Complex):
A more complex approach involves creating a custom configuration entity where you store the multilingual values for your setup tables in a structured format (e.g., JSON).
Localized Text Configuration
Entity Name
, Record ID
, Language
, Localized Value
Why the Localized Entities Approach is Generally Preferred for Lookups:
Addressing Your Business Rule Requirement:
For your business rule scenario ("if it contains data, then continue"), you would typically apply the rule to the underlying lookup field (e.g., the Booking Status
lookup). The presence of a value in the lookup field indicates that a Booking Status has been selected, regardless of the displayed language. The localized text field is primarily for user display.
Implementation Considerations:
Language
entity (languagelocale
) that you can leverage for storing and referencing supported languages.User Settings
entity stores each user's preferred language. You can retrieve this information in code or FetchXML to display the correct translations.In summary, while standard lookup fields don't support multilingual values directly, the best way to handle this for setup tables like Booking Status and Incident Type is to create separate localized entities with relationships to the base tables. For Option Sets (like Priority), utilize the built-in localized labels feature. This ensures a consistent and user-friendly experience across your multi-country, multi-language Field Service implementation.
Siv Sagar
104
Super User 2025 Season 1
Daivat Vartak (v-9d...
51
Super User 2025 Season 1
Engy Louis
37