DataTableにDataRowが追加されません。

おはようございます
UiPath Studio 2024.10.5Community editionのユーザです。

ForEachアクティビティの中で、辞書変数をコレクションに設定してKeyで回しています。
辞書配列のvalueを下記の構文で配列化後、

arr_DataRow=kv.Value.Where(Function(r) r("Status").ToString = "〇").GroupBy(Function(r) r("Date").ToString).SelectMany(Function(g) g).ToArray

Else Ifアクティビティで、dt_Datatable4_work1にDataRowを追加しています。
Thenの場合は、DataRowを追加できますが、Elseの場合はDataRowが追加されません。(何も起きません)

どうしてでしょうか。

なお、Else側の列配列の構文は下記になります。

New Object(){kv.Key,TimeSpan.FromSeconds(0).ToString}

こんにちは

どの様に確認されていますか?
まずは、問題と思われるデータ行追加アクティビティにブレイクポイントを追加して、デバッグ実行→そのブレイクポイントにて処理が停止するか、停止すれば、F11キーでステップ実行し、ローカルパネルでデータテーブルの中身を確認すると良いかと思います。

こんにちは。
ブレイクポイント(Add DataRow)で処理が停止しなかったため、Else Ifアクティビティの直前のarr_DataRowに値を代入する箇所にブレイクポイントを設定して,辞書変数の値(kv,dict)の推移と
arr_DataRow変数の値の推移を調べてみました。

辞書変数の値(kv,dict)の推移は問題ありません。

kv
KeyValuePair<string, DataRow[]> { "2024/09/26", DataRow[9] { DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "19:10:24", "19:11:14", "00:00:50", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "19:36:08", "19:36:39", "00:00:31", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "19:38:11", "19:38:45", "00:00:34", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "20:13:47", "20:14:59", "00:01:12", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "20:28:38", "20:31:29", "00:02:51", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "20:34:16", "20:35:51", "00:01:35", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "21:42:26", "21:44:14", "00:01:48", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "21:46:09", "21:47:52", "00:01:43", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "23:13:12", "23:13:54", "00:00:42", "〇" }, RowError="", RowState=Added, Table=[DataTable] } } }

dict
Dictionary<string, DataRow[]>(2) { { "2024/09/22", DataRow[1] { DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/22", "14:17:04", "14:18:49", "00:01:45", "〇" }, RowError="", RowState=Added, Table=[DataTable] } } }, { "2024/09/26", DataRow[9] { DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "19:10:24", "19:11:14", "00:00:50", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "19:36:08", "19:36:39", "00:00:31", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "19:38:11", "19:38:45", "00:00:34", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "20:13:47", "20:14:59", "00:01:12", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "20:28:38", "20:31:29", "00:02:51", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "20:34:16", "20:35:51", "00:01:35", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "21:42:26", "21:44:14", "00:01:48", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "21:46:09", "21:47:52", "00:01:43", "〇" }, RowError="", RowState=Added, Table=[DataTable] }, DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/26", "23:13:12", "23:13:54", "00:00:42", "〇" }, RowError="", RowState=Added, Table=[DataTable] } } } }

Else Ifアクティビティの直前に、下記の構文1でarr_DataRowに値を代入していますが、

構文1
arr_DataRow=kv.Value.Where(Function(r) r("Status").ToString = "〇").GroupBy(Function(r) r("Date").ToString).SelectMany(Function(g) g).ToArray

arr_DataRowの値が下記のとおり推移していませんでした。(2回とも値が同じ)

DataRow[1] { DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/22", "14:17:04", "14:18:49", "00:01:45", "〇" }, RowError="", RowState=Added, Table=[DataTable] } }
DataRow[1] { DataRow { HasErrors=false, ItemArray=object[5] { "2024/09/22", "14:17:04", "14:18:49", "00:01:45", "〇" }, RowError="", RowState=Added, Table=[DataTable] } }

おそらく構文1に問題があるのではないかと推測します。どう修正すれば良いでしょうか。

ご参考までに、構文1が参照しているdtの値は下記のとおりです。

[Date,Start,End,TimeSpan,Status
2024/09/21,18:38:54,18:39:12,00:00:18,×
2024/09/21,20:01:43,20:02:33,00:00:50,×
2024/09/21,20:11:21,20:11:35,00:00:14,×
2024/09/21,20:12:22,20:13:28,00:01:06,×
2024/09/21,20:28:23,20:28:38,00:00:15,×
2024/09/21,20:29:06,20:29:21,00:00:15,×
2024/09/21,20:31:21,20:31:34,00:00:13,×
2024/09/21,20:32:08,20:32:23,00:00:15,×
2024/09/21,20:34:07,20:34:19,00:00:12,×
2024/09/21,20:34:55,20:35:11,00:00:16,×
2024/09/21,20:37:46,20:38:03,00:00:17,×
2024/09/21,21:01:25,21:01:42,00:00:17,×
2024/09/21,21:18:11,21:18:16,00:00:05,×
2024/09/21,21:20:57,21:21:12,00:00:15,×
2024/09/21,21:49:53,21:50:10,00:00:17,×
2024/09/21,22:02:19,22:02:40,00:00:21,×
2024/09/22,14:00:28,14:00:56,00:00:28,×
2024/09/22,14:17:04,14:18:49,00:01:45,〇
2024/09/25,17:13:23,17:13:28,00:00:05,×
2024/09/25,17:20:52,17:20:57,00:00:05,×
2024/09/25,17:27:52,17:28:07,00:00:15,×
2024/09/25,17:49:35,17:49:45,00:00:10,×
2024/09/25,17:52:47,17:56:04,00:03:17,×
2024/09/25,17:58:58,17:59:10,00:00:12,×
2024/09/25,18:05:12,18:05:20,00:00:08,×
2024/09/25,18:12:32,18:12:36,00:00:04,×
2024/09/25,18:14:20,18:14:27,00:00:07,×
2024/09/25,18:15:25,18:15:32,00:00:07,×
2024/09/25,19:49:53,19:49:56,00:00:03,×
2024/09/25,19:50:51,19:50:55,00:00:04,×
2024/09/26,19:10:24,19:11:14,00:00:50,〇
2024/09/26,19:36:08,19:36:39,00:00:31,〇
2024/09/26,19:38:11,19:38:45,00:00:34,〇
2024/09/26,19:39:01,19:39:29,00:00:28,×
2024/09/26,19:59:18,19:59:41,00:00:23,×
2024/09/26,20:13:47,20:14:59,00:01:12,〇
2024/09/26,20:28:38,20:31:29,00:02:51,〇
2024/09/26,20:34:16,20:35:51,00:01:35,〇
2024/09/26,21:42:26,21:44:14,00:01:48,〇
2024/09/26,21:46:09,21:47:52,00:01:43,〇
2024/09/26,23:13:12,23:13:54,00:00:42,〇
2024/09/26,23:59:49,23:59:54,00:00:05,×
]

そもそもElse内に遷移していなかったということですね。

元々のご質問の

Thenの場合は、DataRowを追加できますが、Elseの場合はDataRowが追加されません。(何も起きません)

については、Elseに遷移していなかったが答えになると思います。

おそらく構文1に問題があるのではないかと推測します。どう修正すれば良いでしょうか。

ご参考までに、構文1が参照しているdtの値は下記のとおりです。

何を実現したいかを明確にいただかないと修正のしようがありませんが、上記のデータはStatus列に〇が含まれていますので、当然ながらこの行が結果に含まれることになります。

内容がタイトルから離れて行っていますので、いったんこのトピックはクローズいただいた方が良いかと思います。

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.