- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-08-2022 12:12 AM - edited 11-08-2022 12:14 AM
いつもお世話になっております。
現在、トランスフォームスクリプト(Oncomplete)のスクリプトでエラーチェックを行っています。
ターゲットテーブルにレコードが全行分作成されているか、確認するためにtarget.RowCount()を使用しました。
ログを確認した所、1行と出力されていましたが、その後の処理で行っているWhile(target.next())のループ文の中では、今回のインポート処理で作成される全行分(5行)ループします。
こちらの起こってしまう原因について、何かご存じであれば、どんな些細な事でもいいので、ご教授頂けると幸いです。
宜しくお願い致します。
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-09-2022 03:16 AM
onComplete の target.getRowCount() や target.next() ではなく、 ImportSet Table に Target Table が設定されているので、onComplete内でImportSet Tableを検索して確認したほうが良いです。 Errorが発生しているかは、それだけでは不足している(Recordが作成されたとしても、すべての項目が意図する値に正しく値が設定されているかは別に検知が必要)と思うので、エラーログを出力するなどして検知したほうが良いと思います。
(function runTransformScript(source, map, log, target /*undefined onStart*/ ) {
gr = new GlideRecord("sys_import_set_row"); // ImportSet Table の 親。(実際のImportSetTableでも良い)
gr.addQuery("sys_import_set", import_set.getValue('sys_id'));
gr.query();
if (gr.next()) {
var targetRecord = gr.sys_target_sys_id.getRefRecord(); // 作成か更新したレコード
// そのほか, sys_import_state, sys_import_row, sys_row_error
}
})(source, map, log, target);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-09-2022 03:16 AM
onComplete の target.getRowCount() や target.next() ではなく、 ImportSet Table に Target Table が設定されているので、onComplete内でImportSet Tableを検索して確認したほうが良いです。 Errorが発生しているかは、それだけでは不足している(Recordが作成されたとしても、すべての項目が意図する値に正しく値が設定されているかは別に検知が必要)と思うので、エラーログを出力するなどして検知したほうが良いと思います。
(function runTransformScript(source, map, log, target /*undefined onStart*/ ) {
gr = new GlideRecord("sys_import_set_row"); // ImportSet Table の 親。(実際のImportSetTableでも良い)
gr.addQuery("sys_import_set", import_set.getValue('sys_id'));
gr.query();
if (gr.next()) {
var targetRecord = gr.sys_target_sys_id.getRefRecord(); // 作成か更新したレコード
// そのほか, sys_import_state, sys_import_row, sys_row_error
}
})(source, map, log, target);