Hi,
I have around 10 choice columns and the status reason which needs to be custom for different customer using same model driven app.
how to best handle a solution in Dataverse, with different Choice options per customer on the same App
i.e
Status Reason list needs to be A, B for Customer X
Status Reason list needs to be B, C, D for Customer Y
Status Reason list needs to be A, F, H for Customer Z
Users should not see other customer options.
Is the only way to manage this, to create unmanaged layer in Customer environments?
An unmanaged layer is probably the easiest way to handle this. Just remember to re-apply the unmanaged layer after solution upgrades.
you can also create a custom security role in your base solution for each customer. Then assign the role and check for it on form load via javascript. Use RemoveOption javascript code to adjust accordingly based on the logged in user’s security roles. This option makes your solution deployment and upgrade simpler but now you’re also adding technical debt to your core solution.
One option is to use JavaScript which can hide specific options of your choice from the picklist depending on the user. This is the best solution, however, it requires some coding skills. Please note the options will be hidden during editing the record on the form, but all options can be accessible through search features.
removeOption (Client API reference) in model-driven apps - Power Apps | Microsoft Learn
You can also create different picklist fields for specific users, and then create multiple forms for the same table. Then you can assign form availability depending on the current user's security role (and create a dedicated security role per customer). In your scenario, every customer (I assume the customer is the user of the app, not the record of type Account) will have a dedicated form with a specific set of fields.