逆引きテンプレートについて
HULFT Squareをご利用いただきありがとうございます。
本記事では、「メインスクリプトから複数のサブスクリプトを呼び出し、すべてのサブスクリプトが正常終了した場合のみコミットしたい」のスクリプトについて、詳細および使用方法についてご案内します。
※逆引きテンプレートは、HULFT Squareの画面から「App Square」より、アプリケーション「逆引き トランザクション(全サブスクリプト完了でコミット)」をインストールいただくことでご利用いただけます。
スクリプト名
- メインスクリプト
-
メインスクリプトから複数のサブスクリプトを呼び出し、すべてのサブスクリプトが正常終了した場合のみコミットしたい_トランザクションコンポーネントあり
Commit only all subscripts complete_Process error
-
メインスクリプトから複数のサブスクリプトを呼び出し、すべてのサブスクリプトが正常終了した場合のみコミットしたい_トランザクションコンポーネントなし
Commit only all subscripts complete_Configuration error
-
- サブスクリプト
-
すべてのサブスクリプトが正常終了した場合のみコミット(正常終了)
Commit only all subscripts complete (normal termination)
-
すべてのサブスクリプトが正常終了した場合のみコミット(異常終了)
Commit only all subscripts complete (abnormal termination)
-
概要
後続処理でエラーが発生した際にファイルやデータベースの更新処理をロールバックしたい(処理以前の状態に戻す)場合、トランザクションの設定を使用します。
トランザクション設定について
HULFT Squareのトランザクション設定は以下の2種類があります。
- スクリプトのプロパティを使用した、スクリプト単位での設定
- トランザクションコネクターを使用した、指定した処理単位での設定
トランザクションの詳細については、「トランザクション」を参照してください。
ファイル系コネクターの書き込み処理でトランザクション処理を行うにはトランザクションに参加する必要があります。
ファイル系コネクターのトランザクションの詳細については、「ファイル系コネクターのトランザクション」を参照してください。
スクリプトの説明
メインスクリプトから複数のサブスクリプトを呼び出し、すべてのサブスクリプトが正常終了した場合のみコミットします。
エラーが発生した場合、すべてのサブスクリプトの処理をロールバックします。
- メインスクリプト
-
メインスクリプトから複数のサブスクリプトを呼び出し、すべてのサブスクリプトが正常終了した場合のみコミットしたい_トランザクションコンポーネントあり
トランザクション設定
「トランザクション処理」コネクターを使用します。この場合、スクリプトの[トランザクション属性の設定]の設定値には影響されません。
-
メインスクリプトから複数のサブスクリプトを呼び出し、すべてのサブスクリプトが正常終了した場合のみコミットしたい_トランザクションコンポーネントなし
トランザクション設定
- メインスクリプトのプロパティで[トランザクション]タブの[トランザクション属性の設定]に以下のいずれかを選択します。
- [REQUIRED]
- [REQUIRESNEW]
- メインスクリプトのプロパティで[トランザクション]タブの[トランザクション属性の設定]に以下のいずれかを選択します。
-
-
サブスクリプト
正常終了
異常終了
トランザクション設定
- サブスクリプトのプロパティで[トランザクション]タブの[トランザクション属性の設定]に以下のいずれかを選択します。
- [SUPPORTS]
- [REQUIRED]
- [MANDATORY]
- サブスクリプトのプロパティで[トランザクション]タブの[トランザクション属性の設定]に以下のいずれかを選択します。
スクリプトの使用方法
上記処理を実装したスクリプトを用意しています。スクリプトを使用する場合の手順は「HULFT Squareアプリケーションのより詳しい使い方」をご参照ください。
スクリプトの作成手順
プロセスフローおよびデータフローは、「スクリプトの説明」のスクリプト画像を参照して適宜設定してください。
-
メインスクリプト
-
メインスクリプトから複数のサブスクリプトを呼び出し、すべてのサブスクリプトが正常終了した場合のみコミットしたい_トランザクションコンポーネントあり
-
ファイル名として使用するスクリプト変数を作成します。
-
スクリプト変数のプロパティは、以下のように設定します。
スクリプト変数のプロパティ
変数名 必須/省略可 説明 I_inputFile 必須 入力ファイルのフルパス I_outputFile 必須 出力ファイルのフルパス
入力データのイメージについては、「入力データ例」のサンプルデータ「input.csv」を参照してください。
-
- デザイナのツールパレット「基本」-「フロー」-「トランザクション」から、トランザクション処理をスクリプトキャンバスに配置します。
- デザイナのツールパレット「基本」-「処理」-「スクリプト呼び出し」から、スクリプト呼び出し処理をスクリプトキャンバスに配置します。
-
スクリプト呼び出し処理の設定は、以下のように行います。
[必須設定]タブ
[入出力]タブ
-
- デザイナのツールパレット「基本」-「処理」-「スクリプト呼び出し」から、スクリプト呼び出し処理をスクリプトキャンバスに配置します。
-
スクリプト呼び出し処理の設定は、以下のように行います。
[必須設定]タブ
-
- メインスクリプトを実行します。
- サブスクリプト2の「csv_read」でエラーが発生し、異常終了します。
- サブスクリプト1の「csv_write」の結果はロールバックされ、処理前の状態に戻ります。
-
-
メインスクリプトから複数のサブスクリプトを呼び出し、すべてのサブスクリプトが正常終了した場合のみコミットしたい_トランザクションなし
-
ファイル名として使用するスクリプト変数を作成します。
-
スクリプト変数のプロパティは、以下のように設定します。
スクリプト変数のプロパティ
変数名 必須/省略可 説明 I_inputFile 必須 入力ファイルのフルパス I_outputFile 必須 出力ファイルのフルパス
入力データのイメージについては、「入力データ例」のサンプルデータ「input.csv」を参照してください。
-
- デザイナのツールパレット「基本」-「処理」-「スクリプト呼び出し」から、スクリプト呼び出し処理をスクリプトキャンバスに配置します。
-
スクリプト呼び出し処理の設定は、以下のように行います。
[必須設定]タブ
[入出力]タブ
-
- デザイナのツールパレット「基本」-「処理」-「スクリプト呼び出し」から、スクリプト呼び出し処理をスクリプトキャンバスに配置します。
-
スクリプト呼び出し処理の設定は、以下のように行います。
[必須設定]タブ
-
- メインスクリプトを実行します。
- サブスクリプト2の「csv_read」でエラーが発生し、異常終了します。
- サブスクリプト1の「csv_write」の結果はロールバックされ、処理前の状態に戻ります。
-
-
-
サブスクリプト
-
すべてのサブスクリプトが正常終了した場合のみコミット(正常終了)
- ファイル名として使用するスクリプト変数を作成します。
-
スクリプト変数のプロパティは、以下のように設定します。
スクリプト変数のプロパティ
変数名 必須/省略可 説明 I_inputFile 必須 入力ファイルのフルパス I_outputFile 必須 出力ファイルのフルパス
-
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
-
CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
-
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。
-
CSVファイル書き込み処理の設定は、以下のように行います。
[必須設定]タブ
-
- ファイル名として使用するスクリプト変数を作成します。
-
すべてのサブスクリプトが正常終了した場合のみコミット(異常終了)
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。
-
入出力データ例
- 入力データ例
-
input.csv
すべてのサブスクリプトが正常終了した場合のみコミット
-
コメント
0件のコメント
記事コメントは受け付けていません。