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