UiPath エラーハンドリング「この行は既に別のテーブルに属しています。」

UiPathでデバッグ。この行は既に別のテーブルに属していますとは?

UiPathで「この行は既に別のテーブルに属しています。」とエラーが表示されたことはありませんか?考えられるケースはいくつかあります。今回は考えられるケースのうち、代表的な例を挙げたいと思います。

代表的な例 「データ行を追加」でエラー発生

一番代表的な例は「データ行を追加」ではないでしょうか。データ行を追加とは、指定したデータテーブルの中に追加したいDataRow型配列を入力させるアクティビティなのですが、ここに指定したデータテーブルとは異なるDataRowを入れるとエラー「この行は既に別のテーブルに属しています。」が発生します。

例えば以下のような例。

このケースとだと、多分InDtの先頭行だけを追加したいと思われます。列名も列数もOutDtと一緒なのに、なぜエラーになっちゃうのって思いますよね。実は新規追加したい行はデータテーブル「OutDt」とは異なっているんです。

DataTableに属したDataRowを配列として出力する

DataRowって基本的にDataTable.DataRowと親にDataTableが存在しているんですね。

DataTable
├DataColumns
└DataRows
     └row

なので、DataTable.Rows(0)のように指定した場合、DataRowは既に親が決まってるんです。親を切り替えることはできません。なのでその親離れをするためにDataTalbe.Rows(0).ItemArrayをすることで、このDataRowを親離れすることができます。

3件のフィードバック

  1. Howdy! This post could not be written any better!
    Going through this post reminds me of my previous roommate!
    He constantly kept preaching about this. I most certainly will send
    this information to him. Fairly certain he’s going to have a very good read.
    Thank you for sharing!

    Also visit my homepage vpn special coupon

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

目次