ECA モジュールの基礎調査
2025/5/30 発表者:オムニック
2
ECA モジュール
「イベント( Event )」「条件( Condition )」「アクション( Action )」の 3 要素を組み合わせて、ワークフローを
構築するモジュール。
ユーザー操作やシステムの動作など Drupal のサイト上で起きる特定の出来事のこと
イベントが発生した際にアクションを実行するか判定する条件
イベントが発生し、条件が満たされた場合に実行される処理
イベント
条件
アクション
3
ECA モジュールをインストール
ECA モジュールを Drupal で使用するには ECA 本体とモデル編集ツールをインストールする必要がある。
・ ECA 本体
公式サイト (https://www.drupal.org/project/eca) から以下のコマンドでインストールする。
・モデル編集ツール
以下のどちらかを compose からインストールすれば良い。
・ ECA Classic Module
・ ECA BPMN.iO
composer require 'drupal/eca:^2.1'
composer require 'drupal/eca_cm:^1.0'
composer require 'drupal/bpmn_io:^2.0'
4
ECA モジュールをインストール 2
拡張機能には ECA 関連の拡張機能が色々出てくるので必要なイベント、条件、アクションがあればインストールする。
具体例)
・コンテンツ更新時のイベントを追加したい → ECA Content をインストール
・イベント発生後ユーザーに役割を追加するアクションが欲しい → ECA User をインストール
5
ECA モジュールをインストール 3
各拡張機能の細かい内容については公式サイト (https://ecaguide.org/plugins/) に詳しく載っている
6
ECA Classic Module と BPMN.iO の違い
・ Classic Module はフォーム入力のような形式、 BPMN.iO はフローチャート形式
・制御できる内容は同じ
イベント
条件
アクション
Classic Moduel BPMN.iO
7
ECA で可能行えるフロー制御
AND
OR
LOOP
IF
8
ECA 導入例1:コンテンツ作成時、選択したタームをメッセージ表示する
コンテンツタイプ「果物」 ( マシン名: fruit) のコンテンツを新規作成した際に、タクソノミータームの選択フィールドか
ら設定したタームの値を取得し、メッセージ表示する。
「果物」のコンテンツを新規作成
なし
フィールドの値をメッセージ表示
イベント
条件
アクション
9
ECA 導入例1:コンテンツ作成時、選択したタームをメッセージ表示する
準備
以下の ECA の拡張機能をインストールする
• ECA Base
• ECA Content
• タクソノミーターム「カテゴリ」を作成する。
• コンテンツタイプ「果物」を作成する。
• フィールドにタクソノミーターム「カテゴリ」を参照するフィールドを作成する。
• フィールドのマシン名は field_fruit
10
ECA 導入例1:コンテンツ作成時、選択したタームをメッセージ表示する
イベント : 「果物」のコンテンツを新規作成
イベント発火のエンティティをコンテンツ「果物」に限定
11
ECA 導入例1:コンテンツ作成時、選択したタームをメッセージ表示する
イベント : 「果物」のコンテンツを新規作成
コンテンツタイプの中で定義した
フィールドのマシン名を指定
取得したフィールドを
トークンとして保存
トークンを使用する
12
ECA 導入例1:コンテンツ作成時、選択したタームをメッセージ表示する
新規に「果物」コンテンツを作成すると以下のようにメッセージ表示される。
13
ECA 導入例2:ユーザー更新時、条件を満たすユーザーにロールを追加 / 削除
ユーザーエンティティに保存されている 3 つの条件に基づいて、ユーザーが更新される際に自動的にロールを追加または
削除する。
公式サイト :https://ecaguide.org/library/simple/grant_new_user_role_after_3_conditions_are_met/
あるユーザーの情報が更新されたとき
• フィールド (field_condition_1) の値が 1 のとき
• フィールド (field_condition_2) の値が 1 のとき
• フィールド (field_condition_3) の値が 1 のとき
ユーザーにロール (Moderator) を追加する
ユーザーからロール (Moderator) を削除する
イベント
条件
アクション
14
ECA 導入例2:ユーザー更新時、条件を満たすユーザーにロールを追加する
準備
• 役割 moderator を追加する
• 以下の ECA の拡張機能をインストールする
• ECA Base
• ECA Content
• ユーザーエンティティにフィールドを追加する。
• field_condition_1
• field_condition_2
• field_condition_3
15
ECA 導入例2:ユーザー更新時、条件を満たすユーザーにロールを追加する
イベント : あるユーザーの情報が更新されたとき
イベント発火のエンティティをユーザーに限定
16
ECA 導入例2:ユーザー更新時、条件を満たすユーザーにロールを追加する
条件 1: field_condition_1 の値が 1 のとき
トークンを用いて
ユーザーフィール
ドの値を指定
17
ECA 導入例2:ユーザー更新時、条件を満たすユーザーにロールを追加する
アクション : ユーザーにロール (Moderator) を追加する
ユーザーに
役割を追加
この欄にはトークン名
「 entity 」を入力して
もよい。
他にエンティティの候
補がなければ ECA が自
動で判別してくれる。
18
ECA 導入例2:ユーザー更新時、条件を満たすユーザーにロールを追加 / 削除
• 役割の与えられていない testuser
• ユーザー編集画面から条件に使用されるフィールドを設定する
• 役割 Moderator が自動で追加される。
ご清聴ありがとうございました
20
( 参考 ) コンテンツ作成時、複数選択タームでもメッセージ表示する
21
( 参考 )ECA でコンテンツ作成時、 Group にコンテンツを自動追加する方法
• Group Action モジュールを追加する
• ECA は以下のような流れ

ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。