Top Banner
Hands-on Webinar Camunda BPM 7.2 Connectors, Data, Scripting
25

Camunda BPM 7.2: Connectors, Data, Scripting (English)

Jul 13, 2015

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Camunda BPM 7.2: Connectors, Data, Scripting (English)

Hands-on Webinar

Camunda BPM 7.2

Connectors, Data, Scripting

Page 2: Camunda BPM 7.2: Connectors, Data, Scripting (English)

10+ years experience with workflow and Java EE

Co-Founder of Camunda

Evangelist and Head of Consulting

@berndruecker

[email protected]

Bernd Rücker

Page 3: Camunda BPM 7.2: Connectors, Data, Scripting (English)

Data

Scripting

Templates

Connectors

Page 4: Camunda BPM 7.2: Connectors, Data, Scripting (English)

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

Page 5: Camunda BPM 7.2: Connectors, Data, Scripting (English)

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

Page 6: Camunda BPM 7.2: Connectors, Data, Scripting (English)

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

Page 7: Camunda BPM 7.2: Connectors, Data, Scripting (English)

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

Page 8: Camunda BPM 7.2: Connectors, Data, Scripting (English)

Where can I use Scripts/Templates?

In Script Tasks

In Listeners

As Conditions

As IO-Mappings

Page 9: Camunda BPM 7.2: Connectors, Data, Scripting (English)

Where can I use Connectors?

Page 10: Camunda BPM 7.2: Connectors, Data, Scripting (English)

Let‘s dive into the details…

Page 11: Camunda BPM 7.2: Connectors, Data, Scripting (English)

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

Page 12: Camunda BPM 7.2: Connectors, Data, Scripting (English)

DEMO

Page 13: Camunda BPM 7.2: Connectors, Data, Scripting (English)

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

Page 14: Camunda BPM 7.2: Connectors, Data, Scripting (English)

DEMO

Page 15: Camunda BPM 7.2: Connectors, Data, Scripting (English)

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

Page 16: Camunda BPM 7.2: Connectors, Data, Scripting (English)

This is AWESOME!

And I tell you why

:-)

Page 17: Camunda BPM 7.2: Connectors, Data, Scripting (English)

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/

Page 18: Camunda BPM 7.2: Connectors, Data, Scripting (English)

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…

Page 19: Camunda BPM 7.2: Connectors, Data, Scripting (English)

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

Page 20: Camunda BPM 7.2: Connectors, Data, Scripting (English)

In short:

Developer-Friendly System Integration

Death by Property Panel vs.

Camunda Zero-Code BPM Suites

Page 21: Camunda BPM 7.2: Connectors, Data, Scripting (English)

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

Page 22: Camunda BPM 7.2: Connectors, Data, Scripting (English)

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

Page 24: Camunda BPM 7.2: Connectors, Data, Scripting (English)

Thank you!

Questions?

Page 25: Camunda BPM 7.2: Connectors, Data, Scripting (English)

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/

[email protected] | US +1.415.800.3908 | DE +49 30 664040 900