Is Multi level multi tenancy possible in outsystems?

Hi Team,

Can we implement Multi-level multi-tenancy in outsystems ? If yes , then how ?


Regards,

Amreen



Hi Amreen,

https://www.outsystems.com/learn/lesson/1138/master-class-on-multi-tenancy/?LearningPathId=0

Ref above link that will provide better understanding on multi tenancy

Hi vignesh v,

Thank for replying. 

I want to know that Multi-Level - multi-tenancy possible with outsystems?



Regards,

Amreen

Hi Amreen,

What exactly do you expect Multi-Level Multi-Tenancy to be? The term is used frequently at PaaS providers but the definition changes per seller. So to be able to answer the question correctly it's good to know your expectation.

No that concept does not exists in OutSytems. You can define and use tenants. Not tenants in tenants. But I see no reason you could not implement what you want. You would need to make a custom tenant manager app in which you can maintain the multi level structure. When you need to query data for all subtenants of a tenant you will have to ensure you correctly filter this.

Daniël Kuhlmann wrote:

No that concept does not exists in OutSytems. You can define and use tenants. Not tenants in tenants. But I see no reason you could not implement what you want. You would need to make a custom tenant manager app in which you can maintain the multi level structure. When you need to query data for all subtenants of a tenant you will have to ensure you correctly filter this.


I want to implement the attached image structure. Please tell me what will be the best way and how to implement it?

I would suggest to create a TenantExtended entity and with Id is TenantID.

Then an extra attribute businessUnit

Then fill this attribute on Craete/Update of tenants manager app (that you have to make, download the Multitenancy Manager from the forge and clone and customize it).


Fill the attribute like this:

Company: A

CA1:       : A.1

CA2       :  A.2

CA3:      : A.3

Company: B

CB1:       : B.1

CB2       : B.2

CB3:      : B.3

Company: D

CD1:      : D.1

CD2       : D.2

CD3:      : D.3

This makes filtering over a company easy, this structure also allows for more than the two levels you pictured.

So if company CD1 has 2 sub companies

D.3.1

D.3.2


In the end each company is a tenant with its own users and data.

Accessing all data of all tenants will work out of the box.

Accessing data for all sub tenants of D you filter on "D.%"  

If you want to access company D data plus subtenant data you filter on "D%"


Regards,

Daniel