UiPathでのDataTableの行削除方法

・ UiPathでのデータテーブル 行削除

二つのデータテーブルをループし、データのチェックを行い、条件を満たす行を削除するようなシナリオを考えたときにちょっと躓いたので、サンプルを残しておく。
「データテーブルの結合」アクティビティのほうが効率的なのかなとかいろいろと悩んでしまったが、結局昔から使い古しているほうがやりやすいことに気づいた・・・・。

削除したいデータテーブルの下の行から削除していくのがポイント

【イメージ】
  主となるCSV(Main.csv)と削除対象リストのCSV(Del.csv)を二重ループ
   Mainデータテーブルのループ
    Delデータテーブルのループ
      条件判定を行い、行Indexを別データテーブル(Targetテーブル)に退避
    Next Mainデータテーブル
   Next Mainデータテーブル
  
  Targetテーブルの値を降順にして、削除してく
  ※データテーブルの行をループしながら行インデックスで削除していくと、行の番号が都度変わってしまうので正しく削除できない





SQLクライアントツールについて(DMonkeyスクリプト)

SQL クライアントツールについて

 色々なSQLクライアントツールを使ったが、SQL ServerならSQL ManagementStudio、OracleならSQL Developerなどそれぞれの製品特有のクライアントツールが運用上使いやすいのは使うのは当然として、そのほかに総合的に見て使いやすいと思ったツールは「A5:SQL Mk-2」が一番使いやすいと思う。
 DBeaver もフリーのクライアントツールとしては使いやすいと思うが、スクリプトを標準装備しているという点で「A5:SQL Mk-2」が一番使いやすかった。
 「A5:SQL Mk-2」はポータブルモードにすればインストールせずに利用できるので管理者権限がない環境でも利用できるし、Sqlite3も作ることができるのでデータ分析をするときにすごく重宝する。
 複数のCSVファイルを取り込んで、SQLでは実装が難しいものもDMonkeyスクリプトが組めるので最悪はスクリプトで実装することができる。
 DMonkeyはWScriptも利用することができるのでファイルのコピーや移動もすることができる。クラスも作ることができるので汎用性がすごい。


サンプルスクリプト


class Sample {
var fstrTokCD;
var fstrTokName;
var fArrlogs = new Strings();

function GetData(){
var strSQL;
fArrlogs.add(" GetDataを実行")

strSQL = "";
strSQL = strSQL + "SELECT * FROM T_得意先マスタ ";
strSQL = strSQL + "WHERE 得意先CD = '" + fstrTokCD + "'" ;


var conn = application.dbTree.getSelectedDatabaseConnection();
var rs = conn.executeQuery(strSQL); // 結果セット
rs.first();
while (!rs.eof()) {
fstrTokName = rs.getFieldValue("得意先名")
rs.next();
}
rs.close();
fArrlogs.add(" GetDataが完了")
}
}

var samp = new Sample();
samp.GetData();
samp.fArrlogs.saveToFile("C:\\Users\\UserName\\Desktop\\folder\\dg.log")

PowerShellでEdgeを自動化(インストール不要。参考:郵便追跡サービス自動操作)

1.経緯について  RPAのソフトをインストールできないので、これまでVBSでCreateObjectでブラウザの自動操作をすることがたまにあった。 ※いざというときの手札として持っているだけで安心感が段違い  見た目上IEがインストールされていなくても、CreateObject...