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