Advice on Factory Solutions

Advice on Factory Solutions

Hi all,

I'm new to Outsystems, am using Community Edition and have run out of Software Units.  I want to test out a provided CRM App (Cases) but the code/experiments I have already written push the SU count over the 30,000 limit when attempting to install the Cases app.  So what I want to do is to save my written code externally in such a way that I can restore it once I've finished looking at Cases.

What I need is some advice on how to do that.  I've searced the Forums and Help and it *seems* that the thing called a Solution is what I need.  Is there some documentation on this somewhere that I've missed?  If not, can someone please verify that what I need to do is the following:
  1. Call up Service Centre / Factory / Solutions, then click on New Solutions.
  2. Type in a Name and optional Description then click Save.
  3. Click on the Components tab then type out the names of all eSpaces I want to export/archive into the field after "Associate Components with Solution", then click on the Associate button.
  4. Click on the Create Version button.
  5. From the Solution <MyNewSolution> / Versions tab, click on the Download button next to the "Current Running Version".  Once the table showing the steps done (incl Packing Solution), click on the Download button to generate a *.osp file which can then be stored on your computer.
(Note that as an O.S. newbie, it is quite unclear just where all this stuff is happening, eg. where does the Solution exist before it is downloaded?  Also, why does a Solution do eSpaces but not Applications?  And is there any relationship between an Application and a Solution?)

Once this is all done, I can then go back to my localhost service Studio, call up my Application and Delete it, which also deletes all the enclosed eSpaces.  This is the only way I've found to reclaim the Software Units (using the Community Edition).  Am I wrong?

When I want to resurrect my eSpaces, I do the following:
  1. Go to service Centre, click on Factory / Solutions, then Upload & Publish a Solution.
  2. Click on the Browse button to go find and select the *.osp file which was created in step 5 above.
  3. Click on the Upload button.  If all goes well, your archived-and-deleted eSpaces will then be restored.
Somehow, magically it seems, the Application that contained the deleted eSpaces is also recreated.  I didn't specify this application when I created the Solution, but maybe the Outsystems server keeps track of these things?

Any clarifications / pointers / documentation will be very gratefully received.

Hi Nic,

What you've described above as a way to temporarily free up soace in the community edition will work - I used the same process myself when I was first learning OutSystems through the community edition. The most important thing is that the eSpaces you developed and want to keep are all in the "components" list in the solution definition. If any appear in the "dependencies" tab then you can tick them and click "make component" to transfer them to the components list. (For example, if you developed eSpaces A and B, and A depended on B, and you only added A to the solution, then A would appear in components and B would appear in dependencies to be begin with.

The other thing to bear in mind is what will happen to any data you've created through your application. That data will currently be in a set of physical database tables with particular names. When the eSpaces are deleted the tables will remain in the database. But when you upload and publish the .osp solution, the tables will be recreated using new table names, and its the new (empty) tables that your application will connect with. So you may also need to export and re-import your data too (assuming you've built that capability into your application).

The applications info is embedded within the solution .osp file, including any icons you associated with the application definitions, as well as the eSpace info within, so the server itself doesn't need to remember anything about the solution in between export and re-importing.

I appreciate it sounds a bit scary deleting your work, so it might be worth considering another option for exploring the CRM application: you could set up an instance of OutSystems in the cloud and use that. Go to and have a look at our current offers. These things tend to change over time as we adapt to what our users need and advances in what we can offer, but right now (21/01/2014) there is the option to set up a free 15 day trial in the cloud. You could try out the CRM app in your cloud instance (you just connect to it thorugh Service Studio using its cloud domain name, instead of connecting to localhost) and you could then keep all your current work in your local community edition (including any data).

Kind regards,

Andy Burgess
Solutions Engineer,
OutSystems UK.
Hi Nic,

Just to complement Andy's great answer, you can also export the eSpace modules from the Cases app an open them in Service Studio without the need to publish them. If you already installed the cases app just open each eSpace module and export it using Ctrl+S or the Export option on the eSpace menu, after that you can delete the Cases application and open the files from disk.