diff --git a/imixs-workflow-core/src/main/java/org/imixs/workflow/WorkflowManager.java b/imixs-workflow-core/src/main/java/org/imixs/workflow/WorkflowManager.java index 21b36e75e..235be1afe 100644 --- a/imixs-workflow-core/src/main/java/org/imixs/workflow/WorkflowManager.java +++ b/imixs-workflow-core/src/main/java/org/imixs/workflow/WorkflowManager.java @@ -50,14 +50,14 @@ public interface WorkflowManager { /** * This method processes a workItem. The workItem needs at least provide the * valid attributes $taskID and $EventID (integer values) to identify the - * current processEntity the workItem belongs to and the concrete activtyEntity - * which should be processed by the wokflowManager implementation. If the + * current processEntity the workItem belongs to and the concrete BPMN event + * which should be processed by the WorkflowManager implementation. If the * workItem is new the method creates a new instance for the corresponding * process. *
* The method is responsible to persist the workItem after successfully * processing. The method returns the workItem with additional workflow - * informations defined by the workfowManager Implementation. + * information defined by the WorkflowManager Implementation. *
* The Method throws an InvalidWorkitemException if the provided workItem is
* invalid or the provided attributes $taskID and $EventID (integer) did not
@@ -80,22 +80,22 @@ public ItemCollection processWorkItem(ItemCollection workitem)
throws AccessDeniedException, ProcessingErrorException, PluginException, ModelException;
/**
- * returns a workItem by its uniuqeID ($uniqueID)
+ * returns a workItem by its uniqueID ($uniqueID)
*
- * @param uniqueid
+ * @param uniqueID
* @return WorkItem
*
*/
- public ItemCollection getWorkItem(String uniqueid);
+ public ItemCollection getWorkItem(String uniqueID);
/**
- * The method removes the provide Workitem form the persistence unit managed by
+ * The method removes a Workitem form the persistence unit managed by
* the WorkflowManager implementation.
*
- * The Method throws an InvalidWorkitemException if the provided Workitem is
- * invalid.
+ * The method throws an AccessDeniedException if the work item cannot be removed
+ * due to its state or user permissions.
*
- * @param uniqueid of the WorkItem to be removed
+ * @param uniqueId of the WorkItem to be removed
* @throws AccessDeniedException
*/
public void removeWorkItem(ItemCollection workitem) throws AccessDeniedException;
diff --git a/src/site/markdown/core/model.md b/src/site/markdown/core/model.md
index 725f6ef62..e97213e5e 100644
--- a/src/site/markdown/core/model.md
+++ b/src/site/markdown/core/model.md
@@ -1,28 +1,20 @@
-# The Imixs ModelManager
+# The BPMN ModelManager
-The Imixs `ModelManager` separates the BPMN process definition from the Workflow implementation. The interface provides methods to manager BPMN Model instances and navigate through a Workflow Model with its different elements. A workflow model has a unique version ID which allows to uniquely identify a BPMN model inside one Workflow Management System. The Model Version is provided by a workflow instance in the item `$modelVersion`.
+The class `org.imixs.workflow.ModelManager` provides methods to access and manage instances of a *BPMN 2.0 Model* and navigate through a Model with its different elements. A *BPMN 2.0 Model* instance is uniquely identified by its version ID. A workitem provides the version ID of a model in the mandatory item `$modelVersion`.
-An Imixs BPMN Model can be defined using the [Imixs-BPMN modeling tool](../modelling/index.html).
-
+The BPMN ModelManager operates directly on the class `org.openbpmn.bpmn.BPMNModel` from the [Open-BPMN Meta model](https://github.com/imixs/open-bpmn/tree/master/open-bpmn.metamodel).
+A BPMNModel instance allows full access to a BPMN 2.0 model and provides methods to navigate through a BPMN model. The BPMN `ModelManager` can be used in any custom Java implementation of Imixs-Workflow. Find further information at the [Open-BPMN Meta Project on Github](https://github.com/imixs/open-bpmn/tree/master/open-bpmn.metamodel).
-## The ModelManager Interface
-The interface `org.imixs.workflow.ModelManager` manage instances of a `BPMNModel` and is used by the [WorkflowKernel](workflowkernel.html) to access model information during the processing life cycle .
-The Interface defines the following methods:
-|Method | Description |
-|----------------------------|---------------------------|
-|getModel(version) | Returns a Model by version. The method throws a ModelException in case the model version did not exits.|
-|addModel(BPMNModel) | Adds a new Model to the ModelManager.|
-|removeModel(version) | Removes a Model from the ModelManager.|
-|loadDefinition(workitem) | Returns the BPMN Definition entity associated with a given workitem.|
-|loadProcess(workitem) | Returns the BPMN Process entity associated with a given workitem. |
-|loadTask(workitem) | Returns the BPMN Task entity associated with a given workitem.|
-|loadEvent(workitem) | Returns the BPMN Event entity associated with a given workitem.|
-|nextModelElement(event, workitem) | Returns the next BPMN Flow Entity followed by a given Event Entity.|
+## The BPMNModel
+
+An Imixs BPMN Model can be defined using the [Imixs-BPMN modeling tool](../modelling/index.html).
+
+
@@ -77,18 +69,25 @@ The Event entity returned by the `ModelManager` is represendted as an [ItemColle
-## The BPMNModel
-
-The Imixs `ModelManager` operates directly on BPMNModel instances from the [Open-BPMN Meta model](https://github.com/imixs/open-bpmn/tree/master/open-bpmn.metamodel).
-The `BPMNModel` instance allows full access to a BPMN 2.0 model and provides a lot of convenient methods to navigate through a BPMN model.
-Find further information at the [Open-BPMN Meta Project on Github](https://github.com/imixs/open-bpmn/tree/master/open-bpmn.metamodel).
+## The ModelManager Interface
+The `org.imixs.workflow.ModelManager` is used by the [WorkflowKernel](workflowkernel.html) to access model information during the processing life cycle. The ModelManager defines the following core methods:
-## The OpenBPMNModelManager
+|Method | Description |
+|----------------------------|---------------------------|
+|getModel(version) | Returns a BPMN Model by version. The method throws a ModelException in case the model version did not exits.|
+|addModel(BPMNModel) | Adds a new Model to the ModelManager.|
+|removeModel(version) | Removes a Model from the ModelManager.|
+|loadDefinition(workitem) | Returns the BPMN Definition entity associated with a given workitem.|
+|loadProcess(workitem) | Returns the BPMN Process entity associated with a given workitem. |
+|loadTask(workitem) | Returns the BPMN Task entity associated with a given workitem.|
+|loadEvent(workitem) | Returns the BPMN Event entity associated with a given workitem.|
+|nextModelElement(event, workitem) | Returns the next BPMN Flow Entity followed by a given Event Entity.|
-The `OpenBPMNModelManager` implements the interface `org.imixs.workflow.ModelManager` and can be used in any custom Java implementation of Imixs-Workflow. The `OpenBPMNModelManager` provides additional methods to manage BPMNModel instances and helper methods to navigate throug a BPMN model as also methods to evaluate specific model situations based on the [Imixs RuleEngine](ruleengine.md).
+### BPMN Sequence Flows
+The `ModelManager` provides methods to evaluate elements in a BPMN sequence flow based on the model definition. This includes also complex flows including any kind of gateway. The ModelManager evaluates conditional events on a Exclusive Gateway based on the [Imixs RuleEngine](ruleengine.md). This allows the creation of very complex BPMN 2.0 process models.
### The Imixs ModelService
diff --git a/src/site/markdown/core/plugin-api.md b/src/site/markdown/core/plugin-api.md
index 80917e6ac..ede9a76bd 100644
--- a/src/site/markdown/core/plugin-api.md
+++ b/src/site/markdown/core/plugin-api.md
@@ -30,7 +30,7 @@ This concept makes it easy for a Plug-In Developer to implement additional busin
A Plug-In can validate a process instance and may also manipulate the business data. A Plug-In can also interrupt the processing phase by throwing a [PluginException](../engine/plugins/exception_handling.html) - for example in case of a validation error.
-###The Two-Phase Commit
+### The Two-Phase Commit
The Imixs Plugin-API defines three call-back methods, called by the WorkflowKernel for each Plug-In in one single transaction during the processing life-cycle. This is the concept of a two-phase commit (2PC).
diff --git a/src/site/markdown/core/workflowkernel.md b/src/site/markdown/core/workflowkernel.md
index 10767af85..5b4d80f12 100644
--- a/src/site/markdown/core/workflowkernel.md
+++ b/src/site/markdown/core/workflowkernel.md
@@ -1,6 +1,6 @@
-#The Workflow Kernel
+# The Workflow Kernel
-The class _org.imxis.workflow.WorkflowKernel_ is the core component of the Imixs-Workflow API. The _WorkflowKernel_ controls the processing life cycle of a process instance (Workitem) according to an Imixs-BPMN process model.
+The class `org.imxis.workflow.WorkflowKernel` is the core component of the Imixs-Workflow API. The _WorkflowKernel_ controls the processing life cycle of a process instance (Workitem) according to an Imixs-BPMN process model.
The processing life cycle is defined by a BPMN _Event_ describing the transition between two BPMN _Task_ elements.
@@ -112,7 +112,7 @@ The WorkflowContext provides the following methods:
The session context is platform specific, for example a surrounding EJB Context, a Web Module or a Spring Context. As the _WorkflowKernel_ is part of the Imixs-Workflow core API it is a platform independent building block. Therefor the WorkflowContext builds a bridge between the Workflow System and the processing engine. For details about the concrete implementation see the [WorkflowService implementation](../engine/workflowservice.html).
-##The Workflow Log
+## The Workflow Log
The Imixs _WorkflowKernel_ generates a log entry during each processing phase with information about the current model version, the process entity and the processed workflow event. The log is stored in the property '$EventLog'.
The log entry has the following format:
diff --git a/src/site/markdown/core/workflowmanager.md b/src/site/markdown/core/workflowmanager.md
index 6f4a0815d..99e9ac8b1 100644
--- a/src/site/markdown/core/workflowmanager.md
+++ b/src/site/markdown/core/workflowmanager.md
@@ -1,6 +1,17 @@
-#The WorkflowManager
-The WorkflowManager is the central interface for each implementation of an Imixs-Workflow Engine. This interface provides the general functionality to create, process and search Workitems.
-The WorkflowManager instantiates the [WorkflowKernel](./workflowkernel.html) to process a WorkItem and provides the implementation of a Model. The WorkflowManager can be used by an application to process and search Workitems and provide the environment for the business logic implemented by the plugins.
+# The WorkflowManager
+
+The class `org.imixs.workflow.WorkflowManager` is the central interface for each implementation of an Imixs-Workflow Engine. This interface provides the general functionality to create, process and search Workitems.
+The *WorkflowManager* instantiates the [WorkflowKernel](./workflowkernel.html) to process a WorkItem and provides the implementation of a Model. The WorkflowManager can be used by an application to process and search Workitems and provide the environment for the business logic implemented by the plugins.
+
+
+
+|Method | Return Type |
+|---------------------------|-------------------|
+|processWorkItem(ItemCollection workitem)| Processes and persists a workItem. The WorkItem must provide at least the mandatory items *$modelVersion*, *$taskID*, and *$EventID* to identify the current state in a BPMN model. |
+|getWorkItem(String id) | Returns a workItem by its uniqueID ($uniqueID) from the persistence layer |
+|removeWorkItem(String id) | The method throws an AccessDeniedException if the work item cannot be removed due to its state or user permissions. |
+
+
The [WorkflowManager Service](../engine/workflowservice.html) implements the WorkflowManager based on the JEE architecture.
## The Plugin-API
@@ -18,7 +29,7 @@ The general workflow functions and also application specific business logic is p
-##Processing a Workitem
+## Processing a Workitem
The method 'processWorkItem()' is used to create or update a Workitem. The WorkflowManager implementation is responsible to load the Model, call the WorkflowKernel and persist the Workitem so it can be retrieved later by the application.
public void processWorkItem(ItemCollection aWorkItem)throws Exception {
@@ -48,7 +59,7 @@ The method returns a list of all workItems assigned to the current user. A work
wfm.removeWorkItem(workitem);
-##The Imixs WorkflowService
+## The Imixs WorkflowService
The Imixs-Workflow engine provides the WorkflowService component which implements the WorkflowManager on the JEE component stack. Find more information about the Imixs-WorkflowService in the section [WorkflowService](../engine/workflowservice.html).
diff --git a/src/site/site.xml b/src/site/site.xml
index c6a8a4ce4..379fdb0ee 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -76,10 +76,10 @@