Event Condition Action

ECA: Business Process Modeling in Drupal 9+

Richard Papp (@boromino) and Jürgen Haas (@jurgenhaas)

16 September 2021

Agenda

  1. Introduction
  2. Demo
  3. ECA Architecture
  4. Modeler
  5. Roadmap
  6. Discussion

Introduction

The Rules module for Drupal 8 is still in its alpha release stage … still needs significant work. (Excerpt description tr_rulez)

Previously

Demo

ECA Architecture

  • ECA is a processor - Period. No more, no less
  • An event subscriber listens to all Drupal events and triggers the processor
  • This processes all available ECA models - all models for the current event
  • The ECA models are config entities

Where does the config come from?

ECA doesn’t care!

What components does the processor support?

  • Events: all Drupal events - you can add custom events
  • Conditions: ECA provides a plugin manager
  • Actions: all Drupal actions - you can add custom events

What is already included in ECA?

  • ECA Core:
    • Dozens of events for kernel, Drupal core, Drupal config, routing, forms, etc.
    • Conditions for routing and forms
    • Integration of all Drupal actions from Drupal core actions module
    • Token support
  • 2 Submodules:
    • ECA Content
    • ECA User

What is included in ECA Content?

  • Dozens of events for every content entity type and all bundles
  • Conditions for content entities and their fields
  • Plenty of actions for content entities and their fields

What is included in ECA User?

  • Events for all relevant user activities
  • Conditions for current user and user roles
  • A few user actions, more to come

Chainable Actions

class_alias('Drupal\eca_content\Plugin\Action\FieldUpdateActionBase', 'Drupal\Core\Field\FieldUpdateActionBase');

Structure: Events

Structure: Conditions

Structure: Actions

Modeler

  • A modeler is the user interface for ECA config entities.
  • It can be integrated as a @EcaModeler plugin, that stores models as config entities. The plugin manager is provided by the ECA module.
  • May be BPMN but not necessarily. Only the structure Event - Condition - Action matters.
  • Two modelers are already integrated:

Camunda Desktop Client

Download

Integrated by Camunda BPMN module.

BPMN.iO

Integrated in Drupal UI. Everything is provided by BPMN.iO module.

Mehr Info

Structure: Modeler

Roadmap

Stable Release 1.0.0 by the end of 2021

Any help is highly appreciated

  • Development
    • ECA and plugins
    • Optimization of the integrated BPMN.iO clients
  • Tests
  • Review and feedback
  • Support (Issue queue and in chats)
  • Documentation
  • Translations
  • Descriptions on the drupal.org project pages
  • Spread the word

Discussion