OSGi 上の Forms 中心のワークフロー | ユーザーデータの処理 forms-centric-workflows-on-osgi-handling-user-data
Forms中心のAEMワークフローを使用すると、実世界のForms中心のビジネスプロセスを自動化できます。 ワークフローは、関連付けられたワークフローモデルで指定された順序で実行される一連のステップで構成されます。 各手順では、ユーザーへのタスクの割り当てや電子メールメッセージの送信など、特定のアクションを実行します。 ワークフローでは、リポジトリ内のアセット、ユーザーアカウントおよびサービスとやり取りができます。このため、ワークフローでは、Experience Manager のあらゆる側面を含む複雑なアクティビティを連携させることができます。
フォーム中心のワークフローは、次のいずれかの方法でトリガーまたは起動できます。
- 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 を繰り返します。
ユーザーデータの削除 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アプリの送信トレイからオフラインのドラフトおよび送信データを特定して削除し、サーバーに送信されないようにします。
また、API を使用してノードやプロパティにアクセスし、削除することもできます。 詳しくは、次のドキュメントを参照してください。