質問
Kintoneコネクターを利用して、Kintoneのレコード構造に合わせたcsvファイルを取得し、Kintoneレコードへ追加するスクリプトを作成しています。
csvファイルのレコード(行)数分、以下の処理を繰り返しております。
①csvファイルの対象行のレコードをスクリプト変数に格納
②csvファイルのキーコード(A)から、Kintoneの対象レコードを取得
③csvファイルが空文字ならば元々のKintoneの値、
空文字でないならばcsvファイルの値をKintoneの対象レコードに更新
②でキーコード(A)がKintoneに存在しないキーコードだった場合など、csvファイルに一件でもエラーがあれば、ファイル全件Kintoneに反映されないようするため、現在トランザクション処理で上記の繰り返し処理を囲んでおりますが、以下のようにcsvファイルの1行目の時に更新処理が行われてしまいます。
csvファイルの1行目=Kintoneキーコードあり ⇒更新
csvファイルの2行目=Kintoneキーコードなし ⇒エラー処理
繰り返し処理の前にトランザクションを組んでいるので、繰り返しが終了するまでCommitせずにロールバックされると思っていましたが、ロールバックされません。どうしてでしょうか。
現状のフローを以下に掲載します。
回答
トランザクションにつきまして、Kintoneレコード更新処理はトランザクションをサポートしていないため、ロールバックされず想定された動作とならなかったものと考えます。
Kintoneレコード更新処理につきましては、以下マニュアルページをご確認ください。
・Kintoneレコード更新処理
https://www.hulft.com/help/ja-jp/HULFTSquare/Content/Designer/Connector/kintone_update_record.htm
今回、「csvファイルに一件でもエラーが」あるかないかで処理を分岐させるとのことですので、対象レコードを更新するための繰り返し処理の前に、csvファイルにエラーとなるレコードが無いかを確認する処理をご準備いただき、エラーとなるレコードの有無で条件分岐させる処理フローをご検討ください。
その場合、csvファイルの内容をチェックする処理と、Kintoneの対象レコードを更新する処理では同じcsvファイルを参照することになるかと存じますので、2つの処理の間でcsvファイルの内容が変化しないよう、お気をつけいただく必要がございます。
コメント
0件のコメント
記事コメントは受け付けていません。