OSGi 上の Forms 中心のワークフロー forms-centric-workflow-on-osgi
企業は、膨大な数のフォーム、様々なバックエンドシステム、オンラインやオフラインのデータソースからデータを収集します。また、データに関する意思決定を行うための動的なユーザーセットもあります。これには、反復的なレビューと承認のプロセスが含まれます。
大規模な組織や事業では、内部および外部のオーディエンスのレビューや承認プロセスと併せて、反復タスクを実施しています。例えば、PDF ドキュメントを別フォーマットへ変換します。これらのタスクは、手動で行うと多くの時間とリソースを要します。企業には、後で事前定義された形式で使用するために、ドキュメントにデジタル署名し、フォームデータをアーカイブする法的要件もあります。
OSGi 上の Forms 中心のワークフローの導入 introduction-to-forms-centric-workflow-on-osgi
AEM ワークフローを使用すると、アダプティブフォームベースのワークフローをすばやく構築することができます。これらのワークフローをレビューや承認、ビジネスプロセスフローに使用して、ドキュメントサービスを開始したり、Adobe Sign 署名ワークフローと統合したり、また類似の操作を行うことができます。例えば、クレジットカードの申請処理、従業員の休暇承認ワークフロー、フォームの PDF ドキュメントとしての保存などです。さらに、これらのワークフローは組織内だけでなく、ネットワークファイアウォールを越えて使用することもできます。
OSGi での Forms 中心のワークフローを使用すると、JEE スタックに本格的なプロセス管理機能をインストールしなくても、OSGi スタックで様々なタスクのワークフローを迅速に構築およびデプロイできます。ワークフローの開発と管理では、従来の AEM ワークフロー機能と AEM インボックス機能を使用します。ワークフローにより、複数のソフトウェアシステム、ネットワーク、部門、組織にわたる実際のビジネスプロセスを自動化するための基礎が構築されます。
これらのワークフローは一度設定すると、手動でトリガーして定義済みプロセスを実行することも、ユーザーがフォームや通信管理レターを送信した時にプログラムで実行することもできます。この拡張 AEM ワークフロー機能により、2 つの異なる、ただし類似した機能を AEM Forms で使用することができます。デプロイメントを計画する際に、どちらの機能を使用するかを決める必要があります。OSGi での Forms 中心の AEM ワークフローと JEE での Process Management の比較を参照してください。さらに、デプロイメントトポロジーについては、「AEM Forms のアーキテクチャとデプロイメントトポロジー」を参照してください。
OSGi 上の Forms 中心のワークフローは、AEM インボックスを拡張し、AEM ワークフローエディターに追加のコンポーネント(手順)を提供することで、AEM Forms 中心のワークフローをサポートします。拡張 AEM インボックスには、AEM Forms ワークスペースと同様の機能があります。人間中心の管理ワークフロー(承認やレビューなど)とともに、AEM ワークフローを使用して、ドキュメントサービスに関する操作(PDF の生成など)と、Adobe Sign による電子署名処理を自動化することができます。
すべての AEM Forms ワークフロー手順で変数の使用が可能です。変数を使用すると、ワークフロー手順で、実行時に複数の手順にわたってメタデータを保持および渡すことができます。様々なタイプの変数を作成して、様々なタイプのデータを保存できます。変数コレクション(配列)を作成して、関連する同じタイプのデータのインスタンスを複数保存することもできます。一般に、変数または変数のコレクションを使用するのは、変数が保持する値に基づいて決定する必要がある場合、またはプロセスで後で必要になる情報を保存する場合です。これらの Forms 中心のワークフローコンポーネント(手順)で変数を使用する方法について詳しくは、 OSGi での Forms 中心のワークフロー - 手順リファレンス を参照してください。変数の作成と管理については、AEM ワークフローの変数を参照してください。
次の図は、OSGi 上の Forms 中心のワークフローを作成、実行、監視するためのエンドツーエンドの手順を示します。
事前準備 before-you-start
- ワークフローは、実世界のビジネスのプロセスを表すものです。実世界のビジネスプロセスを維持し、そのビジネスプロセスの参加者のリストを準備しましょう。また、ワークフローの作成を開始する前に、付帯する資料(アダプティブフォーム、PDF ドキュメントなど)を準備しましょう。
- ワークフローには複数のステージが含まれることがあります。これらのステージは、AEM インボックスに表示され、ワークフローの進捗を分かりやすくします。ビジネスプロセスを論理ステージに分割します。
- AEM ワークフローのタスクの割り当て手順で、メール通知をユーザーや担当者に送信するように設定することができます。これにより、メール通知を有効にすることができます。
- ワークフローでは、電子署名に Adobe Sign も使用することができます。ワークフローで Adobe Sign を使用する予定がある場合、ワークフローで使用する前に AEM Forms 用の Adobe Sign の設定を行う必要があります。
ワークフローモデルの作成 create-a-workflow-model
ワークフローモデルは、ビジネスプロセスのロジックとフローで構成されます。また、一連の手順で構成されています。これらの手順は、AEM のコンポーネントです。必要に応じて、ワークフロー手順をパラメーターやスクリプトを使用してさらに機能性や制御が高くなるように拡張することができます。初期状態で使用できる AEM 手順に加えて、AEM Forms はいくつかの手順を提供しています。AEM と AEM Forms の手順の詳細なリストについては、「AEM ワークフロー手順のリファレンス」と「OSGi 上の Forms 中心のワークフロー - 手順のリファレンス」を参照してください。
AEM には、提供されているワークフロー手順を使用してワークフローモデルを作成するための直感的なユーザーインターフェイスが用意されています。ワークフローモデルを作成するためのステップごとの手順については、「ワークフローモデルの作成」を参照してください。次の例では承認およびレビューワークフローでワークフローモデルを作成するためのステップごとの手順が示されています。
承認およびレビューのワークフローモデルの作成 create-a-model-for-an-approval-and-review-workflow
承認およびレビューのワークフローは、人間による判断の介入を必要とするタスクに使用されます。次の例では、窓口の銀行員が記入する住宅ローン申し込み用のワークフローモデルを作成します。申し込み書が記入されると、承認に送られます。その後、承認されたアプリケーションは申込者に送信され、Adobe Sign を使用した電子署名が求められます。
この例は、下記に添付されたパッケージとしてご利用いただけます。パッケージマネージャーを使ってサンプルをインポートしてインストールします。また、アプリケーションのワークフローモデルを手動で作成するには、次の手順を実行します。
この例では、金融機関の担当者が記入する住宅ローン申し込みのためのワークフローモデルを作成します。申し込み書が記入されると、承認に送られます。その後、承認された申し込み書はお客様に送信され、Adobe Sign を使用した電子署名が求められます。パッケージマネージャーを使ってサンプルを読み込んでインストールできます。
-
ワークフローモデルコンソールを開きます。デフォルトの URL は、
https://[server]:[port]/libs/cq/workflow/admin/console/content/models.html/etc/workflow/models
-
「作成」を選択してから、「モデルを作成」を選択します。「ワークフローモデルを追加」のダイアログが表示されます。
-
「タイトル」と「名前」(オプション)を入力します。例えば、住宅ローン申し込みと入力します。「完了」を選択します。
-
新しく作成されたワークフローモデルを選択して「編集」を選択します。これで、ワークフローステップを追加してビジネスロジックを構築できるようになりました。新しいワークフローモデルを初めて作成する場合、次のものが含まれます。
- 手順:フローの開始と終了。これらの手順は、ワークフローの始まりと終わりを表します。これらの手順は必須で、編集または削除できません。
- 「手順 1」という名称の参加者手順の例。この手順は、作業項目を管理者ユーザーに割り当てるように設定されています。この手順を削除します。
-
メール通知を有効にします。OSGi でフォーム中心のワークフローを設定して、ユーザーまたは担当者にメール通知を送信できます。メール通知を有効にするには、以下の設定を実行します。
- AEM Configuration Manager(
https://[server]:[port]/system/console/configMgr
)に移動します。 - Day CQ メールサービス の設定を開きます。「SMTP サーバーのホスト名」、「SMTP サーバーポート」、「送信元アドレス」フィールドの値を指定します。「保存」をクリックします。
- 「Day CQ Link Externalizer」の設定を開きます。「ドメイン」フィールドで、ローカルインスタンス、オーサーインスタンス、発行インスタンスの実際のホスト名/ IP アドレスとポート番号を指定します。「保存」をクリックします。
- AEM Configuration Manager(
-
ワークフローステージを作成します。ワークフローには複数のステージが含まれることがあります。これらのステージは、AEM インボックスに表示され、ワークフローの進捗をレポートします。
ステージを定義するには、 アイコンを選択してワークフローモデルのプロパティを表示し、「ステージ」タブを開いてワークフローモデルのステージを追加して、「保存して閉じる」を選択します。住宅ローン申し込みの例では、ローン申請、ローン申請ステータス、署名予定ドキュメント、署名済みローンドキュメントのステージを作成します。
-
「タスクの割り当て」ステップブラウザーをワークフローモデルにドラッグアンドドロップします。これをモデルの最初の手順にします。
タスクの割り当てコンポーネントは、ワークフローによって作成されたタスクをユーザーまたはグループに割り当てます。このコンポーネントにより、タスクの割り当てだけでなく、タスクで使用するアダプティブフォームや非インタラクティブ PDF を指定することもできます。アダプティブフォームはユーザーからの入力を受け付けるために必要であり、非インタラクティブ PDF または読み取り専用のアダプティブフォームはレビュー専用のワークフローに使用されます。
また、タスクの動作を制御するためにその手順を使用することもできます。例えば、レコードの自動ドキュメントの作成、特定のユーザーまたはグループへのタスクの割り当て、送信されたデータのパス、事前に入力されるデータのパス、デフォルトのアクションを制御できます。タスク割り当てのオプションについては、「OSGi 上の Forms 中心のワークフロー - ステップのリファレンス」を参照してください。
住宅ローンのサンプルでは、読み取り専用のアダプティブフォームを使用してタスクの割り当て手順を設定し、タスクの完了後に PDF ドキュメントを表示します。また、ローン申請を承認できるユーザーグループも選択します。「アクション」タブで、「送信」オプションを無効にします。文字列データ型の actionTaken 変数を作成し、その変数を ルート変数 として指定します。例えば、actionTaken などです。また、承認および却下のルートを追加します。ルートは、AEM インボックスに個別のアクション(ボタン)として表示されます。ワークフローでは、ユーザーがタップした操作(ボタン)に基づいて分岐が選択されます。
セクションの始めでダウンロードできるサンプルパッケージを読み込むことにより、サンプルの住宅ローン申し込みに設定されたタスクの割り当て手順のすべてのフィールドの値セットを入手できます。
-
OR 分割コンポーネントをステップブラウザーからワークフローモデルにドラッグ&ドロップします。OR 分割は、ワークフロー内に分割を作成し、以降は 1 つの分岐だけがアクティブになります。これを使用すると、ワークフローに条件付き処理パスを導入できます。必要に応じて、各分岐にワークフローステップを追加できます。
分岐のルーティング式は、ルール定義、ECMA スクリプト、または外部スクリプトを使用して定義できます。
式エディターを使用して、分岐 1 と分岐 2 のルーティング式を作成します。これらのルーティング式により、AEM インボックスのユーザーアクションに基づいて分岐を選択できるようになります。
分岐 1 のルーティング式
AEM インボックスで「承認」をタップすると、分岐 1 がアクティブになります。
分岐 2 のルーティング式
AEM インボックスで「拒否」をタップすると、分岐 2 がアクティブになります。
変数を使用したルーティング式の作成については、AEM Forms ワークフローの変数を参照してください。
-
その他のワークフローステップを追加し、ビジネスロジックを構築します。
住宅ローンの例では、以下の図に示すように、記録文書の作成、2 つのタスクの割り当てステップ、文書の署名ステップをモデルのブランチ 1 に追加します。タスクの割り当てステップの 1 つは 申請者の署名予定ローンドキュメント の表示と送信に使用し、もう 1 つは、署名済みドキュメントの表示 に使用します。また、分岐 2 にタスクの割り当てコンポーネントも追加します。AEM インボックスで「拒否」をタップすると、分岐 2 がアクティブになります。
サンプルの住宅ローン申し込みに設定されたタスクの割り当て手順、レコードのドキュメント手順、ドキュメントの署名手順のすべてのフィールドの値セットは、このセクションの始めでダウンロードできます。
ワークフローモデルの準備が整いました。ワークフローは、様々な方法で起動できます。詳しくは、OSGi での Forms 中心のワークフローの起動を参照してください。
Forms 中心のワークフローアプリケーションの作成 create-a-forms-centric-workflow-application
アプリケーションは、ワークフローに関連付けられているアダプティブフォームです。インボックス経由でアプリケーションが送信されると、関連するワークフローが起動します。AEM インボックス および AEM Forms アプリケーションで、フォームワークフローをアプリケーションとして使用できるようにするには、以下の手順でワークフローアプリケーションを作成します。
- AEM オーサーインスタンスで、 /フォーム/ワークフローアプリケーションを管理 に移動し、「作成」をタップします。
- ワークフローアプリケーションの作成ウィンドウで、以下に示すフィールドの入力情報を指定して「作成」をタップします。新しいアプリケーションが作成され、ワークフローアプリケーション画面にリストされます。
OSGi 上での Forms 中心のワークフローの起動 launch
Forms 中心のワークフローは、次のように起動またはトリガーできます。
AEM インボックスからのアプリケーションの送信 inbox
作成したワークフローアプリケーションは、インボックスでアプリケーションとして使用できます。workflow-users グループのメンバーであるユーザーはアプリケーションを入力して送信でき、関連するワークフローがトリガーされます。AEM インボックスを使用してアプリケーションを送信し、タスクを管理する方法について詳しくは、「AEM インボックスでの Forms アプリケーションとタスクの管理」を参照してください。
AEM Forms アプリケーションからのアプリケーションの送信 afa
AEM Forms アプリケーションは、AEM Forms サーバーと同期し、アカウント内のフォームデータ、タスク、ワークフローアプリケーション、保存済み情報(ドラフト、テンプレート)を変更できるようにします。詳しくは、「AEM Forms アプリケーション」と関連記事を参照してください。
アダプティブフォームの送信 af
アダプティブフォームが送信されるとワークフローが開始するように、アダプティブフォームの送信アクションを設定することができます。アダプティブフォームでは、AEM ワークフローを起動 送信アクションにより、アダプティブフォームの送信時にワークフローが開始するようにできます。送信アクションについて詳しくは、送信アクションの設定を参照してください。AEM Forms アプリケーションを使用してアダプティブフォームを送信するには、アダプティブフォームのプロパティで「AEM Forms アプリケーションと同期」を有効にします。
アダプティブフォームを設定すると、ワークフローの同期、送信、トリガーを AEM Forms アプリケーションから実行することができます。詳しくは、フォームの操作を参照してください。
監視フォルダーの使用 watched
管理者(fd-administrator グループのメンバー)はネットワークフォルダーを設定することにより、ユーザーがそのフォルダーにファイル(PDF ファイルなど)を配置すると、設定済みワークフローが実行されるようにすることができます。ワークフローが完了したら、結果のファイルを指定した出力フォルダーに保存できます。このようなフォルダーを監視フォルダーと呼びます。監視フォルダーがワークフローを起動するよう設定するには、以下の手順を実行します。
- AEM オーサーインスタンスで、 /フォーム/監視フォルダーの設定 に移動します。既に設定されている監視フォルダーのリストが表示されます。
- 「新規」を選択します。フィールドのリストが表示されます。 次のフィールドの値を指定して、ワークフローに監視フォルダーを設定します。
-
「詳細」を選択します。以下のフィールドの値を指定して「作成」をタップします。ワークフローを起動するように監視フォルダーを設定できます。これで、監視フォルダーの入力ディレクトリにファイルが配置されるといつでも、指定されたワークフローがトリガーされます。
table 0-row-2 1-row-2 フィールド 説明 ペイロードマッパーフィルター 監視フォルダーを作成すると、crx-repository にフォルダー構造が作られます。このフォルダー構造はワークフローへのペイロードとして使用されます。AEM ワークフローをマッピングするスクリプトを記述すると、監視フォルダー構造からの入力を受け入れるようにできます。初期設定済みの実装を使用することができ、ペイロードマッパーフィルターにリストされます。カスタム実装がない場合は、デフォルトの実装を選択します。 「詳細」タブには、さらに多くのフィールドが含まれています。これらのほとんどのフィールドにはデフォルトの値が指定されています。すべてのフィールドについて詳しくは、監視フォルダーの作成と設定の記事を参照してください。
インタラクティブ通信またはレターの送信 letter
インタラクティブ通信やレターを送信する際に、OSGi 上の Forms 中心のワークフローを関連付けて実行することができます。通信の管理では、ワークフローを使用して、インタラクティブ通信とレターの後処理を実行します。例えば、最終レターのメール送信、印刷、FAX 送信、アーカイブなどです。詳細な手順については、インタラクティブ通信とレターの後処理を参照してください。
追加設定 additional-configurations
メールサービスの設定 configure-email-service
AEM ワークフローの「タスクの割り当て」ステップと「メールの送信」ステップを使用すると、メールを送信できます。次の手順を実行して、メールの送信に必要なメールサーバーおよびその他の設定を指定します。
- AEM Configuration Manager(
https://[server]:[port]/system/console/configMgr
)に移動します。 - Day CQ メールサービス の設定を開きます。「SMTP サーバーのホスト名」、「SMTP サーバーポート」、「送信元アドレス」フィールドの値を指定します。「保存」をクリックします。
- 「Day CQ Link Externalizer」の設定を開きます。「ドメイン」フィールドで、ローカルインスタンス、オーサーインスタンス、発行インスタンスの実際のホスト名/ IP アドレスとポート番号を指定します。「保存」をクリックします。
ワークフローインスタンスの削除 purge-workflow-instances
ワークフローインスタンスの数を最小限に抑えるとワークフローエンジンのパフォーマンスが向上します。完了したワークフローインスタンスや実行中のワークフローインスタンスはリポジトリーから定期的に削除できます。詳しくは、「ワークフローインスタンスの定期的なパージ」ワークフローインスタンスのパージを参照してください.
機密データをワークフロー変数にパラメーター化し、外部データストアに保存 externalize-wf-variables
アダプティブフォームから Experience Manager ワークフローに送信されたデータに、エンドユーザーの PII(個人を特定できる情報)または SPD(機密の個人データ)を含めることができます。ただし、Adobe Experience Manager JCR リポジトリにデータを保存する必要はありません。情報をワークフロー変数にパラメーター化することで、エンドユーザーデータの管理対象データストレージ(Azure Blob Storage など)への外部化が可能です。
Adobe Experience Manager Forms Workflow では、データが処理され、ワークフロー変数を介して一連のワークフローステップを通過します。これらの変数は、名前の付いたプロパティまたはキーと値のペアで、ワークフローインスタンスのメタデータノード(例:/var/workflow/instances/<serverid>/<datebucket>/<uniquenameof model>_<id>/data/metaData
)に保存されます。これらのワークフロー変数は、JCR 以外の別のリポジトリに外部化し、Adobe Experience Manager ワークフローで処理できます。Adobe Experience Manager は UserMetaDataPersistenceProvider
API を提供して、管理対象の外部ストレージにワークフロー変数を保存します。顧客が所有する Adobe Experience Manager のデータストアに対するワークフロー変数の使用について詳しくは、外部データストアのワークフロー変数の管理を参照してください。
Adobe は、API UserMetaDataPersistenceProvider を使用して、ワークフローメタデータマップから Azure blob ストレージに変数を保存するために、以下のサンプルを提供しています。同様に、サンプルを参考にして、[UserMetaDataPersistenceProvider] API を使用して、Adobe Experience Manager の外部の他のデータストレージにワークフロー変数を外部化し、同じものを管理することができます。
ワークフロー API サンプル実装のインストール
管理対象の Azure blob ストレージにワークフロー変数を格納するには、次の手順に従います。
-
次のようにサンプルワークフロー API UserMetaDataPersistenceProvider をインストールします。
-
プロジェクトのルートディレクトリで、Maven 3 を使用して
mvn clean install
コマンドを実行します。 -
バンドルとコンテンツパッケージをオーサーにデプロイするには、
mvn clean install -PautoInstallPackage
.を実行します。 -
オーサーにバンドルのみをデプロイするには、
mvn clean install -PautoInstallBundle
.を実行します。
-
-
ui.config
コンテンツパッケージの Externalizer OSGi 設定ファイルで、次のプロパティを初期化します。code language-jql accountKey="" accountName="" endpointSuffix="" containerName="" protocol=""
これらのプロパティの目的(および例)を次に示します。
-
accountKey は、アクセスを許可するための秘密鍵です。
-
accountName は、データを保存する必要がある azure アカウントです。
-
endpointSuffix、例:
core.windows.net
。 -
containerName は、データの保存が必要なアカウントのコンテナです。このサンプルでは、コンテナが存在すると仮定しています。
-
protocol、例:
https
またはhttp
。
- Adobe Experience Manager.でのワークフローモデルの設定外部ストレージのワークフローモデルを設定する方法については、ワークフローモデルの設定を参照してください。
外部データストレージ用 Adobe Experience Manager ワークフローモデルの設定 configure-aem-wf-model
外部データストレージを使用するための AEM ワークフローモデルを設定するには、次の手順に従います。
-
ツール/ワークフロー/モデル に移動します。
-
モデル名を選択し、「編集」をタップします。
-
「ページ情報」アイコンを選択し、「プロパティを開く」を選択します。
-
「ワークフローのデータストレージを具体化」を選択します。
-
「保存して閉じる」を選択して、プロパティを保存します。
AEM ワークフローで外部データストレージを使用する場合のガイドライン guidelines-workflows-external-data-storage
Adobe Experience Manager ワークフローを使用し、外部データストレージ(例:Microsoft Azure ストレージサーバー)にデータを保存する場合のガイドラインを以下に示します。
-
ワークフローモデルステップで入出力データファイルと添付ファイルを定義する際は、変数を使用してデータを格納します。「ペイロードを基準とする」オプションと「絶対パスで利用可能」オプションを選択しないでください。外部データストレージを使用するように Adobe Experience Manager ワークフローモデルを設定したら、「ペイロードを基準とする」オプションと「絶対パスで利用可能」オプションは自動的には表示されません。
-
アダプティブフォームを AEM ワークフローに送信する際は、変数を使用してデータファイルと添付ファイルを格納します。アダプティブフォームを Adobe Experience Manager ワークフローに送信する際に、「ペイロードを基準とする」オプションを選択しないでください。外部データストレージを使用するように Adobe Experience Manager ワークフローモデルを設定したら、「ペイロードを基準とする」オプションは自動的には表示されません。
-
ワークフローモデルでカスタム Adobe Experience Manager ワークフローステップを使用して CRX DE リポジトリにデータを保存しないでください。
-
外部データストレージ用に Adobe Experience Manager ワークフローモデルを設定する場合、Adobe Experience Manager インボックス内の作業項目が外部ストレージとしてマークされたワークフローに属しているとカスタム列の値は取得されないので、Adobe Experience Manager インボックス用にカスタム列を作成しないでください。