- Revised the README to provide a comprehensive overview of the Corrad ProcessMaker platform, including its purpose, key components, and technology stack. - Added detailed sections on the Process Builder and Form Builder, outlining their functionalities and features. - Introduced a new documentation structure with dedicated files for user guides, technical appendices, and development guidelines. - Created documentation for the Process Builder and Form Builder, including user instructions, component descriptions, and integration details. - Enhanced the overall organization and clarity of the documentation to assist developers and users in navigating the platform effectively.
255 lines
5.1 KiB
Markdown
255 lines
5.1 KiB
Markdown
# Process Builder Improvements
|
|
|
|
## Overview
|
|
This document outlines the planned improvements for the Process Builder core components. The improvements are designed to be manageable and maintainable while adding essential functionality.
|
|
|
|
## Variable System
|
|
|
|
### 1. Global Variables
|
|
```javascript
|
|
{
|
|
name: 'string',
|
|
type: 'string|number|boolean|object|array',
|
|
defaultValue: any,
|
|
description: 'string',
|
|
scope: 'global',
|
|
isRequired: boolean,
|
|
isReadOnly: boolean
|
|
}
|
|
```
|
|
|
|
### 2. Process Variables
|
|
```javascript
|
|
{
|
|
name: 'string',
|
|
type: 'string|number|boolean|object|array',
|
|
defaultValue: any,
|
|
description: 'string',
|
|
scope: 'process',
|
|
isRequired: boolean,
|
|
isReadOnly: boolean,
|
|
direction: 'in|out|inout' // for process arguments
|
|
}
|
|
```
|
|
|
|
### 3. Task/Form Arguments
|
|
```javascript
|
|
{
|
|
name: 'string',
|
|
type: 'string|number|boolean|object|array',
|
|
defaultValue: any,
|
|
description: 'string',
|
|
direction: 'in|out|inout',
|
|
isRequired: boolean,
|
|
validation: {
|
|
rules: [],
|
|
customValidation: 'string' // custom validation script
|
|
}
|
|
}
|
|
```
|
|
|
|
## Core Components Improvements
|
|
|
|
### 1. Start Event
|
|
```javascript
|
|
{
|
|
type: 'start',
|
|
data: {
|
|
description: 'Process start point',
|
|
triggerType: 'manual', // manual, scheduled
|
|
schedule: null, // for scheduled triggers
|
|
variables: {
|
|
input: [], // process input arguments
|
|
output: [] // process output arguments
|
|
},
|
|
globalVariables: [] // global variables used in this process
|
|
}
|
|
}
|
|
```
|
|
|
|
### 2. End Event
|
|
```javascript
|
|
{
|
|
type: 'end',
|
|
data: {
|
|
description: 'Process end point',
|
|
resultType: 'success', // success, error
|
|
variables: {
|
|
input: [], // variables required for end event
|
|
output: [] // variables to be returned
|
|
},
|
|
returnValues: [] // values to return to calling process
|
|
}
|
|
}
|
|
```
|
|
|
|
### 3. Task
|
|
```javascript
|
|
{
|
|
type: 'task',
|
|
data: {
|
|
description: 'A general task',
|
|
assignee: '',
|
|
taskType: 'manual', // manual, automated
|
|
priority: 'medium', // low, medium, high
|
|
dueDate: null,
|
|
variables: {
|
|
input: [], // task input arguments
|
|
output: [] // task output arguments
|
|
},
|
|
notifications: {
|
|
onAssign: true,
|
|
onComplete: true
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### 4. Form Task
|
|
```javascript
|
|
{
|
|
type: 'form',
|
|
data: {
|
|
description: 'Form submission task',
|
|
formId: null,
|
|
formName: null,
|
|
formSettings: {
|
|
allowDraft: true,
|
|
autoSave: true
|
|
},
|
|
variables: {
|
|
input: [], // form input arguments
|
|
output: [] // form output arguments
|
|
},
|
|
dataMapping: {
|
|
input: [], // map process variables to form
|
|
output: [] // map form to process variables
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### 5. Gateway
|
|
```javascript
|
|
{
|
|
type: 'gateway',
|
|
data: {
|
|
description: 'Decision gateway',
|
|
conditions: [],
|
|
defaultPath: 'Default',
|
|
gatewayType: 'exclusive', // exclusive, parallel
|
|
variables: {
|
|
input: [], // variables needed for conditions
|
|
output: [] // variables to pass to next node
|
|
},
|
|
timeout: {
|
|
enabled: false,
|
|
duration: 0
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## New Core Components
|
|
|
|
### 1. Script Task
|
|
```javascript
|
|
{
|
|
type: 'script',
|
|
data: {
|
|
description: 'Execute custom script',
|
|
scriptType: 'javascript',
|
|
script: '',
|
|
variables: {
|
|
input: [], // script input arguments
|
|
output: [] // script output arguments
|
|
},
|
|
timeout: 30 // seconds
|
|
}
|
|
}
|
|
```
|
|
|
|
## Implementation Priority
|
|
|
|
### Phase 1 - Essential Improvements
|
|
1. Implement basic variable system
|
|
- Global variables
|
|
- Process variables
|
|
- Task/Form arguments
|
|
2. Add basic trigger types to Start Event
|
|
3. Add result types to End Event
|
|
4. Add task priorities and due dates
|
|
5. Add form settings for drafts and auto-save
|
|
|
|
### Phase 2 - Enhanced Features
|
|
1. Add variable validation system
|
|
2. Add data mapping for forms
|
|
3. Add script task component
|
|
4. Add timeout handling
|
|
5. Add notifications system
|
|
|
|
### Phase 3 - Advanced Features
|
|
1. Add subprocess component
|
|
2. Add advanced gateway conditions
|
|
3. Add process templates
|
|
4. Add process versioning
|
|
5. Add process analytics
|
|
|
|
## Variable System Features
|
|
|
|
### 1. Variable Types
|
|
- String
|
|
- Number
|
|
- Boolean
|
|
- Object
|
|
- Array
|
|
- Date
|
|
- File
|
|
- Custom types
|
|
|
|
### 2. Variable Scopes
|
|
- Global (accessible across all processes)
|
|
- Process (accessible within a process)
|
|
- Task/Form (accessible within a task/form)
|
|
- Local (accessible within a script)
|
|
|
|
### 3. Variable Operations
|
|
- Create/Delete
|
|
- Read/Write
|
|
- Copy/Move
|
|
- Transform
|
|
- Validate
|
|
- Persist
|
|
|
|
### 4. Variable Passing
|
|
- Process to Process
|
|
- Task to Task
|
|
- Form to Process
|
|
- Script to Process
|
|
- Gateway Conditions
|
|
|
|
## Notes
|
|
- Keep improvements focused on essential functionality
|
|
- Maintain backward compatibility
|
|
- Ensure easy maintenance
|
|
- Document all new features
|
|
- Add proper validation
|
|
- Include error handling
|
|
- Implement proper variable scoping
|
|
- Add variable type checking
|
|
- Include variable persistence
|
|
|
|
## Future Considerations
|
|
- Process templates
|
|
- Process versioning
|
|
- Process analytics
|
|
- Advanced notifications
|
|
- Custom validations
|
|
- Process documentation
|
|
- Process testing
|
|
- Process deployment
|
|
- Variable encryption
|
|
- Variable versioning
|
|
- Variable dependencies
|
|
|
|
Last updated: June 10, 2024 |