Multi-table lookups, a long awaited and much requested feature, are now live (Preview) for use via API. Multi-table lookups (also sometimes known as polymorphic lookups) allow the creation of a lookup in one table that looks up records in multiple other tables at once. This provides much greater flexibility in retrieving data within your environments.
Imagine you are trying to create a lookup that lets you check out media to users. You have a table of Books, a table of Audio offerings, and a table of Video offerings. Prior to this, there was no easy way to create a lookup that would pull data from all three tables at once, and you may end up with three separate lookups:
- Checkout-> Books
- Checkout-> Audio
- Checkout-> Video
What if you were searching for both the physical book and audio book for a title you wanted? What if you wanted to find the soundtrack to a movie and a movie? What if a friend recommended a movie to you but also said the book was great? Looking this data up across multiple tables would require individual lookups, require you to search and populate shared IDs into your checkout table, or write a custom solution.
With multi-table lookups, you can perform a lookup on 2 or more tables at the same time and locate the record you want from the referenced tables. These lookups are all 1 to many relationships and will work in a similar way as the Customer lookup that is built into Dataverse, where Customer look ups search both Account and Contact.
Using these multi-table lookups can reduce development time for your apps and provide a more streamlined user interface. For the current preview:
- Lookups can be constructed and managed through API only
- Model driven apps currently provide the best experience with the lookups
Maker UI support for creation and management is coming soon, and improved canvas app support is planned for the future.
To learn more about multi-table lookups please see the following document: