Since the UIWFEn Project is a quite complex tool, the purpose of this part is to provide a brief description of an overall development of a workflow application. Therefore the aim isn't to explain the development in detail, but just to sketch the key phases of the development process itself.
Let's say we have some data spanning multiple entities. We would like to execute a set of operations over these data. Since the order of such operations can differ with respect to the state of the entities and with respect to our current needs, we have to create a workflow, which will strictly define the order of operations.
How to achieve it?
First of all we have to define the model of data entities using the EMF ecore model.
EMF model of entity
- In order to access the entities easily, we have to generate the Java code of the model.
- Generate EMF model code
EMF model generated code
- The simplest approach to edit such entities is by individual form for each of them. Since we have a tool named Skills, which is able to generate such forms, we will generate them. Definitions of the forms are stored in SDM files. SDM stands for Skills definition model.
- Since we would like to execute some complex operations over multiple entities, we will have to piece together a process from individual steps called
Activities.There are several types of
Activities, the most important are:
- Skills forms which allow user to edit individual entities and they are easily generated.
- Dialog forms from Activity Library, such as the Yes/No dialog form, which give user control over the flow of the application.
Activitieswhich execute user Java code and perform operations on the background.
Transitions. The resulting workflow looks like this:
Workflow among activities
- As soon as we will design whole workflow properly, we can easily test and debug our workflow application via RCP Viewer and its debug console.
Testing the workflow via RCP Viewer application
- If the tested application meets our needs we can deploy it to the final RCP application and finish the workflow development.