I am trying to do something that I thought would be quite simple, create a dataverse table with a multiselect field against the User table. For example, adding a "CC" and "BCC" field where you can select multiple users for each field.
To my surprise, I am completely astonished by the fact that you cannot do this OOTB in Dataverse. A relational database system, where you cannot create a multi lookup to another table. To me this is insanity but I am posting to see If I missed any of the possible solutions for this as I am not satisfied with any of the custom solutions I tried so far:
#1 - PFC Control
There is some multiselect PCF controls out there that I tried, but the problem is they only work in forms. Once you add your field in a view you endup with either GUIDs representing the ID of the entity you selected in the form, or some kind of JSON. I saw some people creating a Flow dedicated at parsing the GUID or JSON values from the PCF to display names that can be added to another field used by the views. My problem with the flow is not only it is getting messy for such a small problem, but our solutions are deployed using pipelines, meaning they are owned by a service principal in production, that means any premium automated flow need a process licence at 2XX$/month which can be fine for a big solution, but I won't be paying that amount for a flow that copies values from one field to another that would be ridiculous.
Final thoughts, PCF is fine for the form but you still have a problem in the views, not a solution.
#2 - Custom Activity Table
Activity tables do come with "TO", "CC" and "BCC" fields of the "Party List", a system type which does the exact thing I am looking for but somehow we cannot create these types ourselves. I could create a custom activity table and reuse these fields or even rename them if needed but it just feels wrong. The ribbon is not the same, the buttons to simply create a new records are not the same, it would require some work with the ribbon in order to give the same experience as a regular table and I am unsure if I could hit other limitations in the long run?
#3 - Many to Many relation
Adding a many-to-many relation again does the job in the form, but I cannot display these in the view. Not only that, if I understood correctly, it's one relation for the whole record, meaning if I need two fields (like the CC and BCC example) to provide two different sets of users, I believe I cannot create 2 many-to-many relationships to the same systemuser table and manage them independently can I?
To conclude, I cannot find any solution that works for both forms and views.