Code Monkey home page Code Monkey logo

camundacon2019-casemanagement-with-bpmn's Introduction

camunda-case-bpmn

Modelling and Managing a Case with BPMN/DMN

example

CamundaCon Talk Click for video

Demo Time

Features

State Chain

  • just created -> NEW
  • No Sentry and no manualStart -> ACTIVE
  • No Sentry and manualStart -> ENABLED
  • Sentry(true) and manualStart -> ENABLED
  • Sentry(false) and manualStart -> DISABLED
  • ENABLED on manualStart -> ACTIVE
  • ACTIVE on complete -> COMPLETED

Roadmap

soon:

  • automatic start of case tasks

near future:

  • modeler template: to set extension properties with key/value support
  • modeler plugin: display overlay icons for mandatory, manualStart and repetitionRule
  • cockpit plugin: display cast task states for running and waiting instances

camundacon2019-casemanagement-with-bpmn's People

Contributors

jangalinski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

camundacon2019-casemanagement-with-bpmn's Issues

version updates

  • camunda 7.11.3-ee
  • spring boot 2.1.7
  • starter 3.3.4
  • orchid 0.17.4

support mandatory task

I can mark a task as mandatory and the outer process will not finish before it is completed

[senry] evaluate for follow up task with repetition

For a task with repetition rule

  • complete - the end listener sets the follow up to disabled if the sentry is false

  • startManual - since the task can be started, we assume that the follow up task can also be started

feature: "only-once" execution of activity

A case activity without repetition rule can only be run once.

An event based subprocess via signal will start whenever a signal is received.

Solution idea:

  • remove eventSubscription manually

use jgiven-addons

I just copied the required code, since jgiven-addons is junit5 only, but it's a good idea to enhance the addons and then replace the code with the official extension.

/extension/src/test/kotlin/_test/JGivenKotlin.kt

move processDefinitionId to CaseTaskDefinition

The definitionId will stay the same for all bpmnCaseExecutions, so it would be a good idea to move it to the CaseTaskDefinition.

This will influence the way the model is parsed because the function will need to have access to the definition (for example by passing the delegateExecution).

extension: change wrap() to factory

instead of requiring a wrap() method, use a factory field

motivation: separation of concerns: the factory might have to hold some dependencies that are only needed to create the wrapped instance, not for the process itself. with the wrap() method, the process is required to hold all those dependencies.

[sentry] configure and evaluate custom expression

To define a sentry on part condition on a case task subprocess, I want to define an expression as bpmn extension element.

cmmnOnPartExpression = ${mySentryResolver.doSomething(execution)}

I can then run a listener (or delegate) that resolves this expression based on instances registered on camundas expressionManager (Mocks.register, CamundaMockito.registerInstance, later spring/cdi)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.