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...
| Concept | Description |
|---|---|
| Deployment | A project is deployed as a single unit (.flop file) |
| Version Control | A project is versioned together in Git |
| Sharing | Projects can be shared between organizations |
| Isolation | Projects provide namespace isolation |
| Documentation | Documentation generated per project |
Creating a Project
- Navigate to FlowOn → Projects
- Click New
- Enter project details:
- Name: Unique identifier (e.g.,
CustomerPortal) - Display Name: Friendly name
- Description: Project purpose
- Publisher Prefix: Solution prefix
- Name: Unique identifier (e.g.,
- Click Save
Project Contents
Logic Artifacts
| Artifact | Entity | Description |
|---|---|---|
| Logic Blocks | flwn_logicblock | Formulas, Decision Tables, Trees, Validations |
| Logic Flows | flwn_logicflow | Multi-step automation |
| Logic Recipes | flwn_logicrecipe | Event-driven triggers |
| Configurations | flwn_configuration | Environment settings |
| Localized Resources | flwn_localizedresource | Multi-language strings |
| Service Connections | flwn_serviceconnection | External APIs |
| Schedules | flwn_schedule | Timed jobs |
| Event Definitions | flwn_eventdefinition | Custom events |
| Event Handlers | flwn_eventhandler | Event subscribers |
Process Artifacts
| Artifact | Entity | Description |
|---|---|---|
| Business Processes | flwn_businessprocess | BPM process definitions |
| Process Versions | flwn_businessprocessversion | Version history |
API Artifacts
| Artifact | Entity | Description |
|---|---|---|
| APIs | flwn_api | API definitions |
| API Versions | flwn_apiversion | Version 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, notFormula1
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
- Integration Architecture - How products work together