The “Hidden” Features of Solutions

The “Hidden” Features of Solutions

  
Hi,


This thread is intended to discuss about the “hidden” features and use patterns of the Solutions concept introduced in Service Center with the OutSystems Platform 4.0.

Besides allowing the easy migration of Solutions from one Hub Server to another, the Solutions also allow you to do other nice things. One of these so called “hidden” features is the lock of a set of specific Component versions among themselves.

Imagine you have two Solutions in the same Hub Server and that you are developing over only one of them. As the other Solution is stable and not under development, you probably don’t want to touch it.

Now, imagine that both the Solutions share some Component, say, the Widget Library, and that you need to change it in the scope of your development but don’t want to break the other stable Solution. Service Center can aid you in this task.

As Solution Versions actually lock a set of Component versions, if you are consuming a specific version of the Widget Library and create a Solution Version, then no matter what you do in your factory, when you publish that created Solution Version, the specific Widget Library version will be published and all its consumers inside the Solution Version will use that specific version. This way, if by any chance you actually need to, for instance, fix a bug in the stable Solution and don’t want to bother about the changes in the Widget Library, you just have to publish the Solution’s last known ok version before making these changes.

Remember tough, that the References mechanism implies a contract between the producer and the consumer. If that contract is broken probably it underlies some good reason, hence it is a best practice for the consumer to use the newer version of the producer.


Hope this information is useful,
Cheers,


Rodrigo Castelo
That feature to lock eSpace versions in a Solution is cool!

Only one question. What about the Data Model? Those different version will share the same tables? Or we have to create a multi-tenant eSpace or something?

Cya
Hi António,


This "lock" is simply an accelerator for you to rollback to a previous version of your Solution (set of eSpaces and Extensions). As such, when you publish an older Solution Version, the eSpaces are "regularly" published, hence the data model will be updated accordingly.

The straight answer to your question is yes, the different version will share the same tables. You don’t have to create any multi-tenant eSpace.


Cheers,

Rodrigo Castelo