ODC Migration

Pedro Marques
ITNEXT
Published in
4 min readFeb 14, 2024

--

If you are an OutSystems developer, you know that ODC is the future of development. Quite recently, OutSystems shared more details about how the migration process will occur, and here I’ll try to summarize that process.

The approach to the migration depends on your portfolio. If you have a small portfolio with less than 2 business apps and up to 300 AOs you can go for the one-shot migration, which consists of migrating your entire portfolio at once.

However, for bigger portfolios, there will be a phased approach to the migration, which means that new applications should be created in ODC, and O11 apps should be assessed and prepared for the migration, prioritizing the common use cases and only then progressing to the most complex cases.

Phased approach

The graph above represents the number of O11 apps vs. the number of ODC apps. At first, the portfolio is composed of O11 apps only, which should be migrated over time, giving its place to ODC apps.

Some O11 capabilities like BPTs and Multitenancy are not available as of this date (February 2024) in ODC, which means that apps that have these features should wait until there’s a corresponding feature or should be refactored.

The migration process will have 4 steps: Assessment, Code Preparation, Code Migration, and Data Migration.

Assessment

This phase will result in a list of changes needed to make your applications ODC-ready. To help, OutSystems has released a set of documents, and will soon release an automatic assessment tool that will help you identify all the changes needed.

All the changes can be found in the link above, but I’ll list here a few:

  1. System Tables

ODC will not have any system tables, which means that all functionalities that reference these tables needs to disappear, except for the User entity.

2. SOAP

At this time, ODC doesn’t support SOAP, so you must consider alternatives if this is used in your O11 apps.

However, it is still possible to consume SOAP, if necessary. For this, you’ll need to use an extension and consume the API with C# code.

3. Site properties

Site properties in ODC are Settings. The big difference is that in ODC they can’t be changed programmatically, so if this is the case in your O11 apps, you need to create tables where these values can be saved and edited.

4. Structures

ODC will still contain structures, but they can’t be shared between apps, meaning that a copy needs to be created everywhere you are consuming a structure.

5. Anonymous and Registered roles

ODC will not have the Anonymous and Registered roles, so you must remove any reference to these roles.

6. Public Server Actions

In ODC, server actions can be public on libraries, but not on web apps. This means that if you are sharing any Server Action in an O11 web app, you should refactor them to a Service Action.

7. Domain Drive Architecture

Adopting a domain-driven architecture within O11 allows your business application framework to align with ODC architecture principles, fostering application-independent lifecycles and robust ownership. This establishes a seamless transition route into the ODC cloud-native architecture, characterized by loosely coupled applications and libraries.

Once again, here you can find all the changes needed with more detail.

Code Preparation

This is the fun part! Once you know the changes each app needs it’s time to get your hands dirty.

If you need any help with this part, feel free to contact LINKIT. We can help you with your refactoring, including moving entities between modules, using our data mover.

Code Migration

Once the last step is finished, you can use the OutSystems conversion tool to convert your O11 apps into ODC apps automatically.

Data Migration

The last step will be moving the data to the new environment. For this, another automatic tool will be provided by OutSystems.

Key Takeaways

  • The migration will be a complex process to be done in a phased approach unless you have a small portfolio.
  • Not every O11 feature has a match in ODC.
  • Some features are still being delivered for ODC and the roadmap for this product is not 100% defined yet.
  • OutSystems will provide tools to facilitate the process.

--

--