OutSystems standards and guidelines at Synobsys

Logo

Standards, best practices and how-tos for developing OutSystems applications

How to setup a new domain in OutSystems

To setup a new domain follow these instructions.

Domain and Team setup

Define and register a domain prefix

To distinquish domains we will prefix all applications and modules with a three letter domain mnemonic. Try to use only consonants. And capatilise the mnemoning. E.g. Fields => FLD, Master Data Management => MDM

Create a LifeTime domain team

  1. Open LifeTime Teams <yourenvironment>/lifetime/Teams_List.aspx and click on New Teams 1 Enter the <domain prefix> and name e.g. FLD - Fields in the New Team field and fill the description
  2. Click on create
  3. You can now add users to the team with team specific permissions

Create LifeTime Applications

Each domain consist of a collection of LifeTime applications. A number of domain generic applications and a set of applications specific for a domain. We will now create the generic applications:

Create Domain Configuration application

Still in lifetime edit teams Create the domain Configuration Application by clicking Create Application

  1. Environment: Development
  2. What are you building: GlobalService
  3. Fill in your app’s basic info
    • Name: <DomainPrefix> + <domainname> + Foundation e.g. FLD Fields Foundation
    • Description: <domainname> + Foundation Services
    • Upload icon: A domain specific icon
    • Click on Create App

Create Domain Core Widgets application

Stll in lifetime edit teams Create the domain Configuration Application by clicking Create Application

  1. Environment: Development
  2. What are you building: GlobalUI
  3. Fill in your app’s basic info
    • Name: <DomainPrefix> + <domainname> + Core Widgets e.g. FLD Fields Core Widgets
    • Description: <domainname> + Core Widgets. Domain common widgets
    • Upload icon: A domain specific icon
    • Click on Create App

Create Canonical Model application

  1. Open team CDM Canonical Model
  2. click on create application:
    • type: ConceptUI
    • name: CDM <domain>
    • description <domain> canonical model
    • upload icon: <domainicon>

Setup a Domain Base Modules {CreateModules}

Each domain contains a set of base modules:

We now will create these modules using the provided module stencils.

Create a Domain Security Foundation Services module

  1. Go to Service Studio and open module (Ctrl+O) “Stencil_Domain_Security_FS”
  2. Click Module > Clone
  3. Close Module Stencil_Domain_Security_FS
  4. Rename the new module CloneOFStencil_Domain_Security_FS to <domainprefix> +”_” <domain> + “_Security_FS” e.g. FLD_Fields_Security_FS
  5. Rename Role SampleRole to a meaningfull role e.g. FieldsAdministrator
  6. Rename Service Action SampleRole_Check to <newRole_Check> e.g. FieldsAdministrator_Check
  7. Publish the module. This module is now placed in Application Independent Modules.
  8. Move this module to application “<domain> Foundation”

Create Domain Notifications Foundation Services Module

  1. Go to Service Studio and open module (Ctrl+O) “Stencil_Notifications_FS”
  2. Click Module > Clone
  3. Close Module Stencil_Domain_Configuration_FS
  4. Rename the new module CloneOFStencil_Domain_Configuration to <domainprefix> +”_” <domain> + “_Notifications_FS” e.g. FLD_Fields_Notificationsn_FS
  5. Delete the SAMPLE_Notification record from entity DomainNotification
  6. Add the required DomainNotifications
  7. Publish the module. This module is now placed in Application Independent Modules.
  8. Move this module to application “<domain> Foundation”

Create domain navigation module

  1. In service studio open module Stencil_DomainCoreWidgets_CW
  2. Click on Module > Clone
  3. Rename the CloneOfStencil_DomainCoreWidgets_CW to <domainprefix> + <domain> + “_Navigation_CW”
  4. Open manage dependencies <Ctrl+Q>
  5. Remove all dependencies to Stencil_Domain_Configuration_Lib
  6. Add dependency to <domain>_Configuration_FS
  7. Remove the Reminder from the datamodel diagram.
  8. Click on apply
  9. Check that there are no errors and no dependencies to Stencil_Domain_Configuration_Lib
  10. Rename the Domain_CommonBlocks ui flow to <domain>_CommonBlocks.
  11. Remove the rename reminder
  12. Check that there are no reminders or warnings in the TrueChange tab.
  13. 1-click publish the module