Skip to main content

The Project Concept

FlowOn introduces the concept of a Project as the fundamental organizing unit for all FlowOn artifacts.

Project Structure

┌─────────────────────────────────────────────────────────────────────┐
│ FLOWON PROJECT │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ Project: CustomerServicePortal │
│ ───────────────────────────── │
│ │
│ ├── Logic/ │
│ │ ├── flwn_logicblock/ # Logic Blocks │
│ │ ├── flwn_logicflow/ # Logic Flows │
│ │ ├── flwn_logicrecipe/ # Logic Recipes │
│ │ ├── flwn_configuration/ # Configurations │
│ │ ├── flwn_localizedresource/ # Localized Resources │
│ │ ├── flwn_serviceconnection/ # Service Connections │
│ │ ├── flwn_schedule/ # Schedules │
│ │ ├── flwn_eventdefinition/ # Events │
│ │ └── flwn_eventhandler/ # Event Handlers │
│ │ │
│ ├── Process/ │
│ │ ├── flwn_businessprocess/ # BPM Processes │
│ │ └── flwn_businessprocessversion/ # Process Versions │
│ │ │
│ ├── Api/ │
│ │ ├── flwn_api/ # API Definitions │
│ │ └── flwn_apiversion/ # API Versions │
│ │ │
│ ├── Mappings/ │
│ │ ├── configuration.datamap.xml │
│ │ ├── entity.datamap.xml │
│ │ ├── localizedresources.datamap.xml │
│ │ └── serviceconnection.datamap.xml │
│ │ │
│ └── manifest.xml # Project metadata │
│ │
└─────────────────────────────────────────────────────────────────────┘

Project as Unit of...

ConceptDescription
DeploymentA project is deployed as a single unit (.flop file)
Version ControlA project is versioned together in Git
SharingProjects can be shared between organizations
IsolationProjects provide namespace isolation
DocumentationDocumentation generated per project

Creating a Project

  1. Navigate to FlowOn → Projects
  2. Click New
  3. Enter project details:
    • Name: Unique identifier (e.g., CustomerPortal)
    • Display Name: Friendly name
    • Description: Project purpose
    • Publisher Prefix: Solution prefix
  4. Click Save

Project Contents

Logic Artifacts

ArtifactEntityDescription
Logic Blocksflwn_logicblockFormulas, Decision Tables, Trees, Validations
Logic Flowsflwn_logicflowMulti-step automation
Logic Recipesflwn_logicrecipeEvent-driven triggers
Configurationsflwn_configurationEnvironment settings
Localized Resourcesflwn_localizedresourceMulti-language strings
Service Connectionsflwn_serviceconnectionExternal APIs
Schedulesflwn_scheduleTimed jobs
Event Definitionsflwn_eventdefinitionCustom events
Event Handlersflwn_eventhandlerEvent subscribers

Process Artifacts

ArtifactEntityDescription
Business Processesflwn_businessprocessBPM process definitions
Process Versionsflwn_businessprocessversionVersion history

API Artifacts

ArtifactEntityDescription
APIsflwn_apiAPI definitions
API Versionsflwn_apiversionVersion history

The .flop Package

When exported, a project becomes a .flop file:

CustomerPortal.flop/
├── Api/
│ ├── flwn_api/
│ └── flwn_apiversion/
├── Logic/
│ ├── flwn_configuration/
│ ├── flwn_eventdefinition/
│ ├── flwn_eventhandler/
│ ├── flwn_localizedresource/
│ ├── flwn_logicblock/
│ ├── flwn_logicflow/
│ ├── flwn_logicrecipe/
│ ├── flwn_schedule/
│ └── flwn_serviceconnection/
├── Mappings/
│ ├── configuration.datamap.xml
│ ├── entity.datamap.xml
│ ├── localizedresources.datamap.xml
│ └── serviceconnection.datamap.xml
├── Process/
│ ├── flwn_businessprocess/
│ └── flwn_businessprocessversion/
└── manifest.xml

Best Practices

Organize by Domain

Group related functionality:

✅ Good:
├── OrderManagement (orders, order lines, shipping)
├── CustomerManagement (accounts, contacts)
└── InventoryManagement (products, stock)

❌ Bad:
├── AllFormulas (all formulas mixed)
├── AllValidations (all validations mixed)
└── AllFlows (all flows mixed)

Keep Projects Focused

Each project should have a clear, single purpose.

Use Meaningful Names

  • Projects: OrderManagement, CustomerPortal
  • Logic Blocks: CalculateOrderDiscount, not Formula1

Version Thoughtfully

Follow semantic versioning:

  • Major (1.0.0 → 2.0.0): Breaking changes
  • Minor (1.0.0 → 1.1.0): New features
  • Patch (1.0.0 → 1.0.1): Bug fixes

Next Steps