Calenderの12日目。師走でイルミネーションが綺麗な時期になりましたねー(投稿が遅くなって申し訳ありません)。今回は、ElectronでのアドベントカレンダーということでElectronのデスクトップアプリでコマンドとかも実行できるというメリットを活かしてUiPathを使った業務自動化について取り組んで見ました。関連そもそもUiPathとは何かUiPathは、最近話題になっているRPAという業務自動化ツールです。業務自動化ツールと聞くと、高いのでは?、とか、本当に自動的なことしかできないのではないか?、難しいのでは?などと思われがちですが、本当に普段やっている作業を機械にGUIで覚えさせながらプログラミングしていきます。コミュニティエディションが大手なのにちゃんと準備されています。他のRPAツールと違ったUiPathのメリットとしては、コミュニティエディションが存在していて無料で使用できる(もっとも重要)コマンドラインから起動できる本当にクリック操作だけでプログラミングできて、プログラミングに慣れていない人でも簡単に使用できるテストツールより機能が豊富ありがとう、UiPath。有料版で導入したいですね...。今回取り組みたいこと今回は会社内でよくあるVBやCOBOLなどで書かれた数十年前(というと大げさですが)の塩漬けシステムのAPI化に取り組みたいです。Databaseを使用してElectronでキャッチ。UiPathでコマンドを起動してプログラミングを実施する。完了した結果をAPIで返すというフローで実現します。※塩漬けシステムでやると大抵コンプライアンスに引っかかります。システム部門内だけで実行するとか、デスクトップアプリの操作の自動化をWEB上からのリクエストで実現したいとか、そういう場合に限定してください。※私の技術力的な問題もあって、セキュリティ強化であったりフォームバリデーションを実行していません。必要に応じたセキュリティ対策を必ず実行してください。実際の実装例では、やっていきます。WEB上でのリクエストを投げるWEB上でのリクエストでの投げ方といってもそもそもFirebaseをバックエンドで採用している場合LaravelやSymfonyなど、Firebaseの外からリクエストを投げる場合の2つに大別されるのではないでしょうか。今回はWEBでのリクエストをLaravelから投げたいと思います。リクエストを投げるのにはktmas/firebase-phpを使用しバックエンドにlaravelを採用します。$test1;}}WEB上でのリクエストをFirebaseでキャッチ前提として、Firebaseでユーザーアカウントを作成します(今回はEmail-password認証です)この結果をElectron内のjsで読み込んでおきます(今回は、main.jsとは絡ませないでindex.htmlの中にjsへのリンクを設置しました。src="./firebaseLogin.js"></script></body></html>以下がFirebaseの読み込み部分です。ほとんどサンプルままです。ポイントは、firebase.database().ref()で取得したものに対しonメソッドでchild_addedイベントを読んでいる点です。これで、Firebase上にデータが投稿された時にchild_addedイベント内で定義されていることが実行されます。error.message;});UiPathでコマンドを実行する上のソースコードでsaveLoginInfoしたところから、別ファイルに移動します。このファイルの中にUiPathの起動コマンドを入れます。UiPathの入門サイトではないのでUiPathの設定方法は公式サイトに譲るとして、ここではコマンドの起動方法だけ。/input:"{'arg1':'hello'}"です。これをjavascriptで無理やりかくと、下のようになります(prpgramPlaceはUiRobotの場所、configPlaceは定義ファイルの置き場です)。セキュリティの関係で詳細は省いています。コマンドの定義については公式を見てください。/input:"'+"{'val1':'"+val1+"','val2':'"+val2+"'}"+'"';ステップ2で読み込むsaveLoginInfoは、以下のようになります。コマンドはNode.jsのexecを読み込んで使用しています。.」を実行しましょう。最初は何もおきないですが、1で定義したAPIにデータを投げるとFirebaseにデータが追加され、デスクトップでアプリケーションが自動でぐるぐると動くのがみえるでしょう。最後に:このアプリには問題がたくさん今回自動化ということでアプリを作成しましたが、問題点がたくさんあります。セキュリティ対策が講じれていない(おそらくIPCを使わないで実装するのは本当はよくない)→特に売上などを操作する基幹システムの操作の自動化の際には、もっと綿密な設計が必要ですFirebaseを噛ませている→一般のデスクトップでルーターの設定を変更しないでも実現できる方法...と考えてFirebaseを今回使用していますが、企業で使用する場合はNode.jsサーバーを普通に立ててSocket通信すればいいではないでしょうか。そもそもコンプライアンスに大きな問題がある(ここ重要)。→情シスの人はこういうチートをされないようにアプリケーションのインストール制限などを実行する必要があるのかもしれません。仕事を任せられるところはRobotに任せ、関わる人が皆ハッピーになれるシステム開発を行なっていきたいものです。このホームページのホスティングをしているkvitancoでは、この技術は使用していません。別の会社のプロダクトで使用しています。コメントデータの処理方法の詳細はこちらをご覧ください。Invoice」をリリースしました。電話番号しかわからない相手への領収証の送付に対応。API連携もできるから、請求書を送付しなくてもいいお客様への送付に使えて便利です!詳しくはサービスページをご覧下さい。EMC(クレジットカードタッチ決済)の違いとは店舗外で電話をとりたい!時に考えられる方法を紹介します電話代が安い!事務所電話にもオススメな事業者を5つ紹介します!QRコード決済が1つに?2019年8月からはじまる「JPQR」とは。1丁目1番地にネットショップを!最短での売上UPに貢献する「ネットショップ」作成サービス、比較してみました。携帯をポイントカードに!FeliCa/NFCを使わないでもスマホにショップカードなどを入れる方法をまとめました%d人のブロガーが「いいね」をつけました。