We adopted the 4-layer Canvas model, resulting in many different modules in UX, EU, Core and Lib layers.

After changing things in the lower layers, this means that a lot of consumers are immediately marked as outdated, with accompanying Truechange warnings - and sometimes LifeTime deployment errors.

This can be solved by manually going into the eSpace via Service Studio, clicking manage dependencies, refresh, publish. Again, repeated for all consumers in the above layers.

A simple change results in many iterations of these actions, thereby defeating the whole rapid development cycle.

Is there any way to automate this process for multiple eSpaces? 

If are breaking changes, for example a new attribute on a entity or new a parameter on a function you have to update references via service studio for each espace.

If aren't breaking changes like change a description of an action or attribute or just change the code of an action is only needed to publish via service center. Is also possible to update via solution publish on this context.

Describe that suggestion on ideas section, a functionality like that would very useful.

Is there a way to invoke actions that are attached to buttons in the Service Center from your module(like Redeploy last and etc)  or from the OS(by some API)? 


If I understand your question, you can create a solution in Service Center, with the applications that are concerned, and publish the solution. This ensures that everything will be published and the references updated. During this process no one can be working on the Modules concerned. I think this is what you are looking for, if I understand your question well.

Extra information:

It is a common practice in OutSystems Factory management to create and use a solution that contains all the components deployed on the environment. It is used to refresh references, republish eSpaces after an update/upgrade and for some troubleshooting tasks.

Here are the steps to create/update it and how to use it.

If you don't yet have an "All Components" solution:

  1. Go to Service Center, under Factory -> Solutions, click on "New Solution";
  2. Name it "All_Components";
  3. Go to the components Tab, in the text box type in an asterisk ('*');
  4. click the "Associate" button.

If you already have an "All Components" solution:

  1. Go to the components Tab, in the text box type in an asterisk ('*');
  2. click the "Associate" button.

Some notes on how to use it:

  • Whenever you want to republish your whole factory, remember to click the "Publish" button for the "Current Running Version"; 
  • There is generally no need to create tags for this solution: if you do, remember that publishing a tag may revert some applications to the version that was published when you tagged the solution;
  • All system components will be a part of this solution, except for Service Center: if you want to republish Service Center as well, run the SCInstall script located in your platform installation folder before publishing the "All_Components" solution.

Nuno Verdasca