なぜこの記事を書くに至ったのか
私は現在とある場所でRPAの部署に配属しています。
そこで、自動化?や業務改善のために人の手で行なっている部分をプログラムや、RPAツールでどうにかできないか?というお話がきたので、Google Apps Script(以降GAS)、RPAツールのCobitを使ってみて両者のメリット、デメリットを書いていきます。
GAS vs Cobit
RPAにおいての問題点、課題の解決力を比較していきたいと思う。
※これから記載することは主観です。
初心者でも扱いやすいのか?(新規開発、引き継ぎ等)
GAS ○
GASは非エンジニアが手軽に触れるように、環境構築などもなく、スクリプトエディタを開けばすぐに書ける。
日本語の記事もたくさんあるので、非エンジニアでもすんなり入っていけると思うのですが、やはり一応プログラミング言語を書くので、○
Cobit ◎
プログラミングが一切必要無い。ブラウザぽちぽち触るだけで、簡単にロボットが作れる。
サポートも日本語でリアルタイムで聞けるので、非エンジニアの方でもなんなく触れる。
よって◎
大規模開発は?
GAS ×
GASは1回の実行で6分しか稼働させられないので、大規模になってくると毎回タイムアウトになってしまうため×
Cobit △
Cobitは実行時間などは基本的になく、1回の実行時間などが特に明記されていないので、大規模開発を行うならGASよりはこっち。
けどそんな大規模ならCobitも頼りにならなそうなので△
定期実行
GAS △
定期実行は分単位など細かく設定できるのだが、90分/1日なので、MAX6分の関数を定期実行するのであれば、1日15回以上定期実行しようとするとエラーになってしまう。
Cobit ◎
Cobitの場合定期実行の制限がなく、こちらも分単位で細かく設定できるので、1日の実行が多い場合はCobitを採用するのが良い
Googleサービスとの連携
GAS ◎
当たり前だが、GASもGoogleのサービスなので、スプレッドシートやドライブへのアクセスが非常に簡単。
スプレッドシートの値を取得して何かしたい場合は少しコードを複雑に書く必要がある。
// こんな感じ
function main() {
var dnsSheet = SpreadsheetApp.getActiveSheet();
var hoge = changeOneDimensionalArray(
1,
hoge,
"シート1"
);
}
function findLastCol(sheetName, row) {
var sheet = SpreadsheetApp.getActiveSheet(sheetName);
var rowValues = sheet.getRange(row, 1, 1, sheet.getLastColumn()).getValues();
rowValues = Array.prototype.concat.apply([], rowValues);
const lastCol = rowValues.filter(String).length;
return lastCol;
}
function findLastRow(sheetName, col) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
var colValues = sheet.getRange(1, col, sheet.getLastRow(), 1).getValues();
const lastRow = colValues.filter(String).length;
return lastRow;
}
スプレッドシートへの書き出しなどや、ドライブへの保存を主にするのであればGAS一択と言っていい
Cobit ○
認証させたアカウントが操作できるスプレッドシートやドライブへの操作ができる。
スプレッドシートへの書き出しを行いたい場合は、少しめんどくさい。
スプレッドシート間を行き来したりするのは本当にめんどくさい。
スクレイピング
GAS △〜○
Cobit △〜○
これはケイスバイケースとしか言いようがないですね。
お話聞いて上記の条件に当てはめてみて話し合うしかないです。
2段階認証
GAS ×
Cobit ×
これは両方ともできないので、2段階認証のあるサイトをスクレイピングしたいと言われたら無理と答えましょう。
一応Pythonではあるらしいです。
一応自分が調べた限りだとこんな感じでした。
この後もわかり次第随時更新していく予定です。