user1364591
user1364591

Reputation: 93

How to extend BPMN 2.0

Currently, I'm investigating the ways to extend BPMN. I want to create a new task type with less properties than a task and also with some non-BPMN properties and a new type of pool.

Until now I saw that people mentioned of two ways, using Extension Points and using an external schema. Unfortunately in Internet, I could not find that many resources to understand these methods extensively.

What I understood from these methods:

The only thing that is not clear is this method does not extend directly task definition so these properties can be used by every element in BPMN?

An example external schema is:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
    xmlns="http://myproject.org//bpmn/extensions/NEWTask"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
    xmlns:exvar="http://myproject.org/externalDefs"
    targetNamespace="http://myproject.org//bpmn/extensions/NEWTask"
    > 
    <xsd:import namespace="http://www.omg.org/spec/BPMN/20100524/MODEL"             schemaLocation="BPMN20.xsd"/>
    <xsd:import schemaLocation="externalDefs.xsd" namespace="http://myproject.org/externalDefs" />
    <xsd:complexType name="tProperty1" abstract="false">
        <xsd:sequence>
            <xsd:any namespace="##any" processContents="lax" minOccurs="0" />
        </xsd:sequence>
    </xsd:complexType>
        <xsd:group id="tNEWTask" name="tNEWTask">
        <xsd:sequence>
            <xsd:element name="Property2" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="Property1" type="tProperty1" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="Property2" type="exvar:Varaible1" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:group>
    </xsd:schema>

Are there any other methods for extending BPMN or any resources that you can point me so that I can have a better insight about this topic?

Any help will be appreciated, thanks in advance!

Upvotes: 7

Views: 6022

Answers (4)

Jonas Anseeuw
Jonas Anseeuw

Reputation: 3650

You can take a look at the Eclipse BPMN2 Modeler.

There are some tutorials available (e.g. extending the runtime and creating a custom task).

Upvotes: -1

dgmora
dgmora

Reputation: 1269

As you are not talking about any concrete BPMN implementation (activiti, jbpm), and you are talking about your own process engine I assume that what you want to do is extend the XML in accordance to BPMN rules.

That said, you can look at BPMN 2.0 specification (I think it's very long, and probably boring) or you can try to look at some bpmn book. BPMN method & style book has a part about implementing BPMN, so maybe that's useful to you.

Note: When there's a standard like BPMN, which has a lot of support, sometimes it's useful if you really need to extended. Is it worth extending something standard, which hasn't been considered? (Not saying you can't do it, but you should think what it brings to you and if couldn't you do it with the regular stuff).

Upvotes: 0

EsseTi
EsseTi

Reputation: 4271

There's this tool developed by a brazilian researcher: http://code.google.com/p/bpmnx/

it works on extension points as far as i remember.

Upvotes: 0

balinjdl
balinjdl

Reputation: 336

Here is some discussion of this topic on the Activiti Forums and on the MDT Eclipse plugin forum.

Unfortunately, with some simple testing I have not been able to implement a new namespace

(e.g. xmlns:newns="http://www.mynewns.com/newns in

<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:activiti="http://activiti.org/bpmn" 
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" 
xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" 
xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" 
typeLanguage="http://www.w3.org/2001/XMLSchema" 
xmlns:newns="http://www.mynewns.com/newns" 
expressionLanguage="http://www.w3.org/1999/XPath" 
targetNamespace="http://www.activiti.org/bpmn2.0">

and an element like <userTask newns:ownerID="owner1">).

Custom elements in my Activiti diagram don't work either -- the Eclipse plugin seems to discard my custom namespace and ignore my elements. Don't know why; still researching.

Upvotes: -1

Related Questions