7 コミット・プロセッサ・スクリプトの作成
この章では、コミット・プロセッサ・スクリプトの作成について説明します。コミット・プロセッサ・スクリプトを作成すると、ユーザー定義のJavaScriptを使用してコミット・プロセッサ・ジョブをカスタマイズできます。
この章の内容は、次のとおりです。
CommitEventObjectクラス
CommitEventObjectクラスには、処理対象のバッチまたはドキュメントに関連するプロパティが含まれます。このクラスのインスタンスは処理の開始前に作成され、処理の様々なステージでコミット・ドライバに渡されます。
次の表に、CommitEventObjectのフィールドを示します:
プロパティ | タイプ | 説明 |
---|---|---|
cancel |
java.lang.Boolean |
Trueに設定すると場合、処理操作は取り消されます。 |
logger |
Logger |
データをログ・ファイルに記録するために使用できるjava.util.logging.Loggerのインスタンス。 |
workingDirectory |
java.io.File |
コミット・ドライバがドキュメントを処理する現在の作業ディレクトリ。 |
batch |
BatchEntity |
バッチ情報が含まれます。 |
document |
DocumentEntity |
処理中の現在アクティブなドキュメント。 |
attachmentFileNames |
DocumentEntity |
処理中の現在アクティブな添付。 |
exportDriverInformation |
ExportDriverInformation |
添付のエクスポート・ドライバ情報。 |
dateCommitted |
java.util.Date |
ドキュメントがコミットされた日付。 |
commitProfile |
CommitProfileEntity |
コミット・プロセッサで使用される現在のコミット・プロファイル。 |
documentFileName |
java.lang.String |
ドキュメントのファイル名。 |
コミット・プロセッサのイベント
コミット・プロセッサ・スクリプトは、特定のコミット・プロセッサ・イベントの動作をカスタマイズできるJavaScriptモジュールです。
この項では、次のコミット・プロセッサ・イベントについて説明します:
preCommit
preCommitイベントは、ドキュメントがリポジトリにコミットされる前に発生します。ユーザー定義メソッドではこの機能を使用して、コミット・ドライバにより処理されているコミット・プロファイルに対してアクションを実行できます。cancel属性をtrueに設定すると、すべてのドキュメントでこのコミット・プロファイルをスキップして、次のアクティブなコミット・プロファイルに移動できます。
構文 | パラメータ |
---|---|
|
commitEventObject |
関連するCommitEventObjectプロパティ
-
cancel: trueに設定すると、このコミット・プロファイルはスキップされ、システムはキャプチャ・コンソールで定義されている次のアクティブなコミット・プロファイルでドキュメントのコミットを試みます。
-
batch: この時点で、このプロパティは初期化されています。
-
commitProfile: コミット・プロファイルは設定されています。
preReleaseDocument
preReleaseDocumentイベントは、ドキュメントがリリースされる前に発生します。これにより、ユーザー定義のスクリプトでリリース対象のドキュメントに対してアクションを実行できます。cancelプロパティでは、ドキュメントの追加処理を取り消して次のドキュメントに移動することもできます。
構文 | パラメータ |
---|---|
|
commitEventObject |
関連するCommitEventObjectプロパティ
-
cancel: trueに設定すると、このドキュメントの追加処理は行われません。
-
batch: このプロパティは初期化されています。
-
commitProfile: コミット・プロファイルは設定されています。
-
document: このプロパティは、コミット対象の現在のドキュメントに設定されています。
-
documentFileName: このプロパティも初期化されています。
postReleaseDocument
postReleaseDocumentイベントは、各ドキュメントがリポジトリにリリースまたはコミットされた後に発生します。これにより、ユーザー定義のスクリプトでリリース後にドキュメントに対してアクションを実行できます。この時点でcancelプロパティをtrueに設定しても、影響はありません。ドキュメントのコミット中に問題が発生した場合、このメソッドはトリガーされない可能性があります。コミット・プロファイルの「エラー処理ポリシー」で、この動作をオーバーライドできます。
たとえば、コミット・プロファイルの「エラー処理ポリシー」で「次のコミット・プロファイルまで取消」が定義されていると、エラーが発生した場合には次のアクティブなコミット・プロファイルにスキップされ、このメソッドはコールされません。
構文 | パラメータ |
---|---|
|
commitEventObject |
関連するCommitEventObjectプロパティ
-
cancel: trueに設定しても、影響はありません。
-
batch: このプロパティは初期化されています。
-
commitProfile: コミット・プロファイルは設定されています。
-
document: このプロパティは、コミット対象の現在のドキュメントに設定されています。
-
documentFileName: このプロパティも、この時点で初期化されています。
postCommit
postCommitイベントは、指定されたコミット・プロファイルに対してバッチが処理された後に発生します。これにより、ユーザー定義のスクリプトで後からクリーン・アップまたはロギング・アクションを実行できます。このメソッドを実行しても、ドキュメントがリポジトリに正常にコミットされているとはかぎりません。この時点でcancelプロパティをtrueに設定しても、影響はありません。
構文 | パラメータ |
---|---|
|
commitEventObject |
関連するCommitEventObjectプロパティ
-
cancel: trueに設定しても、影響はありません。
-
batch: このプロパティは初期化されています。
-
commitProfile: コミット・プロファイルは設定されています。
コミット・プロセッサ・スクリプトのサンプル
コミット・プロセッサ・スクリプトのサンプル1
次のスクリプトは、バッチがコミットされたときにすべてのイベントを出力します:
//commit processor javascript to print at the specific events function preCommit(event){ java.lang.System.out.println("In preCommit"); java.lang.System.out.println("Batch name preCommit: "+event.getBatch().getBatchName()); } function preReleaseDocument(event){ java.lang.System.out.println("In preReleaseDocument"); java.lang.System.out.println("Batch name preReleaseDocument: "+event.getBatch().getBatchName()); } function postReleaseDocument(event){ java.lang.System.out.println("In postReleaseDocument"); java.lang.System.out.println("Batch name postReleaseDocument: "+event.getBatch().getBatchName()); } function postCommit(event){ java.lang.System.out.println("In postCommit"); java.lang.System.out.println("Batch name postCommit: "+event.getBatch().getBatchName()); }
コミット・プロセッサ・スクリプトのサンプル2
次のスクリプトは、preCommitイベントでの操作を取り消します:
function preProcessBatch(event){ event.setCancel(true); java.lang.System.out.println("preCommit about to cancel operation commit profile operation."); java.lang.System.out.println("preCommit: Batch name "+event.getBatch().getBatchName()); } function preReleaseDocument(event){ java.lang.System.out.println("postProcessBatch - this method will not be called."); java.lang.System.out.println("postProcessBatch: Batch name "+event.getBatch().getBatchName()); }