Would like to discuss customization used in Acumatica Cloud ERP, specifically when more than one company are in a single database.
As you already know, we can setup multiple companies in a single database, by using Configuration Tool, based on Example from DEMO40 Instance:
I will navigate to Company Maintenance:
In my case there are 2 companies available for the end users: ID=2 and ID=3
So what if I need to customize Co3 and Co2 independently?
We should look at it from our system design prospective. We are using a single database, so if we say add a field to a table, and this table is say Customer. Then any company that are using this table will see this new column, it is basically because of the SQL Table design concept. IIS will pick up this column and show up in the Application. Tables are shared among all the database users, so here is:
Rule number One:
When Adding a new fields to a table, be prepared that all the companies from your Acumatica instance (sharing single DB) will see this field.
And immediately after it,
Rule number Two:
We can always use Access Rights on the selected Companies, to restrict the access to the field, if we want the only specific company to see it.
Another question - can we share or split functional customization?
Again, looking into design, we share the same Web Site for all these companies. We also share the same Application Pool. So, naturally, whatever I publish will be seen by all.
Rule number Three:
When Publishing customization, it will be seen to all Companies. Make sure all your companies are ready to use the same customization set.
But if you still wish to split functions, there is a workaround:
Rule number Four:
Please add hard coded logic into your customization to execute certain code only if CompanyID = <Desired Company>. To make sure you apply customization to specific company only. Something like this:
All the best,