ExcelやPDFなど既存のデータから一部をコピーして別のファイルへ貼り付けするようなPCでの作業は、意外に時間がかかるものです。また、貼付けや入力でミスを起こすこともあるでしょう。こういった単純作業は、PCで自動化するとミスが起こりにくくなります。最近、多くの企業で取り入れられているのはRPA(Robotic Process Automation)です。処理手順を登録すれば、人が操作するのと同じようにアプリケーションやシステムの操作ができます。カンタンな処理であれば、無料で利用できるPower Automate Desktopがおススメです。この記事では、Power Automate Desktopの利用方法について紹介します。
Power Automate Desktopで、業務システムに転記したい
OCRツールで読み取った帳票を、Power Automate Desktopを使って業務システムに転記する例です。こまかい処理よりも、全体の流れのに注目した記事になります。
事前準備
今回は、注文書を読み取り、業務システム(Windowsアプリケーション)に転記します。注文書の書式は、2種類を想定します。
帳票と画面
注文書1(スーパー北国)
注文書2(南国スーパー)
業務システム(伝票入力画面)
転記したい項目
帳票から読み取り、業務システムに転記する項目は、以下の通りです。
- 社名、希望納期、合計金額、税込、製品名、数量、単価
CSVファイル
OCRツールは、AI JIMY Paperbotを利用しました。表抽出機能を利用して先の注文書1、注文書2を読み取ると、次のCSVファイルを出力することが出来ます。
1行目は項目名、2行目以降がデータです。
前から4つは帳票の鑑の部分の項目、残りは明細行の繰り返し項目になります。データの上の4行は「スーパー北国」帳票の読み込み結果、下4行が「南国スーパー」帳票の読み込み結果です。
"会社名,"希望納期","合計金額","税込","製品名","数量","単価"
"株式会社スーパー北国,"2023年2月9日","5 000","true","北海道フロマージュ","1","4000"
"株式会社スーパー北国,"2023年2月9日","5 000","true","青森アップルパイ","1","1 000"
"株式会社スーパー北国,"2023年2月9日","5 000","true","","",""
"株式会社スーパー北国,"2023年2月9日","5 000","true","","",""
"株式会社南国スーパー,"2023年2月11日","8 000","true","沖縄紅いもタルト","1","1 000"
"株式会社南国スーパー,"2023年2月11日","8 000","true","鹿児島さつま揚げ詰め合わせ","1","4 000"
"株式会社南国スーパー,"2023年2月11日","8 000","true","長崎びわゼリー","1","2 000"
"株式会社南国スーパー,"2023年2月11日","8 000","true","福岡イチゴケーキ","1","1 000"
処理の流れ
業務システムを起動します。(今回はすでに起動している前提なので、処理は書きません)
CSVファイルを1件づつ読み取ります。
前の行とスーパー名が変わったら会社名、希望納期、合計金額、税込 を転記します。
各行の製品名、数量、単価 を転記します。
1枚分の帳票の入力が終わったら、登録ボタンを押します。
- 手順1 初期設定を行う
- 手順2 変数を設定する
- 手順3 CSVファイルを1件づつ読み取る
- 手順4 業務システムに、会社名と希望納期を転記する
- 手順5 業務システムに、合計金額と税込を転記する
- 手順6 業務システムに明細を入力する
- 手順7 登録ボタンを押す
手順1 初期設定を行う
アクション「特別なフォルダーを取得」
- AI JIMY Paperbot で作成したCSVファイルは、デスクトップ上のフォルダに格納しているので、デスクトップフォルダを取得し、変数SpecialFolderPathに保存します。
アクション「変数の設定」
- 変数ReadFileを作成し、CSVファイル名をフルパスで保存します。今回は「%SpecialFolderPath%\AIJIMY\注文書結果.csv」です。
アクション「CSVファイルから読み取る」
- CSVファイルを読み取ります。読み取った結果は、まとめて変数CSVTableに格納されます。
- CSVファイルの先頭行には、項目名が含まれているので、詳細タブを開き、「最初の行に列名が含まれています:」をONにします。
アクション「ウィンドウにフォーカスする」
- 業務システム全体をフォーカスすることで、最前面に移動します。
手順2 変数を設定する
アクション「変数の設定」
- 変数「前社名」を作成し、”(空文字)で初期化します。後程、ページ切替のしおりに利用します。
手順3 CSVファイルを1件づつ読み取る
アクション「For each」
- CSVTableにデータがある間繰り返します。各データはCurrentItemに保存されます。変数名CSVTableもCurrentItemも既定値をそのまま使っていますが、わかりやすい名称に変更することをお勧めします。
アクション「If~Then」
- 変数「前社名」がCurrentItemのひとつめの項目と異なるなら、以下のIf~Endの処理を実行します。
- 「前社名」は空白で初期化し、CurrentItemのひとつ目の項目は、初回は「株式会社スーパー北国」なので以下のIf~Endの処理を行います。
- このIfのブロックの末尾で「前社名」に今の社名を保存しますから、次の(内側の)繰り返しでは、If~Endは読み飛ばすことになります。
- CurrentItem[0]が「株式会社南国スーパー」になった時、再び以下のIf~Endの処理を実行します。
アクション「If~Then」
- 変数「前社名」に値が入っていたら、以下のIf~Endの処理を実行します。初回は空白をセットしているので読み飛ばします。
- 次にこの分岐に入る時は、社名と「前社名」が異なる時なので、業務システムの「登録」ボタンを押し、少し待機したいと思いますので、そのアクションを書きます。
アクション「ウィンドウ内のボタンを押す」
- 「登録」ボタンを押します。
アクション「Wait」
- 登録ボタンを押し、画面が初期化される間を仮に1秒として、1秒待ちます。
- 待機する秒数は、実行環境に合わせて適宜変更してください。
手順4 業務システムに、会社名と希望納期を転記する
アクション「ウィンドウ内のテキストフィールドに入力する」
- 業務システムの社名欄に、変数CurrentItemのひとつめの項目を転記します。変数CurrentItemには、CSVファイルの(ヘッダを除いた)1行目が格納されています。各項目には番号が割り振られています。
- 今回、1行目のCurrentItemは、以下の並びになりますので、CurrentItem[0]は「株式会社スーパー北国」になります。
番号 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
項目名 | 会社名 | 希望納期 | 合計金額 | 税込 | 製品名 | 数量 | 単価 |
1行目のCurrentItem | 株式会社スーパー北国 | 2023年2月9日 | 5 000 | TRUE | 北海道フロマージュ | 1 | 4000 |
アクション「変数の設定」
- 変数「希望納期」を作成し、CurrentItem[1]を保存します。
- 「2023年2月9日」と日付が格納されていたので、この時点で、「希望納期」は日付型と認識されました。
アクション「Datetimeをテキストに変換」
- 業務システムには、「2023年2月9日」ではなく「2023/2/9」の形式で入力する必要があるとします。
- 書式「〇〇〇〇年〇月〇日」を「〇〇〇〇/〇/〇」に変換し、変数「希望納期文字」に保存します。
アクション「ウィンドウ内のテキストフィールドに入力する」
- 業務システムの希望納期欄に、変数「希望納期文字」を転記します。
手順5 業務システムに、合計金額と税込を転記する
アクション「変数の設定」
- 変数「合計金額」を作成し、Current[2]を保存します。
- この時点で変数「合計金額」には、「5 000」が保存されます。
アクション「テキストを置換する」
- 変数「合計金額」には不要な空白が含まれています。
- 空白文字を削除し、変数「合計金額文字」に保存します。下記の例では、半角空白(’ ‘)を空文字(”)に置き換えることで、結果として空白文字を削除しています。
アクション「ウィンドウ内のテキストフィールドに入力する」
- 業務システムの合計金額欄に、変数「合計金額文字」を転記します。
アクション「If~Then」
- 税込がTRUEの時、次の処理を行います。
アクション「ウィンドウのチェックボックスの状態を設定」
- 税込がTRUEなので、チェックボックスをONにします。
アクション「Else」
- 税込がTRUEでは無い時、次の処理を行います。
アクション「ウィンドウのチェックボックスの状態を設定」
- 税込がTRUEではないので、チェックボックスをOFFにします。
アクション「変数の設定」
- 変数「前会社」に、現在の会社名を保存します。次の繰り返し時のIfの判断に利用します。
- ここまで、「If 前社名<>CurrentItem[0] then」のIF文の中の処理です。変数「前社名」と変数「CurrentItem[0]」の社名が異なる時、伝票の鑑の部分の転記を行いました。
手順6 業務システムに明細を入力する
アクション「キーの送信」
- TABキーを送信します。
- 現在、業務システム上のフォーカスは、「☑税込」にあります。TABキーを送信することで、1行目の製品名欄に移動します。
アクション「キーの送信」
- 変数「CurrentItem[4]」(製品名)を転記します。
アクション「キーの送信」
- TABキーを送信することで、1行目の数量欄に移動します。
アクション「キーの送信」
- 以降、製品名、TABキー、数量、TABキー、単価を送信することで、明細の1行目の転記を行います。
- 変数「CurrentItem[4]」には製品名、「CurrentItem[5]」には数量、「CurrentItem[6]」には単価が格納されているので、順次、アクション「キーの送信」を行います。
アクション「キーの送信」
- 単価を転記した後、TABキーを送信することで、2行目の製品名欄欄に移動します。
- 2件目では、変数「前社名」は「株式会社スーパー北国」のままなので、会社名などの転記は行わず、製品名以降の転記を行います。
- 5件目では、変数「前社名」は「株式会社スーパー北国」ですが、CurrentItem[0]は「株式会社南国スーパー」なので、Ifに入り、更に「前社名」は空欄でもないので、業務システムの「登録」ボタンを押し、画面を初期化します。
- その後、再度鑑の部分を、社名から順に転記を行います。
手順7 登録ボタンを押す
アクション「ウィンドウ内のボタンを押す」
- 最後に「登録」ボタンを押します。
以上で、複数枚の帳票を、業務システムに転記入力できました。
データ入力を自動化するならAI JIMY Paperbotがおススメ!
AI OCRを搭載しデータ入力を自動化するツールAI JIMY Paperbot には簡易なRPA機能を用意しています。しかし、複雑な作業には向きません。この記事でも掲載している無償のRPAツールである、Power Automate for desktop (以下PADと略)と組み合わせて利用する方法をご提案していますので、ぜひ一度ご相談ください。
AI JIMY Paperbotを利用するメリット
OCRに生成AIとRPAを搭載 一つのツールでデータ入力作業を完結
画像の取り込みから取引先ごとの仕分け、手書き文字の認識、テキストデータの出力、業務システムへのデータ入力まで、一連の作業をAI JIMY Paperbotひとつで自動化できます。
無料で誰でもカンタンに使用可能
AI JIMY Paperbotは特別な技術知識は不要で、マウスだけの直感的な操作が可能です。RPAツールとの連携や専門知識が必要なAPIなどの開発作業は必要ありません。無料で利用開始できますので、カンタンに試すことができます。
自動でファイル名を変換できるリネーム機能
リアルタイム処理を行い、任意で電子帳簿保存法の改正にも対応したファイル名に自動で変換可能です。
AI類似変換で社内のマスタと連携し、文字認識が向上
日本語の認識は、手書きも含めてかなり高い精度で変換できます。間違いやすい商品名などの固有名詞は、あらかじめAI JIMY Paperbotに登録しておくことでさらに認識率が向上します。
多様な業務で活用
さまざまな業務で使用が可能です。FAXの受注入力、請求書の集計、手書きアンケートや申込書のデータ入力、作業日報のデジタルデータ化など多岐にわたる業務プロセスをサポートします。