OSGi 上の Forms 中心のワークフロー | ユーザーデータの処理 forms-centric-workflows-on-osgi-handling-user-data
Forms 中心の AEM ワークフローを使用すると、現実の Forms 中心のビジネスプロセスを自動化できます。ワークフローは、関連するワークフローモデルで指定された順序で実行される一連のステップで構成されます。各ステップでは、ユーザーへのタスクの割り当てやメールメッセージの送信など、特定のアクションを実行します。ワークフローでは、リポジトリ内のアセット、ユーザーアカウントおよびサービスとやり取りができます。このため、ワークフローでは、Experience Manager のあらゆる側面を含む複雑なアクティビティを連携させることができます。
Forms 中心のワークフローは、次のいずれかの方法でトリガーまたは起動できます。
- AEM インボックスからのアプリケーションの送信
- AEM Forms アプリケーションからのアプリケーションの送信
- アダプティブフォームの送信
- 監視フォルダーの使用
- インタラクティブ通信またはレターの送信
Forms 中心の AEM ワークフローおよび機能について詳しくは、OSGi 上の Forms 中心のワークフローを参照してください。
ユーザーデータとデータストア user-data-and-data-stores
ワークフローがトリガーされると、該当するワークフローインスタンスのペイロードが自動生成されます。各ワークフローインスタンスには、一意のインスタンス ID と関連するペイロード ID が割り当てられます。ペイロードには、ワークフローインスタンスに関連付けられたユーザーデータとフォームデータのリポジトリの場所が含まれています。さらに、ワークフローインスタンスのドラフトと履歴データも AEM リポジトリに格納されます。
ワークフローインスタンスのペイロード、ドラフトおよび履歴が存在するデフォルトのリポジトリの場所は次のとおりです。
ユーザーデータへのアクセスと削除 access-and-delete-user-data
ユーザーデータへのアクセスと削除は、リポジトリ内のワークフローインスタンスから実行できます。そのためには、ユーザーに関連付けられているワークフローインスタンスのインスタンス ID を把握しておく必要があります。ワークフローインスタンスのインスタンス ID を確認するには、ワークフローインスタンスを開始したユーザーまたはワークフローインスタンスの現在の担当者であるユーザーのユーザー名を使用します。
ただし、次のシナリオでは、イニシエーターに関連付けられているワークフローを特定する場合に、特定できないか、結果があいまいになる可能性があります。
- 監視フォルダーを介してトリガーされたワークフロー:ワークフローが監視フォルダーによってトリガーされた場合は、ワークフローインスタンスをそのイニシエーターを使用して特定することはできません。この場合、ユーザー情報は格納済みデータにエンコードされています。
- AEM の公開インスタンスから開始されたワークフロー:すべてのワークフローインスタンスは、アダプティブフォーム、インタラクティブ通信またはレターが AEM の公開インスタンスから送信されたときに、サービスユーザーを使用して作成されます。このような場合、ログインしているユーザーのユーザー名は、ワークフローインスタンスのデータには取り込まれていません。
ユーザーデータへのアクセス access
ワークフローインスタンスに格納されているユーザーデータを特定してアクセスするには、次の手順を実行します。
-
AEM オーサーインスタンスで、
https://'[server]:[port]'/crx/de
にアクセスして、ツール/クエリ に移動します。タイプ ドロップダウンから「SQL2」を選択します。
-
使用可能な情報に応じて、次のいずれかのクエリを実行します。
- ワークフローイニシエーターが既知の場合は、次のコマンドを実行します。
SELECT * FROM [cq:Workflow] AS s WHERE ISDESCENDANTNODE([path-to-workflow-instances]) and s.[initiator]='*initiator-ID*'
- 検索しているデータのユーザーが現在のワークフローの担当者である場合は、次のコマンドを実行します。
SELECT * FROM [cq:WorkItem] AS s WHERE ISDESCENDANTNODE([path-to-workflow-instances]) and s.[assignee]='*assignee-id*'
クエリを実行すると、指定されたワークフロー開始者また現在のワークフロー担当者のすべてのワークフローインスタンスの場所が返されます。
例えば、次のクエリを実行すると、ワークフロー開始者が
/var/workflow/instances
のsrose
ノードから 2 つのワークフローインスタンスのパスが返されます。 -
クエリによって返されたワークフローインスタンスのパスに移動します。status プロパティには、ワークフローインスタンスの現在のステータスが表示されます。
-
ワークフローインスタンスのノードで、
data/payload/
に移動します。path
プロパティには、ワークフローインスタンスのペイロードへのパスが格納されます。パスに移動すれば、ペイロードに格納されたデータにアクセスできます。 -
ワークフローインスタンスのドラフトおよび履歴の場所に移動します。
次に例を示します。
/var/fd/dashboard/instances/server0/2018-04-09/_var_workflow_instances_server0_2018-04-09_basicmodel_54/draft/
/var/fd/dashboard/instances/server0/2018-04-09/_var_workflow_instances_server0_2018-04-09_basicmodel_54/history/
-
手順 2 のクエリを実行して返されたすべてのワークフローインスタンスで手順 3 から 5 を繰り返します。
note note NOTE AEM Forms アプリケーションはオフラインモードでもデータを格納します。ワークフローインスタンスのデータを個々のデバイスにローカルで格納し、サーバーとアプリケーションを同期するときに Forms サーバーに送信することができます。
ユーザーデータの削除 delete-user-data
次の手順を実行してワークフローインスタンスからユーザーデータを削除するには、AEM 管理者である必要があります。
-
ユーザーデータへのアクセスの説明に従って、以下をメモします。
- ユーザーに関連付けられているワークフローインスタンスへのパス
- ワークフローインスタンスのステータス
- ワークフローインスタンスのペイロードへのパス
- ワークフローインスタンスのドラフトおよび履歴へのパス
-
この手順を、RUNNING、SUSPENDED、または STALE ステータスにあるワークフローインスタンスに対して実行します。
-
https://'[server]:[port]'/aem/start.html
にアクセスして、管理者の資格情報を使用してログインします。 -
ツール/ワークフロー/インスタンス の順に移動します。
-
ユーザーに関連付けられているワークフローインスタンスを選択し、「終了」を選択して実行中のインスタンスを終了します。
ワークフローインスタンスの操作方法について詳しくは、ワークフローインスタンスの管理を参照してください。
-
-
CRXDE Lite コンソールにアクセスし、ワークフローインスタンスのペイロードパスに移動して、
payload
ノードを削除します。 -
ワークフローインスタンスのドラフトパスに移動して、
draft
ノードを削除します。 -
ワークフローインスタンスの履歴パスに移動して、
history
ノードを削除します。 -
ワークフローインスタンスのワークフローインスタンスパスに移動して、ワークフローの
[workflow-instance-ID]
ノードを削除します。note note NOTE ワークフローインスタンスノードを削除すると、すべてのワークフロー参加者のワークフローインスタンスが削除されます。 -
ユーザーに対して特定されたすべてのワークフローインスタンスについて、手順 2 から 6 を繰り返します。
-
ワークフロー参加者の AEM Forms アプリケーションの Outbox からオフラインのドラフトと送信データを特定して削除し、サーバーに送信されないようにします。
また、API を使用してノードおよびプロパティにアクセスしてこれらを削除することもできます。詳しくは、次のドキュメントを参照してください。