質問
「CSVやExcelデータの列数が読み取り設定より少なかった場合にエラーを返すことはできますか」の設定をベースとして、例外通知処理のメッセージにすべてのエラー発生箇所を表示することはできますか。
回答
CSVやExcelデータの列数が読み取り設定で指定した列数よりも少ない場合、例外通知処理のメッセージにすべてのエラー発生箇所を表示することは可能です。
以下にサポートにて検証済みのスクリプト実装例をご紹介いたします。
あくまで一例となりますので、お客様のご要件に合わせて適宜ご調整ください。
■スクリプトの実装イメージ
■処理概要
・読み取りデータに対してチェックを行う(データチェック条件としては、各列に対して入力が必須であること)
・データチェック条件と一致しないレコード数分、以下処理を繰り返す(foreach)
マッピングで、"〇件目=[行,列,値,チェック結果のメッセージ]"のメッセージを作成し、スクリプト変数に代入
・作成したエラーメッセージを例外通知処理で表示する
■設定手順
※「CSVやExcelデータの列数が読み取り設定より少なかった場合にエラーを返すことはできますか」の設定が実装済みであることを前提としております。
設定の全体像としては上記FAQをご参照ください。
1.現在のスクリプトに対して、「スクリプトの実装イメージ」を参考に以下コンポーネントを追加で配置する
・[マッピング]
・[繰り返し(データ件数)処理]
2.処理で使用するスクリプト変数を2つ作成する
例:count(整数型)
e(文字列型)
3.[データチェック処理]にて、「必須設定」の「データチェック条件一覧」に以下のとおり入力データの列に対するチェック条件を指定する
※全ての条件について、「必須」にチェックを入れてください
4.[条件分岐処理]にて、「変数 data_check:unmatched_count が 0 より大きい」の条件を追加する
5.[繰り返し(データ件数)処理]にて、「必須設定」の「1ループでの処理件数」に「1」を入力する
6.[変数代入処理](setCount)にて、以下の図のとおりロジックを配置し、マッピングリンクでつなぐ
※foreachのcountの初期値が0であるため、foreachのcountに1を足す
・[足し算]ロジック ※入力数は「2」を選択
・[数値定数]ロジック ※数値に「1」を入力
7.[マッピング](generateErrorMessage)にて、以下の図のとおりロジックを配置し、マッピングリンクでつなぐ
・[nullを置換]ロジック ※置換文字列に「null」を入力
・[複数行文字列定数]ロジック ※複数行文字列欄に改行を1つ入れる
・[連結]ロジック
※連結「concat1」は、入力数は「7」を選択
※連結「concat2」は、入力数は「6」を選択
・[単一行文字列定数]ロジック
※単一文字列定数「comma」は、一行文字列に「,」を入力
※単一文字列定数「case」は、一行文字列に「${count}件目=」を入力
※単一文字列定数「open sbracket」は、一行文字列に「[」を入力
※単一文字列定数「close sbracket」は、一行文字列に「]」を入力

8.[例外通知処理]にて、「必須設定」の「メッセージ」に「${e}」を入力する
上記を設定後、スクリプトを実行すると、以下のようなメッセージが表示されます。
コメント
0件のコメント
記事コメントは受け付けていません。