繰り返し データテーブル 上書き

いつもお世話になっております。

データテーブルの上書きについて、お聞きしたい事があります。
先日、UiPathの講習で
「繰り返しでデータテーブルを使う際は、使用後"データテーブルのクリア"を使用してください」
との説明があったのですが、
今まで"データテーブルのクリア"入れていなかった;; と反省しました。

繰り返しでデータを読み込みしているのですが
ただ、今までおかしなデータになったこともありませんし
新しいデータが更新されています。
前回のデータの残骸が残った経験もありません。

繰り返しの最後に、
使用したデータテーブルの変数の数分の"データテーブルのクリア"を入れ込んであげた方が
良いのでしょうか?

“データテーブルのクリア”
入れる理由:データテーブルを使用したから、クリアとセットで考える・・・
入れない理由:見つかりません。

よろしくおねがいいたします。

データテーブルは一度に大量のデータを扱える事が出来ます。

それ故、繰り返しから抜けた後にデータテーブルのクリアした方が、メモリの節約になると考えます。

2 Likes

@HANACCHI さん
ありがとうございます!

データの不具合どうのこうのではなく

ズバッと
メモリの節約!
これだけで、アクティビティを入れる理由としては十分ですね。

1 Like

例えば、入力属性のDataTableを持つINVOKE先XAMLで、そのDataTableを操作したのち、復帰したINVOKE元で入力属性のDataTableの内容が変わっていないだろうと思っても、実は変わってしまっていて、これはやはり大量のDataTableを扱えるので、二重に持つには忍びないとの配慮(?)だそうです。

ちょっと説明が分かりにくいなぁ<m(__)m>

@HANACCHI さん

すみません
リプライありがたく読ませていただきましたが・・・
不具合に繋がる可能性として否定できない事は理解出来たのですが

>二重に持つには忍びないとの配慮(?)
まったくピンっと来ませんでした(申し訳ありません)

繰り返しでの話とは変わってしまいそうですが
スコープ設定のエリアを小さくする事により、クリアを入れずに勝手にリセットされるという認識を持ってしまっても良いのかどうかも疑問です。

いろいろテストしても、まったく不具合が起きないので
実際のデータテーブル内での不具合が起きた症例でもあれば、ピンっと来るのかもしれません・・・

入力属性の変数は、INVOKE後も内容が変わらないと思っていたのが、DataTableに関しては、変化してしまう。それぢゃ入力属性の意味がないですね?とUiPath社に言ってみたのですが。。。(^_^.)

まぁ、お困りの問題点とはあまり関係なくなってしまうので、この辺で。。。<m(__)m>

こんにちは

おそらくこのあたりの事象も踏まえてのことかもしれません。

1 Like

@Yoichi さん
リンクの添付ありがとうございます。

はっきりとしたものは見えませんでしたが
可能性も含めて、「不具合は出る!」と受け止めました。

こんにちは

「不具合は出る!」と受け止めました

通常は不具合は出ないと思います。
リンク先のケースは、データスクレイピングで使用されているExractStructuredDataアクティビティの出力DataTableがIN-OUT型であることにより起因しているように見えます。そのため初期化しないと、データが追記され想定通りにならなかったものと推察されます。

お作法やメモリの観点からは不要となった時点で明確に開放したほうがベターと思いますが、これにより必ずしも不具合に直結するものではないのでは?と思います。

1 Like

@Yoichi さん

でも"不具合がゼロでは無い"という認識は持っておいた方が良さそうですね

クリアを入れる方向で進めようとは思いますが、
メモリの観点だけなんですよね 今の理由としては・・・

繰り返しの最後にクリアを入れる⇒同じ変数名のテーブルに新しいデータを読み込む
そのクリアを入れる理由を作るには、"不具合が出るかもしれない"論が無いと成立しない事になってしまうので・・・
すぐ次のデータを入れ込むので、メモリ負担はあまり意味の無い理由になってしまいます

データに不具合が出ないなら、「上書きしないので、クリアは入れ込んでください」とは
習わないと思うのですよね・・・

こんにちは

その講師の方に趣旨を確認されたほうがクリアになるのではないかと思いますが...

1 Like

ありがとうございます。
質問してみます。

ありがとうございます。
質問してみます。

習ったポイントとしましては
“データテーブルの変数にデータを書き出しすると既存のデータに追加されてしまう為、
まず既存データのクリアを行っています。”
と繰り返しの終わる前に入れるように習いました。

こんにちは

これは先にリンク先で示しました、データスクレイピングウィザードで使用・出力されるExtractStructuredData(構造化データを抽出)アクティビティの仕様のことを言及されているのではないでしょうか?このアクティビティの出力-データテーブルプロパティはInOut型になっているのでそのような挙動をとります。
一方Excelアクティビティパッケージ内のReadRangeアクティビティは、同じように出力-データテーブルプロパティがありますが、こちらはOut型となっていますので、追記されません。
代入アクティビティも追記は行われないと思います。

UiPathではデータスクレイピングはよく使われますので、講師の方は、どのような状況でも安全サイドとなることを考慮して、そのような発言をされたのではないでしょうか?

2 Likes

大変勉強になります。

取得の仕方、取り扱いの仕方
様々な用途でも動作する確実なフローの作り方を学んでいきたいと思います。

1 Like