LoginSignup
6
0

More than 1 year has passed since last update.

【UiPath】「繰り返し (データ テーブルの各行) (For Each Row in Data Table) 」を使用してデータテーブルの特定行を削除する

Posted at

繰り返し (データ テーブルの各行) (For Each Row in Data Table) 」アクティビティ内では普通に行を削除しようとしてもエラーになります。
以下は繰り返し (データ テーブルの各行) の中で「データ行を削除」アクティビティを使用する例です。

image.png
商品名がリンゴの行だけ削除しようとしていますが、
「コレクションが変更されました」でエラーになってしまいます。
image.png


対策としては繰り返し (データ テーブルの各行) を使わずに「繰り返し (コレクションの各要素) 」や「データテーブルをフィルター」アクティビティで代用するケースが多いと思いますが、
メソッドを呼び出し」アクティビティを使うことで、繰り返し (データ テーブルの各行) でも特定行を削除することができます。

image.png
①繰り返しに入る前に、DataTable変数を対象にAcceptChangesメソッドを実行
②繰り返しの中で、DataRow変数を対象にDeleteメソッドを実行
③繰り返しを抜けた直後に、DataTable変数を対象にAcceptChangesメソッドを実行

事前にAcceptChangesメソッドを実行することで、Deleteメソッドを実行しても次のAcceptChangesまで行の削除が保留されます。
これにより、繰り返しの中では行削除されないためエラーにならず、繰り返しを抜けたところでDeleteメソッドを実行した特定行が一括で削除されるという流れになります。
image.png

動作環境

UiPath.System.Activities 22.10.3

参考

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0