繰り返し(データテーブルの各行)の時間間隔を空けたい

初心者です。どうぞよろしくお願いいたします。

繰り返し(データテーブルの各行)を行うにあたり、データテーブルのデータが1,000件あった場合に以下の様に動かしたいです。
100件繰り返し
⇒30分休憩
⇒100件繰り返し
⇒30分休憩
⇒・・・・
を1,000件終わるまで繰り返し処理を行いたいのですが、どのようにしたらいいのか分からないため、どなたか案をご教授いただけませんでしょうか?

どうぞよろしくお願いいたします :sparkles:

Hi @ayumi.ouchi

Read Range -> dataTable
Assign -> currentIndex = 0

While currentIndex < dataTable.Rows.Count
    For Each row in dataTable.AsEnumerable().Skip(currentIndex).Take(100).CopyToDataTable()
   //Process

    Assign -> currentIndex = currentIndex + 100
    If currentIndex < dataTable.Rows.Count
        Delay -> 00:30:00

Hope it helps!!

1 Like

Hi @ayumi.ouchi

=> Read Range Workbook
Output → dt

=> Use below syntax in Assign

Assign Activity -> counter = 0

Assign Activity -> batchSize = 100

Note: counter and batchSize variable are of DataType System.Int32

=> Use For Each row in DataTable to iterate though dt

For Each Row in dt
    // Process row logic
    Assign -> counter = counter + 1
   If
      counter >=batchSize
   Then
       Use Delay Activity -> 00:30:00
       Assign -> counter = 0
   End If
End For Each

Hope it helps!!

1 Like

具体例まで添付いただきありがとうございます!
参考にし、作成してみます :smiling_face_with_three_hearts:

2 Likes

参考になりますが、別解です。
Chunkメソッドを使うと指定の数の束に分割してくれますので、これを使うとシンプルに記載できます。

dt.AsEnumerable.Chunk(100)

とすると複数の「100行分のDataRow 」に分割してくれます

.

1 Like

いつもいつもありがとうございます :face_holding_back_tears: :sparkles:
このフローが一番わかりやすいです!!
こちらも参考に作成してみます :saluting_face: