Jump to: navigation, search

Difference between revisions of "STP/BPMN Component/STP BPMN Presentation (Part 2)"

(Validation on BPMN diagrams)
(Validation on BPMN diagrams)
Line 43: Line 43:
 
== Validation on BPMN diagrams ==
 
== Validation on BPMN diagrams ==
  
We haven't created all the constraints provided by the specification yet.
+
We haven't created all the constraints provided by the specification yet. We have implemented those who seemed critical to us at the time. You can access them through [Window] > [Preferences...] > [Model Validation] > [Constraints].
 
+
We have implemented those who seemed critical to us at the time.
+
  
 
* Constraints overview
 
* Constraints overview

Revision as of 20:12, 4 March 2007

  • Quick access

STP BPMN Presentation

STP BPMN Presentation (Part 1)

STP BPMN Presentation (Part 2)

STP BPMN Presentation (Part 3)

Editor functionalities

  • Export the diagram as an image

Usually, when you want to export a GMF diagram as an image, you can follow this procedure: 1. Right-click on the diagram and select file, Export As file

2. A dialog pops up and you select the format of the image, its filename and location.

ExportToImageDialog.png

We added an export wizard to do the same operation, since we have Eclipse users used to find everything in there. 1. Click on Export in the file menu.

2. Select the bpmn_diagram file you want to export.

3. Choose the format in the options, the image file name and location.

ExportToImageWizard.png

  • Copy and paste shapes into a text processor

Using the copy and paste command, GMF enables you to paste shapes into a word processor.

  • Copy/paste in compartments

We have a good support of copy and paste. GMF does not basically support the possibility to copy and paste elements in compartments because some rules apply depending of the object model.

In our case, we have the edges between the activities copied if the activities are copied, for example.

  • Drag a shape from one container to another

Just select a shape and drag it to another pool while pressing shift.

File:DragBpmnShapeToOtherPool.png


Validation on BPMN diagrams

We haven't created all the constraints provided by the specification yet. We have implemented those who seemed critical to us at the time. You can access them through [Window] > [Preferences...] > [Model Validation] > [Constraints].

  • Constraints overview

ConstraintsBpmnOverview.png

  • Problems decorations

The diagram is decorated with error or warning markers.

DiagramWithErrorMarker.png

You can access the description of the error in the Problems view.

The validation is executed at build time, ie when you save if you build automatically, or when you type Ctrl+B. The builder nature is added to the project (exactly to the .project file) when creating the first bpmn_diagram file.

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
   <name>myFirstProcess</name>
     <comment></comment>
       <projects>
       </projects>
       <buildSpec>
              <buildCommand>
                       <name>org.eclipse.stp.bpmn.validation.BatchValidationBuilder</name>
                       <arguments>
                       </arguments>
              </buildCommand>
       </buildSpec>
       <natures>
              <nature>org.eclipse.stp.bpmn.validation.BatchValidationBuildAbleNature</nature>
       </natures>
</projectDescription>

Generating BPMN

We created a BPMN factory that generates fragments of BPMN imported into a diagram.

  • Generator sample

This sample generates some BPMN out of a BPEL file. BPEL (Business Process Executable Language) is a XML based standard for the execution of business processes. In this scenario, a BPEL process is instrumented into a BPMN pool. It exposes the sequences and gateways of the BPEL as BPMN shapes. It keeps annotations that link to the original BPEL markup. See this bug to keep track on it.

Here is the BPEL file we are going to generate BPMN from:


 <?xml version="1.0" encoding="utf-8"?>
   <bpel:process >
     <bpel:scope name="cook a cake"> 
       <bpel:sequence>
         <bpel:scope name="find a recipe">
            <bpel:sequence>
               <bpel:assign name="search on the web"/>
               <bpel:assign name="print recipe"/>
     	     </bpel:sequence>
         </bpel:scope>
         <bpel:assign name="shop for ingredients"/>
         <bpel:assign name="prepare the kitchen"/>
         <bpel:scope name="cook recipe">
     	     <bpel:assign name="melt flower with paper"/>
     	     <bpel:assign name="add ingredients"/>
     	     <bpel:scope name="bake cake">
     		<bpel:sequence>
                  <bpel:assign name="heat the oven at 300F"/>
                  <bpel:assign name="leave the cake in the oven for 30 minutes"/>
     		</bpel:sequence>
     	     </bpel:scope>
         </bpel:scope>
       </bpel:sequence>
    </bpel:scope>
   </bpel:process>

Here is the BPMN generated out of it: GeneratedBPEL.png