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