CamundaからLiferay APIを呼び出す
Liferay コネクタを使用すると、Camunda タスクから Liferay API を呼び出すことができます。 これは、 Camunda HTTP REST コネクタ上に構築されたプロトコル コネクタです。
Camunda Liferay Connector から Liferay の API へのアウトバウンド通信を有効にするには、次の手順に従います。
-
Camundaインスタンスに、 Liferay Connectorをインストールします。
-
Liferay で、Liferay の API への接続を承認します。
- グローバル メニュー → コントロール パネル → OAuth2 管理で、新しい OAuth2 アプリケーションを追加します。 「許可された認証タイプ」の下で「クライアント資格情報」を選択し、「クライアント資格情報ユーザー」の下で適切な Liferay 権限を持つユーザーを選択してください。 クライアント プロファイルでヘッドレス サーバーを選択すると、自動的に有効になる承認スコープを最小限に抑えることができます。
- プロセスに必要な API スコープを定義します。
- クライアント ID とシークレットをコピーします。
詳細については、 OAuth2 を使用してユーザーを認証する を参照してください。 他の形式の認証も利用可能です (例: 基本的なユーザー名とパスワードの認証) が、実稼働環境では OAuth2 が推奨されます。
-
Camunda に戻り、タスクを追加して、Liferay Connector テンプレートを選択します。
-
Liferay で作成した OAuth2 アプリケーションからクライアント ID とシークレットを追加します。
実稼働環境では、 Camunda シークレット を使用して資格情報を安全に保存します。 クライアント ID とシークレットに個別のキー/値ペアを追加します。 Liferay Connector プロパティでシークレットを参照する方法については、 「シークレットの使用」 を参照してください。
-
次のパターンに従ってトークンエンドポイントURLを追加します:
https://[Liferay Base URL]/o/oauth2/token
次に、コネクタで HTTP エンドポイントを構成します。
-
モデル タイプで、[カスタム オブジェクト] または [その他] を選択します。 残りのオプションはケースごとに若干異なります。
-
ベース URL を Liferay インスタンスのエンドポイントに設定します。
Foo というカスタム オブジェクトがあり、複数形が
foosの場合、値は次のようになります。https://myliferayinstance.com/o/c/foos「その他のモデル タイプ」を選択し、headless-admin-user API を呼び出す場合は、次のようになります。
https://myliferayinstance.com/o/headless-admin-user -
呼び出すエンドポイントを設定します。
カスタム オブジェクト API 呼び出しの場合、操作タイプと応答を保存するかどうかを選択できます。 使用可能な操作タイプには、オブジェクトの取得、オブジェクトの取得、オブジェクトの作成、オブジェクトの更新、オブジェクト フィールドの更新、オブジェクトの削除などがあります。
「その他のモデル タイプ」を選択した場合は、カスタム パス、メソッド、ヘッダー、およびクエリ パラメータを定義します。 たとえば、アカウント ERC を含む変数を使用して
getAccountByExternalReferenceCodeエンドポイントを呼び出すには、次のパスを設定します。"/v1.0/accounts/by-external-reference-code/" + accountExternalReferenceCodeこの例では、ERC は Liferay オブジェクトの Webhook アクションからのペイロードで Camunda に送信され、Webhook コネクタの構成で変数として保存される可能性があります。 Liferay Webhooks を使用して Camunda でイベントをトリガーするを参照してください。

エンドポイントを構成した後、応答を処理するようにコネクタを構成する必要があります。
-
必要に応じて、応答を保存する変数の名前を設定します。 デフォルトでは、レスポンスは
responseという一時的なローカル変数で利用できます。 -
応答の特定の属性をより細かい変数に処理するには、結果式を使用します。 この FEEL 式 は応答を受け取り、いくつかの変数を定義します。
= { body: response.body, dateCreated: response.body.dateCreated, id: response.body.id, name: response.body.name, type: response.body.type, }元の応答は次のようになります。
{ "accountContactInformation": { "emailAddresses": [], "postalAddresses": [], "telephones": [], "webUrls": [] }, "actions": { "move-organization-accounts": { "method": "PATCH", "href": "http://localhost:8080/o/headless-admin-user/v1.0/organizations/move-accounts/34621/{targetOrganizationId}" }, "replace-by-external-reference-code": { "method": "PUT", "href": "http://localhost:8080/o/headless-admin-user/v1.0/accounts/by-external-reference-code/{externalReferenceCode}" } }, "customFields": [], "dateCreated": "2025-05-06T05:15:21Z", "dateModified": "2025-05-06T05:15:21Z", "defaultBillingAddressId": 0, "defaultShippingAddressId": 0, "description": "", "domains": [], "externalReferenceCode": "6b074194-e3d8-3a6f-6fc7-981c6f1253a6", "id": 34621, "logoId": 0, "logoURL": "/image/organization_logo?img_id=0&t=1747731138313", "name": "Account1", "numberOfUsers": 2, "organizationExternalReferenceCodes": [], "organizationIds": [], "parentAccountId": 0, "status": 0, "taxId": "", "type": "business" }
この例では、結果式はレスポンス変数から body、 dateCreated、 id、 name、および type 属性を抽出し、同じ名前のプロセス変数に割り当てます。 その後、これらの変数をワークフロー プロセスのステップで使用できます。 結果式の属性にアクセスするための構文は、応答オブジェクトの構造によって異なります。 詳細については、 FEEL コンテキスト式のドキュメント を参照してください。
アウトバウンド接続と OAuth2 を設定すると、Camunda から Liferay の API を呼び出して応答を操作できるようになります。
トラブルシューティング
Liferay コネクタで問題が発生した場合は、次の点を調査してください。
-
Liferay の資格情報が正しいことを確認してください。
-
構成プロパティが正しく設定されていることを確認してください。
-
ログでエラー メッセージを確認してください。
-
さらにサポートが必要な場合は、 Camunda サポート にお問い合わせください。