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に設定すると、すべてのドキュメントでこのコミット・プロファイルをスキップして、次のアクティブなコミット・プロファイルに移動できます。

構文 パラメータ

public preCommit (CommitEventObject commitEventObject)

CommitEventObject

commitEventObject

関連するCommitEventObjectプロパティ

  • cancel: trueに設定すると、このコミット・プロファイルはスキップされ、システムはキャプチャ・コンソールで定義されている次のアクティブなコミット・プロファイルでドキュメントのコミットを試みます。

  • batch: この時点で、このプロパティは初期化されています。

  • commitProfile: コミット・プロファイルは設定されています。

preReleaseDocument

preReleaseDocumentイベントは、ドキュメントがリリースされる前に発生します。これにより、ユーザー定義のスクリプトでリリース対象のドキュメントに対してアクションを実行できます。cancelプロパティでは、ドキュメントの追加処理を取り消して次のドキュメントに移動することもできます。

構文 パラメータ

public preReleaseDocument (CommitEventObject commitEventObject)

CommitEventObject

commitEventObject

関連するCommitEventObjectプロパティ

  • cancel: trueに設定すると、このドキュメントの追加処理は行われません。

  • batch: このプロパティは初期化されています。

  • commitProfile: コミット・プロファイルは設定されています。

  • document: このプロパティは、コミット対象の現在のドキュメントに設定されています。

  • documentFileName: このプロパティも初期化されています。

postReleaseDocument

postReleaseDocumentイベントは、各ドキュメントがリポジトリにリリースまたはコミットされた後に発生します。これにより、ユーザー定義のスクリプトでリリース後にドキュメントに対してアクションを実行できます。この時点でcancelプロパティをtrueに設定しても、影響はありません。ドキュメントのコミット中に問題が発生した場合、このメソッドはトリガーされない可能性があります。コミット・プロファイルの「エラー処理ポリシー」で、この動作をオーバーライドできます。

たとえば、コミット・プロファイルの「エラー処理ポリシー」で「次のコミット・プロファイルまで取消」が定義されていると、エラーが発生した場合には次のアクティブなコミット・プロファイルにスキップされ、このメソッドはコールされません。

構文 パラメータ

public postReleaseDocument (CommitEventObject commitEventObject)

CommitEventObject

commitEventObject

関連するCommitEventObjectプロパティ

  • cancel: trueに設定しても、影響はありません。

  • batch: このプロパティは初期化されています。

  • commitProfile: コミット・プロファイルは設定されています。

  • document: このプロパティは、コミット対象の現在のドキュメントに設定されています。

  • documentFileName: このプロパティも、この時点で初期化されています。

postCommit

postCommitイベントは、指定されたコミット・プロファイルに対してバッチが処理された後に発生します。これにより、ユーザー定義のスクリプトで後からクリーン・アップまたはロギング・アクションを実行できます。このメソッドを実行しても、ドキュメントがリポジトリに正常にコミットされているとはかぎりません。この時点でcancelプロパティをtrueに設定しても、影響はありません。

構文 パラメータ

public postCommit (CommitEventObject commitEventObject)

CommitEventObject

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());
}

コミット・プロセッサ・スクリプトのサンプル3

次のスクリプトは、preReleaseDocumentイベントでのドキュメント・コミットを取り消します:

function preReleaseDocument(event){
     event.setCancel(true);
     java.lang.System.out.println("preReleaseDocument batch-"+event.getBatch().getBatchName());
}