保存前/削除前ジョブのスキーマを設定
[Before Saving] (保存前)/[Before Deleting] (削除前)プロセスは命名規則によって直接呼び出されます。通常の[Trigger] (トリガー) > [Process] (プロセス)の操作は行いません。[Before Saving] (保存前)または[Before Deleting] (削除前)プロセスで呼び出されたジョブは、トリガーで呼び出された時とは異なるドキュメントを受け取ります。さらに、ステータスレポートまたはWebインターフェイスで処理を続行/キャンセルするためのエラーまたは警告メッセージ([Before Saving] (保存前)のみ)が返されることが想定されます。
[Input] (入力)
入力ドキュメントはアップデートレポートと、保存または削除されているレコードで構成されます:
<exchange>
<report>
... update report ...
</report>
<item>
... record ...
</item>
</exchange>
ジョブでは、トリガーと同様の条件を付けることができます。たとえば、exchange/report/Update/OperationTypeを使用して、CREATEおよびUPDATEで異なる条件を実装できます。
出力
ジョブでは表示するメッセージタイプに基づいて、以下のいずれかの形式に準拠したドキュメントを返します:
-
<report><message type="error">message</message></report>
-
<report><message type="warning">message</message></report>
([Before Saving] (保存前)プロセスの場合のみ)
-
<report><message type="info">message</message></report>
[Before Saving] (保存前)および[Before Deleting] (削除前)の処理方法としては、以下の3つのケースにまとめることができます。
MDMサーバーでは[Before Saving] (保存前)または[Before Deleting] (削除前)プロセスの完了時にプロセスパイプラインでoutput_report変数が検索されます。
最初のケース:
-
<report><message type="info">message</message></report>の場合: データレコードの有効化チェックプロセスが正しく実行され、メッセージが表示されます。データレコードは[Before Saving] (保存前)プロセスで正しく保存されるか、[Before Deleting] (削除前)プロセスで正しく削除されます。
-
<report><message type="warning">message</message></report>の場合([Before Saving] (保存前)のプロセスの場合のみ): データレコードの有効化プロセスが実行され、警告メッセージが表示されます。OKをクリックして処理を続行し、レコードを保存するか、[Cancel]をクリックして処理を中止します。
-
<report><message type="error">message</message></report>の場合: データレコードの有効化チェックプロセスが失敗し、メッセージが表示されます。データレコードは[Before Saving] (保存前)プロセスでは保存されず、[Before Deleting] (削除前)プロセスでは削除されません。
2番目のケース:
MDMサーバーでoutput_report変数が見つからなかった場合です。データレコードの有効化プロセスが失敗し、確認するエラーメッセージが表示されます。データレコードは[Before Saving] (保存前)プロセスでは保存されず、[Before Deleting] (削除前)プロセスでは削除されません。
3番目のケース:
プロセスは例外を返します(通常、プロセスのステップの1つが技術的エラーにつながります: 間違った構成、XSLT構文エラー、ジョブが見つからない、または呼び出せなかったなど)。技術的なエラーメッセージが表示され、データレコードは[Before Saving] (保存前)のプロセスでは保存されず、[Before Deleting] (削除前)プロセスでは削除されません。