BPMN 2.0 für fachliche Prozessmodellierung

Preview:

DESCRIPTION

 

Citation preview

HU Berlin, 27. Mai 2009

Fachliche Prozessmodellierung

BPMN 2.0

Die zwei Seiten des BPM

AblauforganisationBusiness Process

Reengineering - BPR

(Orga-) Geschäftsprozess-

Management - GPM

Human

Workflow Management

Serviceorientierte

Architekturen (SOA)

Dokumenten-Management –

Systeme – DMS (u.a.)Enterprise Appliation Integration –

EAI

Organisationslehre

bis 19901990 - 2000 ab 2000

ab 2004

ab 2000 ab 2005

Business Process Management - BPMBusiness

IT

Prozessautomatisierung

ab 2006

Fachliche Modellierung mit BPMN 2.0

Kollaboration: Mehrfach vorhandene PartnerFachliche Modellierung mit BPMN 2.0

Kunde

Lieferant

Angebot

einholen

Angebot

auswählen

Ma

kle

r

Multi-Instance

Participant

Nicht-unterbrechende EreignisseFachliche Modellierung mit BPMN 2.0

Ma

x M

uste

rma

nn

Hunger!

Pizza bestellenLieferung

erwartenPizza essen

30

Minuten

Bestellung

stornierenStulle essen

Ma

x M

uste

rma

nn

Hunger!

Pizza bestellenLieferung

erwartenPizza essen

30

Minuten

„Wo bleibt

meine Pizza?!“NEU: Non-

interrupting Event

Eskalation: Beam me up!Fachliche Modellierung mit BPMN 2.0

Meldung machen, aber kein FehlerFachliche Modellierung mit BPMN 2.0

Bestellung

aufnehmen

Bestpreis-

Angebote

recherchieren

nd

ler

Preis

verhandelnIm Budget

max. 10%

Über Budget

> 10%

Über Budget

Günstigstes

Angebot?

Angebot

vermitteln

Überziehung

mit Kunden

klären

Ja

Nein

Einverstanden?

Kunden

informieren

Angebotsbeschaffung

Ku

nd

en

be

tre

ue

rS

ch

pp

ch

en

jäg

er

NEU: Eskalation

(Meldung)

NEU: Eskalation

(Reaktion)

Business Rule TaskFachliche Modellierung mit BPMN 2.0

BusinessRuleTaskImplementation =

BusinessRuleWebService | WebService |

Other | Unspecified

Das Drama mit den RegelnFachliche Modellierung mit BPMN 2.0

Auftragswert < 50 TEUR

Normalpreis

kalkulieren

3% Rabatt

abziehen

5% Rabatt

abziehen

Verhandelten

Rabatt

abziehen

50k <= AW < 100k

100k <= AW < 250k

Rabatt individuell

verhandelt

Ve

rtri

eb

Pre

iska

lku

latio

n

Normalpreis

Angebotspreis

Angebotspreis

Angebotspreis

Ve

rtri

eb

Pre

iska

lku

latio

n

NEIN

Normalpreis

kalkulieren

Rabatt

abziehenJA

Rabatt-Regeln

anwenden

Normalpreis

Rabatt-Regeln

(Tabelle)

Rabatt

Angebots-

preis

Hinterlegter

Link auf Excel,

Wiki o.ä.

Regeln raus aus den Prozessen!Fachliche Modellierung mit BPMN 2.0

Auftragswert Rabatt verhandelt? Rabatt (%)

AW < 50 T€ Nein 0

50 T€ <= AW < 100 T€ Nein 3

100 T€ <= AW < 250 T€ Nein 5

<egal> Ja <individuell>

BPMN bleibt auf den Kontrollfluss beschränktFachliche Modellierung mit BPMN 2.0

“BPMN unterstützt lediglich die Modellierung von Geschäftsprozessen.

Andere Modelle für Organisationen werden von BPMN nicht betrachtet.

Dazu zählen z.B.:

• Organisationsmodelle (Organigramme)

• Datenstrukturen

• Modellierung von Strategien

• Geschäftsregeln”

7.1 BPMN Scope, p. 39

Grundsatz: BPMN ist für Abläufe. Alles Angrenzende muss in

eigenen Notationen definiert werden und mit BPMN-Modellen

sinnvoll verknüpft werden!

Unvermeidbar: Das eigene Niveau anheben!Fachliche Modellierung mit BPMN 2.0

Fach-

bereichEntwick-

lungProzessanalyst Prozessingenieur

<!-- Deklaration eines asynchronen “Hello World” Prozesses -->

<process name=”HelloWorld” ... >

<!-- Liste der am Prozess beteiligten Services -->

<partnerLinks>

<!-- Nur ein beteiligter Service: Der Dienst-Nutzer -->

<partnerLink name=”client” partnerLinkType =”HelloWorld” myRole=”HelloWorldProvider”

partnerRole=”HelloWorldRequester” />

</partnerLinks>

<!-- Liste der (XML-)Dokumente, die im Prozess verwendet werden -->

<variables>

<!-- XML-Dokument, das der Dienst-Nutzer beim Aufruf übergibt -->

<variable name="input" messageType="HelloWorldRequestMessage"/>

<!-- XML-Dokument, das der Dienst-Nutzer vom Prozess erhält -->

<variable name="output" messageType="HelloWorldResultMessage"/>

</variables>

<!-- Definition der Ablauflogik im Prozess (Aktiviäten) -->

<sequence>

<!-- Übergabe-Parameter vom Dienst-Nutzer entgegen nehmen -->

<receive name="receiveInput" partnerLink="client" portType="tns:HelloWorld" operation="initiate" variable="input"

createInstance="yes"/>

<!-- Output-Parameter abhängig vom Input erstellen -->

<assign>

<copy> <from expression="concat('Hello

',bpws:getVariableData('input', 'test','/tns:name'))"/>

<to

variable="output" part="test" query="/result"/>

</copy>

</assign>

<!-- Dienst-Nutzer aufrufen, um Antwort zu übergeben -->

<invoke name="replyOutput" partnerLink="client" portType="tns:HelloWorldCallback"

operation="onResult" inputVariable="output"/>

</sequence>

</process>

„ALLES SOLLTE SO

EINFACH WIE MÖGLICH

GEMACHT SEIN, ABER

NICHT EINFACHER.

Albert Einstein:

Recommended