camunda bpm 7.2: connectors, data, scripting (english)
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 Rücker
Data
Scripting
Templates
Connectors
Our sample process: Supplier Onboarding
SOAP WebService
Java Delegate
Object
File
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
Camunda BPM Workbench Crrently alpha stage: https://github.com/camunda/camunda-bpm-workbench
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/
[email protected] | US +1.415.800.3908 | DE +49 30 664040 900