Good day.

Is it possible to establish that the modules using the entities and database schemas of the external module create their own records for this database? And other modules do not have access to them?

For example:
Car Module - has entities and schema built around the car domain(car, engine, wheel).

There are 2 different applications that connect Car Module as a dependency - App A and App B.
And when I add new record about car in App A - App B will not know anything about this record.

Now I have a module (like a machine, just another subject area), which use 2 other modules. And when one of them adds an entry, the second knows about it. How can this be solved?

Solution

Hi Yuriy,

This is by design, the data model of all modules in an Environment is shared, as the applications are expected to be working together. Will your applications always work independently of each other? 

I can see at least two ways around this:

  • adding a "Source" attribute to all the Entities that would identify what was the original App creating the records. You'd need to make sure this attribute was filled correctly when creating a record, and also make sure that whenever you are reading those entities you filter by the right Source as well;
  • defining a different Tenant for each of your App A and B, and making sure your entities are multi-tenant. You can read more about Multi-Tenancy in OutSystems here.

Hope this helps

Solution

Hi Yuriy Korevikov,

Are the two modules using the same entity to store the results? I'd suggest for you to see if multitenancy is a possible solution to your question.

Regards,

Thank you so much.