皆さんこんにちは。
UiPathで他のデータテーブルからコピーする方法の第三弾。
今回で最終です。
今回は「メソッドを呼び出し」アクティビティを使い実現しようと思います。
InvokeMethod(メソッドの呼び出し)は今回のデータテーブルの行追加という事だけに使うのではなく、様々な事に使えるアクティビティです。
ImportMethodはVB.netが用意しているメソッドを呼び出すアクティビティです。
(設定によってはC#もありますが、デフォルトはVB.netです)
UiPathが用意しているアクティビティだけではどうしても対応できないケースの対応方法としてInvokeMethodやInvokeCodeを使ったりします。
プログラミングが苦手な人だと「.net」という言葉で拒否感が出てしまうかもしれませんが、以下に書いてある通りに作業するだけで、VB.netのImportRowメソッドを使ったことになるので気軽にやっていただければと思います。
UiPathデータテーブルで実現したいこと
基本的なフローは前回と同じです。
config.xlsxとconfig_野菜.xlsxを読み込みdt果物とdt野菜というデータテーブル型の変数に入れます。
もしわからない場合は、下記のページで詳細を解説していますのでそちらをご覧になっていただければと思います
参考記事
UiPathデータテーブルでEXCELファイルの操作方法や連携方法を徹底解説!
ポイントは「メソッドを呼び出し」アクティビティの設定方法です
では早速やってみましょう
UiPathデータテーブルメソッドの呼び出しアクティビティの設置
アクティビティパネルの検索窓に「メソッドの呼び出し」または「InvokeMethod」と入力すると出てきます。
これをドラッグアンドドロップして「繰り返し(データテーブルの各行)」アクティビティ内にセットします。
UiPathデータテーブルアクティビティの設定
デザイナーパネルで設定していきます。
「ターゲットオブジェクト」には登録したいデータテーブル(この場合はdt果物)
「メソッド名」にはImportRowと入力します。
パラメータ右の「…」ボタンをクリック
「引数の作成」をクリック
方向は「入力」でOKです
型は「DataRow」型を指定します。
最後に値を設定します。この場合の値とはコピーしたいデータテーブルの行ですので、「CurrentRow」となります。
UiPathデータテーブルの確認
それでは確認してみましょう
UiPathデータテーブルのコピー速度のテスト
前回も行ったデータテーブルのコピーの処理時間のテストをここでも行ってみたいと思います。
条件は前回と同じくdt野菜に5000行のデータを入れて、dt果物にコピーする時間を測定します。
全てのフローをもう一度測定します(パソコンの条件が変わっているかもしれないので)
さて結果は。。。
なんと!「Object型配列」が一番でした。
次に「メソッドを呼び出し」
最後に「DataRow型」
私の予想だと「メソッドを呼び出し」が一番時間がかかると思ったのですが、意外でした
(もしかしたら、DataRowとかの方法はもっと効率良い方法があるのかも。。。)
でも前回と同じくやはりObject型配列が早いですね。
大量のデータを処理する場合は、object型でやった方が良いかもしれません。
いかがだったでしょうか?
今回でデータテーブルのコピー方法は終わりです。
次回もデータテーブルについて書こうと思います。
データテーブルはUiPathでよく使われるので、しっかりと理解しておいた方がいいかと思います。
本日も最後までお読みいただきありがとうございました。
関連記事: