Using Camunda Business Processes
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

Liferay Webhooksを使ってCamundaでイベントをトリガーする

Liferay の Webhook オブジェクト アクション から Camunda プロセス インスタンスにペイロードを送信できます。 これにより、Liferay から Camunda への受信通信が可能になります。 たとえば、フォームの送信を使用して、Camunda でワークフロー プロセスを開始できます。 開始イベント、境界、および中間キャッチ イベントは、Webhook ペイロードを受信できます。 必要なコネクタを https://github.com/liferay/liferay-portal/tree/master/modules/integrations/camunda/element-templatesからダウンロードします。

開始イベント Webhook の例: Webhook を使用したフォーム送信を使用して、新しい Camunda プロセス インスタンスを開始します。

中間イベントの例: Liferay Webhook からの応答を待機します。 ペイロードが到着すると、 相関キー が一致する場合、Camunda プロセス インスタンスを進めます。 一般的なシナリオとしては、Liferay ユーザーに通知を送信して( 送信コネクタを使用)、フォームを更新して(添付ファイルの追加など)、着信 Webhook リクエストを待機することが挙げられます。

境界イベントの例: 添付されたメッセージ境界イベントを使用してオブジェクト更新アクションに応答し、タスクがアクティブな間に Webhook ペイロードを受信できます。 ペイロードの内容に応じて、ワークフロー パスを変更したり、並列パスをトリガーしたりできます。 多くの場合、異なるパスを処理するために ゲートウェイ が必要になります。

Liferay WebhookからCamundaへのインバウンド通信を有効にする

  1. Camunda で、Webhook によってトリガーされるプロセスを設計します。

  2. Camunda でダイアグラムをデプロイし、Camunda Modeler のプロパティ パネルから Webhook URL をコピーします。

  3. Liferay では、Liferay オブジェクト(または別のイベント ソース)で Webhook アクション) を設定します。

    • Webhook URL を Camunda からコピーしたものに設定します。
    • Camunda でシークレットを設定する場合は、Liferay の Webhook 設定でそれを使用します。 運用環境では、 Camunda シークレット を使用して資格情報を安全に保存します。

    Webhook アクションで、Camunda で URL とシークレットを作成した場合はそれを設定します。

  4. Camunda では、受信した Webhook ペイロード データを変数にマッピングします。

    • ペイロードを 1 つの変数に格納する場合は、 結果変数 を使用してペイロードを格納します。
    • ペイロードを複数の変数に解析する必要がある場合は、 結果式 (FEEL) を使用して、ペイロードからデータを抽出して保存します。

    結果式は、Camunda の Liferay Webhook からのペイロードを処理します。 この結果式は、 従業員 オブジェクトのフォーム送信から Camunda モデラーに 4 つの変数を生成します。

      {
        "accountExternalReferenceCode": request.body.objectEntryDTOEmployee.properties.accountNumber,
        "userFirstName": request.body.objectEntryDTOEmployee.properties.firstName,
        "userLastName": request.body.objectEntryDTOEmployee.properties.lastName,
        "userEmailAddress": request.body.objectEntryDTOEmployee.properties.email
      }
    

これらの変数は、ワークフローの後のステップで参照できます。

インバウンド接続を使用すると、Liferay オブジェクトやその他の Webhook イベント ソースから Camunda のイベントをトリガーできます。

詳細については、 Camunda のドキュメント を参照してください。

発動条件

受信メッセージ(つまり、Webhook ペイロード)から新しいワークフロー・インスタンスを開始するために満たさなければならない起動条件を設定することができます。 これらの条件は、Liferay コネクタの開始イベント、中間イベント、および境界イベントに適用されます。 特定のイベントに対してのみプロセスをトリガーしたい場合や、Webhook ペイロードによって特定のデータ条件が満たされた場合に便利です。 たとえば、ペイロードに次のような本体がある場合、

{
  "body": {
    "classPK":35399,
    "companyId":"13509014921405",
    "objectDefinitionId":"35324",
    ...
  }
  ...
}

アクティベーション条件値では、これを使用して、会社 ID が特定の値を持つことを指示する場合があります。

=(request.body.companyId="13509014921405")

条件が満たされない場合、メッセージはワークフローからフィルター処理され、BPMN イベントはアクティブ化されません。 毎回すべての受信メッセージを処理するには、アクティベーション条件を空のままにします。

相関キー

相関キーは、BPMN 図の中間キャッチ イベントと境界イベントによって使用され、受信ペイロードを進行中のプロセス インスタンスと一致させます。 2 つの相関キーを設定します。

相関キー (プロセス): FEEL 式を使用して、進行中のプロセス インスタンス内の相関属性 (つまり、既存の変数) を定義します。

相関キー (ペイロード): FEEL 式を使用して、受信ペイロードから相関属性を抽出します。

キーが一致すると、BPMN イベントがトリガーされます。

たとえば、相関キーが myCorrelationKey という名前のプロセス変数であり、このWebhookペイロードリクエストボディの companyId プロパティと相関させたい場合、

{
  "body": {
    "classPK":35399,
    "companyId":"13509014921405",
    "objectDefinitionId":"35324",
    ...
  }
  ...
}

相関キーの設定は次のようになります。

相関キー(プロセス): =myCorrelationKey

相関キー(ペイロード): =request.body.companyId

相関キーの詳細については、 メッセージ ガイドを参照してください。

メッセージID式

メッセージ ID 式 は、Camunda によって、各受信メッセージが 1 回だけ処理されることを保証するために使用されます。 複数のプロセス インスタンスが誤ってトリガーされたり、ワークフローが複数回進められたりすることを避けるため、後続の重複メッセージは破棄されます。 これは、メッセージを受信するように構成された開始イベント、中間キャッチ イベント、および境界イベントで設定できます。

受信ペイロードから一意の識別子を抽出する FEEL 式を設定します。 設定された重複排除ウィンドウ内に同じ ID を持つメッセージが再度到着した場合、意図しない重複アクションを防ぐために Camunda によってそのメッセージは無視されます。

メッセージ ID がメッセージの相関にどのように影響するかについては、 メッセージ ガイドで詳しく説明します。

メッセージTTL

メッセージ TTL は、すぐに処理できないバッファリングされた受信メッセージの有効期間 (TTL) を設定するためのオプション フィールドです。 TTL は、ワークフロー インスタンスによって処理される前に (つまり、相関またはアクティベーションに使用される前に)、メッセージが Zeebe (Camunda のプロセス自動化エンジン) にバッファリングされる期間を定義します。 TTL 期間が経過してもまだ処理されていない場合、メッセージは破棄されます。

メッセージ TTL を ISO 8601 期間として指定します。 たとえば、 PT1H は TTL を 1 時間に設定します。 Zeebe の TTL コンセプトの詳細については、 メッセージ相関ガイドをご覧ください。

Liferay Webhookコネクタの有効化

Webhook をアクティブ化し、Liferay からペイロードの受信を開始するには、ダイアグラムをデプロイする必要があります。 デプロイすると、Liferay Webhook がアクティブ化され、一般公開されます。

公開された Liferay Webhook の URL は次のパターンを使用します。

http(s)://[base URL]/inbound/[webhook ID]

  • [ベース URL] は、コネクタのコンポーネント展開の URL です。 Camunda 8 SaaS オファリングを使用する場合、これには通常、クラスター内の API タブのクライアント資格情報にあるリージョン ID とクラスター ID が含まれます。
  • [webhook ID] は、Liferay Webhook コネクタのプロパティで設定した ID(パス)です。

Liferay Webhook コネクタの設定を変更した場合は、変更を適用するために BPMN ダイアグラムを再デプロイする必要があります。

Liferay Webhook コネクタが適用された BPMN イベントをクリックすると、プロパティ パネルに Webhooks タブが表示されます。 このタブには、BPMN ダイアグラムをデプロイしたすべてのクラスターの Liferay Webhook コネクタの URL が表示されます。

Webhooks タブは、Camunda 8 SaaS オファリングの Web モデラーにのみ存在しますが、デスクトップ モデラーおよび Camunda 8 セルフマネージドでは Liferay Webhook コネクタを使用できます。 ただし、Liferay Webhook コネクタのデプロイメントと URL は、これらのアプリケーションのモデラーには表示されません。