camunda bpm 7.2: connectors, data, scripting (english)

Post on 13-Jul-2015

491 Views

Category:

Software

12 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Hands-on Webinar

Camunda BPM 7.2

Connectors, Data, Scripting

10+ years experience with workflow and Java EE

Co-Founder of Camunda

Evangelist and Head of Consulting

@berndruecker

bernd.ruecker@camunda.com

Bernd Rücker

Data

Scripting

Templates

Connectors

Our sample process: Supplier Onboarding

SOAP WebService

Java Delegate

Object

File

E-Mail

Template, Connector, & Script

Connector

Template & Script

Data Formats

Embedded Form

Data Formats

Data Formats

Data Format Support

−Serialization of process variables as XML/JSON

−Transparent transformation of formats (e.g. POJO -> JSON -> XML)

−Allows to use objects in process variables without having byte arrays in the database

−Reduces code of process applications

Camunda BPM 7.2

Scripting

−Every JSR-223 compliant scripting engine can be used (we tested JS, Groovy, Jython and JRuby)

−Scripts can now be used everywhere

−Script sources can be externalized (to allow editors / code completion)

−Performance was improved (compile & cache)

Templates

−Template Engines can be registered as script engine (Templates = Scripts)

−Freemarker and Velocity provided per default (+ XSLT in the Enterprise Edition)

−Makes data transformation really easy

−Can be used to build requests for Connectors

Camunda BPM 7.2

Connectors

−Reusable Components with I/O-Mapping

−Configured via BPMN process model (XML)

−Typically used for (synchronous) Service Calls

−Out-of-the-box: SOAP and REST (based on Apache HTTP Client)

Camunda BPM 7.2

Where can I use Scripts/Templates?

In Script Tasks

In Listeners

As Conditions

As IO-Mappings

Where can I use Connectors?

Let‘s dive into the details…

We use a Java Object of class „CreditorApplication“

Default: Serialize as byte array

Possible: Serialize as JSON/XML

Process variables

Process Engine

Process Variable

Serialization

DEMO

Now let‘s get serious…

Build SOAP Request via

Freemarker or XSLT

Serialized as JSON

Use SOAP Connector

XPath + Script to set bank in CreditorApp.

Use Java Object in Java

Delegate

Work with JSON in Tasklist / Forms

Use EL

Transform to XML via

SPIN

Custom File

Connector

Groovy Script

DEMO

camunda-spin:

−„Library for simple XML and JSON processing on the JVM (Java Virtual Machine), targeting Java and JVM-based scripting languages such as Groovy, JRuby, Jython, Javascript and Java Expression Language. “

−https://github.com/camunda/camunda-spin

−Can be activated in camunda using a Process Engine Plugin (http://docs.camunda.org/latest/guides/user-guide/#data-formats-xml-json-other-configuring-spin-integration-configuring-the-spin-process-engine-plugin)

camunda-connect

−Simple Connector API

−https://github.com/camunda/camunda-connect

−Can be activated in camunda using a Process Engine Plugin (http://docs.camunda.org/latest/guides/user-guide/#configuring-the-process-engine-plugin)

Implementation Components

This is AWESOME!

And I tell you why

:-)

We have a fundamentally different approach than Zero-Code Suites!

It‘s not about „empowering Business Analysts“

We make the developer more productive („Less code“)

As not every developer speaks Java we make the platform polyglott

We now introduced new use cases

Developer Friendlyness

Whitepaper by Sandy Kemsley /

2014

http://camunda.com/landing/whitepaper-

developer-friendly-bpm/

Building „Zero Code“ Solutions

−IT divisions that want to provide a workflow infrastructure for their organization (other IT teams)

−Software vendor who wants to make processes customizable in their software

Classless Deployments

−No Java Code / Classes needed (Re-)deployment during runtime

without Java Deployment

−Scripts & co can be versioned as part of the process definition (but as well externalized into own files)

New Use Cases By the way: You can build own modeler extensions…

And improved „normal“ Use Cases (real-life example)

App Server (JBoss AS 7) Apache httpd + PHP

Camunda Engine

Process Application

REST

camunda-webapp

PHP-Frontend

camunda-bpm-php-sdk*

ESB Talend on Karaf

SOAP (Apache CXF)

* Community Extension

In short:

Developer-Friendly System Integration

Death by Property Panel vs.

Camunda Zero-Code BPM Suites

Connectors: http://docs.camunda.org/latest/guides/user-guide/#process-engine-connectors

Scripting: http://docs.camunda.org/latest/guides/user-guide/#process-engine-scripting

Templates: http://docs.camunda.org/latest/guides/user-guide/#process-engine-templating

Data: http://docs.camunda.org/latest/guides/user-guide/#data-formats-xml-json-other

Much more information in the docs

Small improvements

−e.g. Spin in Freemarker, Output-Mapping to objects, …

Own Data Type XML & JSON

−Better support for HTML5 applications

−Make implementation more efficient

History of Connector I/O?

Workbench?

There is no fixed roadmap yet – send us feedback!

Next steps and further ideas

Thank you!

Questions?

Start now!

Open Source Edition • Download:

www.camunda.org • Docs, Tutorials etc. • Forum • Meetings

Enterprise Edition • Trial:

www.camunda.com • Additional Features • Support, Patches etc. • Consulting, Training

http://camunda.com/bpm/consultation/

info@camunda.com | US +1.415.800.3908 | DE +49 30 664040 900

top related