&
巷でローコード・ノーコード開発がもてはやされて?久しいですが「コードを書かない」ということが、実際のところコードを書いて実装する方法とくらべて、どれだけ楽なのか?ということに関しては、個人的にはいろいろと疑問がありました。
そのようなことを言っていてもやってみないとわからない。ということで、以下のような機能をノーコードでどこまで実現することが可能なのか、Power AutomateとKintoneを使用して、実際に作成してみました。なお、文書管理アプリはKintoneで簡易的作成したものですので、クオリティはお察し下さい。
・工程は以下の3つです。
1.メールで送付された請求書(PDF)を所定のストレージに保管する。
2.保管された請求書を解析しデータ化する。
3.文書管理アプリへデータとPDFファイルを登録する。
それでは画像付きで行っていきたいと思います
1.メールで送付された請求書(PDF)を所定のストレージに保管する
この部分は、MicrosoftのPower Automateで作成してみました。Power AutomateにはOutlookで受信したメールの添付をOneDriveの所定の場所に保管するというテンプレートが既にあります。これを利用すれば、「所定の位置」を選択してあげるだけですぐできるようです。まさにノーコード!
2.保管された請求書をデータ化する
こちらもまたPower Automateに請求書の解析を行うというテンプレートが存在しており、これを使用すれば、すんなり解析してくれます。こちらもノーコード凄い!というところ。(調べてみたところ、少し前までは、ある程度機械学習してあげなければ使いこなすのは困難だったようですが、今はかなりの精度でデータ解析できるようです)
3.文書管理アプリへデータとPDFファイルを登録する
解析したデータは、担当者へメールしてお知らせ&Kintoneであらかじめ作成しておいた文書管理アプリへ登録します。メール送信は、送信先と解析データをドラッグしておいていくだけのまさにノーコード!
問題は、文書管理アプリへの登録です。ここからはPower Automateから見れば外の世界。今までのようにマウスでドラッグしてどうこうできるものではありません。
まず、Kintoneとの連携にはREST APIを使用していきます。詳しくはKintoneの開発者向け情報を見ていただくことになりますが、WEBの技術を使用してデータのやり取りを行う仕組みです。https://cybozu.dev/ja/kintone/docs/rest-api/
開発者向け情報を見ていただければなんとなくわかると思いますが、ここで「ノーコードで開発」ということが難しくなってきます。WEBプログラミングする者としては、当たり前すぎることなのですが、データを渡す方法も、やみくもに渡せばいいわけではなく、それなりのルールでデータを渡してあげる必要があります。
ここではJSONという形式でデータを渡してあげる必要があり、プログラムを書くわけではありませんが、本文の欄にJSON形式でデータを書き足してあげないといけません。(PDFファイル本体は、BASE64という形式に変換して、JSONに記載する必要がありますが、詳しい説明は割愛します。)
もう少し詳しく書くとKintoneへのファイル登録は少し面倒で、一度ファイルをアップロードしてからレコードに登録する手順となります。
ファイルアップロード→filekeyとゆうものが返される→レコードのファイルにfilekeyを指定する。
という流れになります。なお、上の画像の右側のfile uploadというところで、ファイルのアップロードを行っています。
アップロードが成功すると、Kintoneからfilekeyとゆうものが返されます。これはfile uploadの「本文」という項目に入ってきますので、これをレコード登録時に使用してあげるということになります。
レコード登録時もJSON形式でデータを渡してあげる必要があるので、これも本文に書き足してあげます。
保存して実行してみたところ、ちゃんと文書管理アプリへ登録されることを確認しました。MSからの請求書作成は割と複雑な書式なんですが、ちゃんとデータ取得できてました。
⚪︎ 感想
個人の感想になりますが、JSONを手書きで作成したりしなくてはいけないことや、APIの返値がどこにどうなって出力されるのか?ノーコードで作成することによって、なんとなく面倒だったり分かりにくくなることもあり、コードを書いた方が早いのでは?とも思う部分もいくつかありました。
それなりに実用的なものを作成する場合、完全なノーコードは、なかなか難しいのかな。ということ、結局のところプログラミングに必要となる技術的なことはある程度抑えておかないと、そもそもどうしていいかわからないということになるのかな。と感じました。
ですが、Power Automateで実装済みの命令のみで使用するのであれば、ほぼノーコードで行なえるということもわかりましたので、工夫次第では本当にコーディングの知識は必要ないのかもしれません。