受取請求書の自動登録化 その1 - 「現在フォルダ及び親フォルダの名前を取得する」
また月末が近づいてきました。受け取った(様々なフォーマットの)請求書から取引(仕訳)と振込依頼を作成しなくてはいけません。
私が実際に実務で使っている、受取請求書の処理のベストプラクティスについては以下の記事で紹介しました。
この記事では、考え方のフローのみを取り上げたので、今回は実装方法を具体的に紹介していきたいと思います。
「AI vs 人間」で人間が勝利できるポイント
これまでfreeeラボでは、AI(LLM)を使った業務効率化プログラミングを紹介してきました。
AIの進化は著しいので、この傾向は今後も続いていくと予想しています。またAI利用のコストの問題から、freee本体が最先端のAI機能を随時実装していくというのもあまり考えられません。なので、引き続きAI組み込み(セルフ)プログラミングは、習得価値の高いスキルだと思っています。
さて、そんな万能感のあるAIよりも人間が優位なポイントがあります。
それが、部門と品目の選択です。
AI(LLM)は、コンテクスト(文脈)でそれらしい判断を返してきますが、事業会社における部門と品目の選択は、その会社固有のコンテクスト(文脈)を理解している必要があり、AIによる自動化は困難だと思っています。
もちろん過去の仕訳パターンを学習させて…というのは可能ですが、これには相応の知識とコストがかかります。
難しいAI実装に悩むくらいなら、人間がサクッとやってしまったほうが良いのでは?というのが率直な意見です。
経理担当者は請求書を見れば瞬時に部門判断できる
人間の判断が優位なのは部門と品目と述べましたが、ここでは一旦、品目を横に置いておきます。なぜなら、品目は(各企業の運用によりますが)補助的なタグであり、それでいて完璧に付与するには、やはり相当の人的コストが必要になるからです。
実装例の説明を簡単にするために、品目の考慮は外しますが、アプローチとしては、これから紹介する方法で拡張することは容易だと思います。
なので、まずターゲットに絞り込まれるのが、部門です。
受取請求書の内容からその請求先が自社のどの部門の費用・仕入に属するのかを自動的に判断させるのは困難です。判断の前提となる知識や経験が、ハイコンテクストであり、AIに与えなければならない情報が膨大となり、コストがかさみます。
そんなハイコンテクストな判断ですが、事業会社内の情報に触れる機会の多い人間であれば、瞬時に判断することが可能なのではないでしょうか?
この取引先は、この部門の仕入だな…
この費用は、この部門でしか使わないしな…
のような暗黙知にすぐにアクセスできるのが人間です。
部門と勘定科目はフォルダ構造で付与しよう
ということで考えたアプローチが、受取請求書をGoogleドライブの指定フォルダに格納する段階で、フォルダ構造で「部門/勘定科目」をわかるようにしようでした。
第1階層に部門ごとのフォルダがあり
第2階層に勘定科目ごとのフォルダがある
といった構造です。
つまり”部門名/勘定科目名/ファイル”というフォルダツリーの構造に従ってファイルを保存し、登録時には現在のフォルダと親フォルダの名前から部門・勘定科目を抜粋するアプローチです。
任意のファイルが保存されている現在フォルダ及び親フォルダの名前を取得するスクリプト
ということで必要になってくるのが、任意のファイルが保存されている現在フォルダ及び親フォルダの名前を取得するスクリプトです。
freeeAPIライブラリでは、登録されている部門名や勘定科目名が取得できれば、そこから取引登録時にタグを付与することができます。
実際に利用している(freeeに登録のある)部門名と勘定科目名をフォルダ名から取得することで、取引の登録時にタグが付与できます。
ということでスクリプトはこちら。
この記事が気に入ったらチップで応援してみませんか?