Maestro

条件分岐ロジック、並列/直列タスク実行、ロールベースのタスク割り当てを備えた複雑なワークフローテンプレートの作成、管理、実行を可能にするDrupal向けの包括的なワークフローオーケストレーションエンジン。

maestro
632 sites
91
drupal.org

インストール

Drupal 11, 10 v4.3.0
composer require 'drupal/maestro:^4.3'

概要

Maestroは、ビジネスプロセス管理(BPM)とワークフローオーケストレーションの完全なソリューションを提供するDrupal向けのエンタープライズグレードのワークフロー自動化システムです。このモジュールにより、サイト管理者と開発者は、ビジュアルなドラッグ&ドロップ式テンプレートビルダーを通じて複雑なワークフローを設計、展開、実行できます。

Maestroのコアには、ワークフローインスタンスを継続的に処理し、タスクを実行し、条件を評価し、ユーザーアクションや自動化されたロジックに基づいてワークフローをルーティングするオーケストレーションエンジンがあります。システムは、ユーザー入力を必要とするインタラクティブタスク、自動処理用のバッチ関数、Node作成/編集用のコンテンツタイプタスク、ワークフロー分岐用の条件ロジックゲート(IF、AND、OR)など、複数のタスクタイプをサポートしています。

ワークフローはユーザーまたはロールに割り当てることができ、変数による動的な割り当てもサポートされています。このモジュールには、包括的な通知機能、タスク再割り当て機能、プロセス変数管理、監査目的の詳細なワークフロートレース機能が含まれています。専用のタスクコンソールは、エンドユーザーに割り当てられたタスクの表示と実行のための集中インターフェースを提供します。

Features

  • ドラッグ&ドロップによるワークフロー設計のためのRaphael.jsライブラリを使用したビジュアルSVGベースのワークフローテンプレートビルダー
  • 11種類の組み込みタスクタイプ:Start、End、Interactive、Batch Function、Content Type、If(条件分岐)、And(同期ゲート)、Or(先着ゲート)、Manual Web、Set Process Variable、Spawn Sub Flow
  • ワークフローインスタンスを処理し、条件を評価し、タスクを自動的にルーティングするバックグラウンドオーケストレーターエンジン
  • エンドユーザーが割り当てられたタスクを表示し、インタラクティブワークフローを実行するためのタスクコンソール
  • プロセス変数による動的割り当てをサポートするロールベースおよびユーザーベースのタスク割り当て
  • 実行中のワークフローデータを保存・操作するためのプロセス変数システム
  • プロセスの進行状況を監視するためのワークフロートレースとタイムラインステータスバー
  • 割り当て、リマインダー、エスカレーション通知を含む包括的な通知システム
  • ワークフロータスクへの外部アクセス用のトークンベースのセキュアなタスク実行
  • ワークフローにWebform送信を組み込むためのWebform統合サブモジュール
  • ワークフロー内でDrupal Nodeを作成・編集するためのContent Typeタスク統合
  • 変数継承を持つ子ワークフローインスタンスを作成するSpawn Sub Flow機能
  • 未完了タスク、すべての進行中タスク、完了タスク、すべてのワークフローインスタンス用の事前構築されたViews
  • ワークフローの動作、通知、タスク実行、コンソール表示をカスタマイズするための豊富なhookシステム
  • 展開前にワークフロー設定を検証するテンプレートバリデーションシステム

Use Cases

ドキュメント承認ワークフロー

コンテンツが送信され、1人以上の承認者によってレビューされ、必要に応じて修正され、最終的に公開される多段階のドキュメント承認プロセスを作成します。ドキュメント編集にはContent Typeタスク、承認決定にはInteractiveタスク、承認ステータスに基づくルーティングにはIFタスクを使用します。

従業員オンボーディング

HR、IT、管理部門に割り当てられたタスクで新入社員のオンボーディングを自動化します。並列タスクパスで機器の準備、アカウント作成、ドキュメンテーションを同時に処理し、完了前にANDゲートで同期します。

購入リクエスト処理

金額に基づいて購入リクエストを適切な承認チェーンにルーティングします。リクエスト金額を保存するためにプロセス変数を使用し、しきい値に基づいて異なる承認者にルーティングするためにIFタスクを使用し、リクエスターにステータスを通知するために通知を使用します。

コンテンツ公開パイプライン

下書き作成、編集レビュー、法務コンプライアンスチェック、最終公開を含む多段階のコンテンツ公開ワークフローを実装します。Spawn Sub Flowタスクを使用して、ソーシャルメディアプロモーションなどの関連ワークフローをトリガーします。

カスタマーサポートエスカレーション

問題がサポートレベルを通じてエスカレーションできる階層型サポートワークフローを作成します。任意のレベルでの解決を処理するためにORゲートを使用し、エスカレーション履歴を追跡するためにSet Process Variableタスクを使用します。

Webform駆動プロセス

Webform統合を使用して、フォーム送信によってトリガーされるワークフローを作成します。申請処理、フィードバック収集、フォームデータがワークフローを駆動するサービスリクエストに最適です。

Tips

  • カスタムテンプレートを構築する前に、「Maestro Form Approval Flow Example」モジュールから始めてワークフローの概念を理解してください。
  • タスク間でデータを渡し、ルーティング決定を行うためにプロセス変数を広く活用してください。
  • テンプレート検証機能は、ワークフローを本番環境に展開する前に設定エラーを検出するのに役立ちます。
  • 複雑なワークフローを管理しやすく再利用可能なサブワークフローに分割するために、Spawn Sub Flowタスクの使用を検討してください。
  • プロセスタイプ、ユーザーロール、その他の条件でフィルタリングされたカスタムタスク表示を作成するためにViewsを使用してください。
  • 外部システムとの統合や複雑なロジックを実行する自動タスク用にカスタムバッチハンドラーを実装してください。
  • コアのMaestroコードを変更せずにタスクコンソール表示、通知、ワークフロー動作をカスタマイズするためにhookを活用してください。
  • 高ボリュームのワークフローでは、オーケストレーターがcronを介して頻繁に実行されるように設定し、ロック実行時間を適切に調整してください。

Technical Details

Admin Pages 6
Maestro Engineモジュール設定 /admin/config/workflow/maestro

オーケストレータートークン、通知設定、開発モードオプションを含むMaestroワークフローエンジンのコア設定を構成します。

Maestroテンプレートエディターモジュール設定 /admin/config/workflow/maestro_template_builder

SVGベースのワークフロー編集に使用されるRaphael JSライブラリの場所など、ビジュアルワークフローテンプレートビルダーの設定を構成します。

Maestroテンプレート /maestro/templates/list

システムで定義されているすべてのワークフローテンプレートを一覧表示します。ここから管理者はワークフローテンプレートの表示、編集、開始、検証、削除ができます。

テンプレートビルダー /template-builder/{templateMachineName}

SVGグラフィックスを使用したビジュアルなドラッグ&ドロップワークフローエディター。ワークフロータスクを追加、編集、接続してワークフローフローを設計します。タスクプロパティ、割り当て、通知、ワークフロールーティングを設定します。

タスクコンソール /taskconsole

割り当てられたワークフロータスクを表示・実行するためのエンドユーザーインターフェース。ユーザーは自分に割り当てられたすべてのタスクを確認し、タスクの詳細を展開し、ワークフローステータスを表示し、タスクを実行または拒否できます。

トレース /maestro/trace/{processID}

ワークフロープロセスの完全な実行履歴を表示するワークフロートレースインターフェース。実行されたすべてのタスク、完了ステータス、完了した人、完了日時を表示します。

権限 14

Maestroテンプレートタスクエディターへのアクセスと、テンプレートの作成、編集、削除を含む管理操作を許可します。

ユーザーがテンプレートから新しいワークフローインスタンスを開始することを許可します。

ユーザーがタスクコンソールを表示し、割り当てられたタスクを確認することを許可します。

タスクの再割り当てを含むMaestro Queue Entityの設定と管理のための管理フォームへのアクセスを許可します。

新しいキューエントリの作成を許可します。

キューエントリの削除を許可します。

キューエントリプロパティの編集を許可します。

Viewsやその他の表示でキューエントリを表示することを許可します。

新しいプロセスインスタンスの作成を許可します。

ワークフロープロセスインスタンスの削除を許可します。

プロセスプロパティの編集を許可します。

プロセス情報の表示を許可します。

タスク再割り当て機能へのアクセスを許可します。

Entityからワークフローへのマッピングの管理を許可します。

Hooks 17
hook_maestro_post_variable_save

プロセス変数が保存された後に発火し、モジュールが変数の変更に対応できるようにします。

hook_maestro_post_fetch_assigned_queue_tasks

モジュールがユーザーに割り当てられたタスクのリストに追加のキュータスクIDを追加できるようにします。

hook_maestro_can_user_execute_task_alter

ユーザーが特定のタスクを実行できるかどうかを変更するためのalter hook。

hook_maestro_template_validation_check

モジュールがテンプレート検証中にカスタム検証チェックを追加できるようにします。

hook_maestro_post_production_assignments

本番タスク割り当てが行われた後に発火し、割り当て後のカスタマイズを可能にします。

hook_maestro_pre_task_save

タスクが保存される前に発火し、タスク設定の変更を可能にします。

hook_maestro_production_NOTIFICATIONTYPE_notification

特定のタイプ(assignment、reminder、escalation)の通知を作成または変更します。

hook_maestro_zero_user_notification

ロールに割り当てられたユーザーがいない場合の通知を処理します。カスタム通知メカニズムを可能にします。

hook_maestro_task_console_interactive_link_alter

タスクコンソール内のタスク実行リンクのテキストを変更します。

hook_maestro_task_console_interactive_url_alter

タスクコンソール内のタスクの実行URLを変更します。

hook_maestro_task_console_custominformation_alter

タスクコンソールのタスク行にカスタム情報を追加します。

hook_maestro_task_console_taskdetails_alter

タスクコンソールのタスク詳細展開コンテンツを変更します。

hook_maestro_interactive_handlers

オートコンプリートリストに表示されるインタラクティブタスクフォームハンドラーを登録します。

hook_maestro_batch_handlers

オートコンプリートリストに表示されるバッチ関数ハンドラーを登録します。

hook_maestro_process_status_alter

ステータスブロック内のプロセスステータス表示を変更します。

hook_maestro_task_console_status_bar_alter

ワークフローステータスバーの表示を変更します。

hook_maestro_get_entity_token_value

Entityトークンのカスタムトークン値解決を提供します。

Troubleshooting 6
オーケストレーターが実行されない - タスクがキューに残ったまま

Maestro設定でオーケストレータートークンが設定されていることを確認してください。テスト用には「Run Orchestrator on Task Console Refreshes」を有効にしてください。本番環境では、cronまたは/orchestrator/{token}への外部HTTP呼び出しが機能していることを確認してください。

タスクがタスクコンソールに表示されない

ユーザーが「view maestro task console」権限を持っていること、タスクがユーザーまたはそのロールに適切に割り当てられていることを確認してください。オーケストレーターが実行されてキューエントリが作成されていることを確認してください。

テンプレート検証が失敗する

テンプレートビルダーの妥当性チェック機能を使用して設定の問題を特定してください。一般的な問題には、ハンドラーの欠落、接続されていないタスク、インタラクティブタスクでの割り当ての欠落が含まれます。

ワークフローがANDゲートで停止する

ANDゲートはすべての着信ブランチが完了するのを待ちます。すべての並列パスが実行され完了していることを確認してください。無期限に保留されている可能性のあるタスクがないか確認してください。

通知が送信されない

Maestro設定で「Send out notifications」が有効になっていることを確認してください。タスクに割り当てられたユーザーが有効なメールアドレスを持っていることを確認してください。ロール割り当ての場合は、そのロールにメンバーがいることを確認してください。

テンプレートビルダーキャンバスが表示されない

Raphael.jsライブラリにアクセスできることを確認してください。Template Builder設定で正しいライブラリURLまたはローカルライブラリパスを確認してください。ライブラリ設定を変更した後はDrupalキャッシュをクリアしてください。

Security Notes 4
  • オーケストレータートークンは、不正なワークフロー実行を防ぐために強力でユニークな値にする必要があります。
  • 「administer maestro templates」権限を持つユーザーはバッチハンドラーを介してPHPコードを実行するワークフローを作成できます - この権限は慎重に制限してください。
  • トークンベースのタスク実行URLは外部タスク完了に使用できます - カスタムハンドラーで適切な検証を確保してください。
  • 「administer maestro queue entities」権限はタスクの再割り当てを許可し、ワークフロータスクをリダイレクトするために使用される可能性があります。