Slide 1

Slide 1 text

RPA Community 女子部 ~A2019 x LINE OCR を使って、レシートを 処理してみよう~ 講師 佐野千紘 協力 引間明子

Slide 2

Slide 2 text

自動化する作業を 把握しよう Clova OCRトライアルページの URLはこちら! (Zoomのチャットに貼ります) https://clova.line.me/ocr_demo/en 👆👆開いてみましょう

Slide 3

Slide 3 text

サンプル画像の処理結果をコピーしてみましょう ①Japanese→②Receipt→③json→④コピーボタンの順にクリック ① ② ③ ④

Slide 4

Slide 4 text

jsonデータの結果を見てみましょう メモ帳などに、コピーした内容を貼り付けてみましょう 日付、店名、合計金額がどのようにデータ化されている か、画像と見比べて確認してみましょう Q. Jsonって何? A. Java Script Object Notationの略で、 データを記述する形式の名前だよ。 {“項目名”:項目の内容, ”項目名2”:項目の内容2} のように、項目の名前と内容を紐づけるよ。 {“くだもの価格表”:{ “いちご” : 150, “バナナ” : 877}, “野菜価格表”:{ “トマト”:100, “きゅうり”:90}} のように、カテゴリの中にさらに細かい情報を 含めることもできるよ。 実は今日の 自己紹介の スライドも……

Slide 5

Slide 5 text

jsonデータの結果を見てみましょう 他のサンプル画像や、自分で用意したレシートの画像の結果も見てみましょう ▲サンプル画像を切り替える(レシートは3種類) 自分で用意した サンプル画像を アップロードする場合 はここをクリック - 店名 - 合計金額 - 購入日付 がどのようにデータ 化されるかがだい たいつかめれば、 今はOK

Slide 6

Slide 6 text

Uploadボタンを押すと、 このような画面が最初に一度だけ出てきます 必要情報を入力&規約に同意しましょう

Slide 7

Slide 7 text

0.下準備をしよう 今回のハンズオンでは、 レシートの結果をcsvファイルに書き出します。 Botを作る前に、 出力先のcsvファイルを準備しましょう。

Slide 8

Slide 8 text

csvファイルを準備しよう 1.メモ帳を開きます 2.「購入日,店名,合計金額」と入力し、改行して、名前をつけて保存 3.保存する際のポイントは、 右記を参考に! ←行末で改行してね! ←カーソルはここにある ① ② ③ ① ファイル名 → 「好きなファイル名.csv」 とする ② ファイルの種類 → 「すべてのファイル(*.*)」を選択 ③ 文字コード → 「UTF-8(BOM付き)」を選択 ※ 「BOM付き」の選択肢は、チェックボックスになっている場合もあり ※ 「BOM付き」の選択肢がない場合は、 ただの「UTF-8」を選択すればOK 以下の手順で、 ←このようなCSVファイルを 作成します。

Slide 9

Slide 9 text

1.A2019の 画面の基本 ハンズオンの途中で迷子にならないよう、 A2019の基本的な画面操作を おさえておきましょう。

Slide 10

Slide 10 text

A2019の画面の基本 左側の帯では、 変数、アクション、トリ ガーの一覧を切り替 えられます。 レコーダーを 起動するボタン 処理のビューを 切り替えるタブ (次頁参照) 画面の言語の 切替 ここのボタンを押すと、 左/右それぞれの帯を たたんだり表示させた りできます 全体のメニューを 左側に表示できます (Bot開発中は不要 なのでたたんでおき ます)

Slide 11

Slide 11 text

A2019の画面の基本 ビューの切替について ここからビューを 切り替えられます デュアルビューのイメージ - 左側だけが見えているのがフロービュー、右側だけが見えているのがリストビューです。 - すべてのビューは自動的に同期しています。 - 開発中は、作業がしやすいように適宜ビューを切り替えると便利です。

Slide 12

Slide 12 text

2.処理構造を ラフスケッチしよう 細かい処理を作り込む前に、 処理全体の大まかな流れを整理しておくと便利で す。 A2019のStepを活用し、 処理構造をラフスケッチしておきましょう。

Slide 13

Slide 13 text

大抵のBotに共通している処理構造 ① 前処理 - 変数の初期化・定数(ファイルパスなど)の取得 - アプリケーションの起動・ログイン - Excelの開始行の取得 ② メイン処理 - Excelの各行に対する処理 - データの転記 - 計算 ……などなど、このBotでやりたいメインの処理 ③ 後処理 - 集計結果の表示・転記・受け渡し - 使い終わったアプリケーションのログアウト・終了

Slide 14

Slide 14 text

今回作るBotの処理構造 ① 前処理 - Clova OCRのトライアルページを開く - 日本語 → レシート → jsonボタンを押す ② メイン処理 - Json形式の処理結果をコピーする - json形式のデータから、購入日・店名・合計金額を取得する - ファイルに書き出す ③ 後処理 - Clova OCRのトライアルページを閉じる

Slide 15

Slide 15 text

Stepの作り方 ① アクションからStepを検索 ② ダブルクリック or ドラッグしてフローの中へ ③ わかりやすいタイトルをつける ① 「step」と入力し 検索 ② ダブルクリック or ドラッグ してフローの中へ ③ タイトルはわかりやすく! このように表示されます

Slide 16

Slide 16 text

2. 前処理を作ろう 前処理では、メインの処理に必要な準備を整えます。 変数の初期化やアプリケーションの起動・ログイン、 定数の設定、Excelの開始行の取得などが 代表的な前処理の例です。 今回の処理に必要な前処理は以下のとおりです。 ① Clova OCRのトライアルページを開く ②日本語 → レシート → jsonボタンを押す ①には「ブラウザ」のアクション、②にはレコーダーを使います。

Slide 17

Slide 17 text

① Clova OCRの トライアルページを開く 使用するアクション : ブラウザ

Slide 18

Slide 18 text

ブラウザを開く ① 「ブラウザ」と入力し 検索 ② ドラッグしてフローの 中へ ① アクションから「ブラウザ」を検索 ② 「Open」をドラッグしてフローの中へ ③ ④ ⑤ ③ 「New Window」が選択されていることを確認 ④ ブラウザから「Google Chromeを選択 ⑤ 開きたいページのURLを入力 → 今回開くのは以下のURLです https://clova.line.me/ocr_demo/en 「New window」を 選択 「Google Chrome」 を選択 https://clova.line.me/ocr_demo/en を指定

Slide 19

Slide 19 text

② Webページ内の ボタンを押す 使用するアクション : レコーダー (新規)

Slide 20

Slide 20 text

レコーダーを利用する ① 操作したいアプリケーションやwebサイト (今回の場合はClova OCRのトライアルページ)を 開いた状態で、レコーダーのボタンをクリック 目的のページを 開いた状態で…… レコーダー ボタンを クリック ② しばらく待っていると、 画面の右下に以下のような画面が表示されます しばらく 待つと…… 画面右下に 登場! ③ ウィンドウの一覧から目的のページを選択し、 「Universal Recorder」をクリック レコーディングしたい 画面のタイトルを選択 Universal Recorderを クリック 続く▶

Slide 21

Slide 21 text

レコーダーを利用する ④ 選択したページが起動します。 操作したいオブジェクト(ボタン等)にマウスを当ててしばらく待つと、当該オブジェクトが赤枠で表示されます。 赤枠が出ていることを確認してから、目当てのボタンをクリックしていきます。 (ここでは、Japanese → Receipt → json の順にクリックします) 続く▶ このように赤枠が出ていることを確認してから クリック! 「Japanese」の次は「Receipt」 「Receipt」の次は「json」を、 同じ要領で赤枠が出てからクリック

Slide 22

Slide 22 text

レコーダーを利用する ⑤ 画面右端にこのような小さなバーがあります。 ( )内の数字が3になったことを確認して 「Finish」をクリック ここが(3)になったことを確認 (3つのアクションを記録したよとい う意味です) ※操作を終えてから少し待ちます 確認したら、 「Finish」をクリック ⑥ レコーダーでキャプチャをしたアクションは、 作成済みのアクションの最後に表示されます いま記録した3つのアクション

Slide 23

Slide 23 text

レコーダーでキャプチャした処理の中身を確認 レコーダーでキャプチャしたアクションが意図どおりになっているかを確認しましょう 処理のビューで レコーダーのアクションに カーソルを当てると、 画面右側に 操作の詳細が表示されます ▲選択されていない状態 ▲アクションが選択された状態 見分け方 (微妙な違いです) ☝確認のポイント(基本編) ① オブジェクト 表示されている画像の赤枠が、 自分が操作したかった対象の オブジェクト(ボタン等)と合っているか? ② オブジェクトに対する操作 選択されているアクションは、 自分がオブジェクトに対してしたかった 操作と合っているか? ① ② 意図と違う操作を記録してしまった場 合は、該当のアクションを削除するか、 オブジェクトの再キャプチャ(後述)を実 施します。

Slide 24

Slide 24 text

処理を移動する 処理の最後に記録されたレコーダーのアクションを、 正しいステップ内に移動させてみましょう ① 移動させたいアクションを一括選択します ② 選択されたアクションを切り取ります ① 選択したい範囲の 先頭のアクションを選 択。その状態で…… 範囲の最後のアクショ ンをShift + クリック → 範囲選択完了! ② はさみマークで 切り取り (Ctrl + X でもOK) ③ 移動させたい先の直前にあるアクションを 選択し、切り取ったアクションを貼り付けます マークをクリックする と、このようなリスト が表示されます 「アクション後に貼り付け」を クリック (Ctrl + VでもOK)

Slide 25

Slide 25 text

前処理(完成形) ← フロー ↓リスト

Slide 26

Slide 26 text

3. メイン処理を作ろう メイン処理では、以下の処理を行います。 ① Clova OCRのコピーボタンを押す ② コピーした内容を変数に格納 ③ Clova OCRのコピーしたjson形式のデータから 購入日、店名、合計金額を取り出す ④ ファイルに書き出す ①はレコーダーの編集、②はクリップボードアクション、 ③はJavaScript、④は「ファイルに記録」アクションを使用し ます。

Slide 27

Slide 27 text

① Copyボタンを押す 使用するアクション : レコーダー (作成済みの アクションを編集)

Slide 28

Slide 28 text

レコーダーを編集する レコーダーでキャプチャした処理をコピーして、 中身をアレンジしてみましょう 【前提条件】(②以降の操作に必須) Clova OCRのトライアルページを開いた状態で実施 ① 前処理にあるレコーダーアクションからどれかひとつを コピーし、メイン処理のStepの中に貼り付ける ② コピー先のアクションを選択し、 「オブジェクトを再キャプチャ」をクリック ① アクション をコピー ② コピー先のアク ションを選んだ状態 で…… クリック ③ Clova OCRのページが表示されるので、 コピーボタンをキャプチャ ④ 少し待つ 続く▶ クリックは 赤枠が出てから!

Slide 29

Slide 29 text

レコーダーを編集する レコーダーでキャプチャした処理をコピーして、 中身をアレンジしてみましょう ⑤ アクションを「左クリック」に変更 ⑤ ☝補足 アクションをクリック→左クリックに変更する意味 公式ドキュメント情報: ↑・・・どういう場合にクリックが作動しないのか(・_・;)??? ↑今回のCopy ボタンのように、 「クリックによって、単純なページ遷移や画面表示”以外”の 動作を起こさせる」という場合に、 左クリックに変えるとうまくいくケースが多い(経験則) 「左クリック」に変更

Slide 30

Slide 30 text

② コピーした内容を 変数に格納 使用するアクション : クリップボード

Slide 31

Slide 31 text

① 「クリップボード」と 入力し検索 ② ドラッグしてフローの 中へ ① アクションから「クリップボード」を検索 ② 「コピー元」をドラッグしてフローの中へ クリップボードの情報を変数に格納する ③ 出力先の変数を指定します (変数の作成方法は次頁以降を参照) Copyボタンをクリックしたことで、クリップボードに入ったjson情報を変数に格納しましょう

Slide 32

Slide 32 text

Tips 変数の作り方

Slide 33

Slide 33 text

変数の2通りの作り方 1. 変数ウィンドウから明示的に作る ▲こちらの +マークを クリック 値を必ず変数に代入する必要がある箇所には、 入力欄の右に マークが表示される。 ( とは違うので注意!) をクリックすると、変数を作成するとともに その変数を代入先として指定できる : 作成済みの変数を指定する(V11におけるF2) : 変数を新たに作成するとともに、代入先として指定する 変数に関するマークの違い 2. 処理を作っている途中で、必要に応じて作る

Slide 34

Slide 34 text

変数の2通りの作り方 1. 変数ウィンドウから明示的に作る場合 2. 処理を作っている途中で、必要に応じて作る場合 Q. 2つの方法の違いは? A. 1の場合は型(タイプ)を自分で選択、 2の場合は適した型(タイプ)がすでに選択されています 適した型(タイプ)を 自分で選択 変数を作成するウィンドウが起動した時点で、 該当する処理の箇所に適した型(タイプ)が すでに選択されている 変数名(半角英数のみ)を入力すると、 (1.の場合) もしくは (2.の場合)ボタンが 活性化します。 ボタンを押すと変数を作成できます。

Slide 35

Slide 35 text

③ 購入日、店名、合計金額を 取り出す 使用するアクション : JavaScript

Slide 36

Slide 36 text

① 「java」 で検索 ② ドラッグして フローの中へ ① アクションから「java」を検索 ② 「開く」「JavaScriptを実行」「閉じる」を ドラッグしてフローの中に入れる 購入日、店名、合計金額を取り出す ③ 「開く」アクションの詳細を下記のとおり設定します json形式のデータから、ほしい情報を取り出して変数に格納してみましょう。 いろいろなやりかたが考えられますが、今日はJavaScriptを使います。 手動インポートを 選択 スクリプトの内容は、 次頁の中身をコピペ

Slide 37

Slide 37 text

function getDate(s){ var j = JSON.parse(s).result; var pi = j.paymentInfo; return (pi ? (pi.date ? pi.date : '') : ''); } function getStore(s){ var j = JSON.parse(s).result; var si = j.storeInfo; var name = (si ? (si.name ? si.name : '') : ''); var branch = (si ? (si.branch ? si.branch : '') : ''); var dq = '"'; return dq + name + branch + dq; } function getPrice(s){ var j = JSON.parse(s).result; var tp = j.totalPrice; return (tp ? (tp.price ? tp.price : '') : ''); } 「開く」アクションに貼り付けるスクリプト ☝補足 左のスクリプトでやっていることをざっくり解説します - 各functionは、日付、店名、合計金額を それぞれ抽出する処理です - 「開く」アクション内のスクリプトでは関数(function) の定義だけを行い、実行は「JavaScriptを実行」の アクション内で行います - jsonデータの中に取り出したい値があればその値を、 なければ空白を返します (店名や購入日などは、レシートによってはそもそも 書いていない場合があるため) - 店名に関しては、店名(name)と支店名(branch)を 結合した結果を返します

Slide 38

Slide 38 text

④ 「JavaScriptを実行」アクションの詳細を 下記のとおり設定します 購入日、店名、合計金額を取り出す json形式のデータから、ほしい情報を取り出して変数に格納してみましょう。 いろいろなやりかたが考えられますが、今日はJavaScriptを使います。 a. 関数名 b. パラメータ(引数) c. 出力先の変数名 a.関数名 c.出力先の変数名 getDate -> vDate getStore -> vStore getPrice -> vPrice ☝Tips 1つのJavaScriptの実行アクションで実行できる関数 は1つだけです。 今回は購入日、店名、合計金額という3つのデータを取 り出す必要があるため、実行アクションを3回行います。 a.の関数名とc.の出力先の変数は3つそれぞれ異なり ますが、b.のパラメータ(関数に渡す引数)はすべて同じ です。 なので、実行アクションをひとつ作ってコピーし、 コピー先のアクションでa.の関数名とc.の変数だけ変 更、とすると少し楽です。 変数の作り方は p.43~参照

Slide 39

Slide 39 text

④ ファイルに書き出す 使用するアクション : ファイルに記録

Slide 40

Slide 40 text

① 「ファイルに記録」と 入力し検索 ② ドラッグしてフローの 中へ ① アクションから「ファイルに記録」を検索 ② ドラッグしてフローの中へ ファイルに書き出す ③ 詳細を以下のとおり設定 Copyボタンをクリックしたことで、クリップボードに入ったjson情報を変数に格納しましょう a. ファイルパス 最初に作ったcsvファイルを選択 b.ファイルに記録する内容 $vDate$,$vStore$,$vPrice$ と設定 c.追加/上書きの選択 「既存のログファイルに追加」を選択 d.エンコード 「UTF-8」を選択 👆👆設定内容の意味や、他の便利なやり方などは ハンズオンの中で説明します。

Slide 41

Slide 41 text

メイン処理(完成形) ← フロー ↓リスト

Slide 42

Slide 42 text

4. 終了処理を作ろう これまでに作成したステップで、 処理自体は一旦完成です。 が! 使い終わったアプリケーションなどは閉じておくのが お行儀のよい開発の作法です。 最後に、Clova OCRを開いているウィンドウを閉じましょう。

Slide 43

Slide 43 text

① 「閉じる」と 入力し検索 ② ドラッグしてフローの 中へ ① アクションから「閉じる」を検索 ② 「ウィンドウ」配下の「閉じる」アクションを ドラッグしてフローの中へ ウィンドウを閉じる ③ 詳細を以下のとおり設定します 処理の最後に、使い終わったウィンドウを閉じておきましょう 「ウィンドウ」をクリッ クし、配下のアクショ ンを表示させる 「変数」を 選択 変数の検索ウィンドウを表示 させると、$window-x$という 変数がいくつか表示されるは ず。→xの数字が最も小さいも のを選択 ウィンドウタイトルにClova OCRのweb ページタイトルが表示されればOK ウィンドウ変数については、ハンズオンの中で説明予定です

Slide 44

Slide 44 text

5. Botを実行 してみよう 完成したBotを実行してみましょう! 実行するには、画面右上の実行ボタンをクリックします クリック

Slide 45

Slide 45 text

処理結果を確認 確認ポイント② 出力先のcsvを開いたとき、 以下のように出力データが書き出せている 確認ポイント① 実行終了後、正常終了を知らせる 「キラキラ」が出る 実行結果を確認しましょう 上記の2点が確認できれば、今日の必達目標としているBotは一旦完成です。

Slide 46

Slide 46 text

完成 おめでとうございます! 以上で、今日の必達目標としていた Botの作成は完了です。 より実践的なおまけ問題も ご用意していますので、 興味のある方はこのあと ぜひチャレンジしてみてください!

Slide 47

Slide 47 text

おまけ問題 自分で用意したレシートの画像をアップロードし、 その結果をcsvに書き出してみましょう。 その際、レシートの画像をひとつのフォルダまとめておけば ファイル内の画像を一気に処理できるようにしましょう ※ おまけ問題の解説は、当日はイベント時間終了後に 実施予定です。 資料を見ながら進められる人は、イベント時間内に どんどん進めていただいて大丈夫です。 → おまけ問題までたどりつける人はデキる人と想定し、 資料の解説はあっさりめとなっております

Slide 48

Slide 48 text

おまけ問題の下準備 - アップロードしたいレシートの画像を用意しましょう - レシートの画像を、ロボット実行端末の特定のフォルダにまと めましょう - レシート画像のファイル名は、できるだけ短くシンプルにして おきましょう - 上記のフォルダの中には、アップロード用のレシート画像だ けを入れるようにし、それ以外のファイルは入れないようにし てください (フォルダは入っていてもOKですが、zipファイルなどはNG)

Slide 49

Slide 49 text

おまけ問題 Step1 処理構造を修正しよう ①メイン処理の先頭に、「画像をアップロードする」という タイトルのStepを追加しましょう → やりかたは26ページを参考にしてください ②ループを作成し、メイン処理全体をループの中に入れましょう → フォルダ内のファイルをすべて処理するループの組み方は 以下の記事を参考にしてください https://qiita.com/IQ_Bocchi/items/ed8a17deb6a1d64473c7 できあがりのイメージは次頁を参照してください

Slide 50

Slide 50 text

おまけ問題Step1 処理構造修正後のイメージ 赤枠部分が追加部分です。メイン処理全体がループの中に入ります。

Slide 51

Slide 51 text

おまけ問題 Step2 アップロード処理を レコーディングしよう レコーダーを使って以下の操作をレコーディングしましょう 【操作】 アップロードボタンを押す → 出てきた画面の「+」を押す → フォルダパスを指定 → ファイルを選択 → 「開く」ボタンを押す → 「Confirm」ボタンを押す 赤枠部分は少しコツがいるので、次頁で解説します ※赤枠部分+「開く」ボタンはWindowsオブジェクト、それ以外はChromeの画面 ですが、A2019はレコーダーを切り替えたりせず、一連の操作を記録できます

Slide 52

Slide 52 text

おまけ問題Step2 レコーダーのコツ フォルダパスおよび画像ファイルの指定を再現性のある手順にするために、 以下の要領でレコーディングしましょう ① レコーディングの前に、画像ファイルの入った フォルダパスをコピーする (フォルダパスがクリップボードに入った状態に しておく) ② レコーダーを起動し、アップロードボタン、 +ボタンを普通にレコーディング ③ ウィンドウズの「開く」画面が起動します → このあと、通常であればクリック操作で フォルダを選びたくなりますが、それはNG! (画面起動時のフォルダパスが変わると操作が変わってしまうため) → クリックではなく、このページの右側の要領で フォルダパスを指定しましょう 【レコーディング時のフォルダパスの指定の仕方】 フォルダパスを指定する バーをクリック いま入っているフォルダパスをBack Spaceで消し、①でコピーしておいた フォルダパスを貼り付ける 続く▶

Slide 53

Slide 53 text

おまけ問題Step2 レコーダーのコツ フォルダパスおよび画像ファイルの指定を再現性のある手順にするために、 以下の要領でレコーディングしましょう ④ アップロードする画像を選ぶ際も、 通常であればクリックして選びたくなりますが、 それはNG! → 代わりに、ファイル名の入力欄をクリックし、 ファイル名を手入力します。 ここをクリックして、 ファイル名を手入力 ⑤ 「開く」ボタンのクリック、「Confirm」ボタンのクリック 操作を通常どおりレコーディングし、レコーディングを 終了します → ここまで完了したら、次は ③と④のアクションの中身を編集 していきます。 編集のやりかたは 次頁以降を参照してください。

Slide 54

Slide 54 text

アクションの編集 ③フォルダパスの指定 操作対象の要素をつかむ根拠になる「オブジェクトのプロパティ」と、 オブジェクトに対するアクションを編集します 【Before】 【After】 続く▶ アクションを「テキストを設定」に変更。 設定内容として、「キーボード操作」を選択+ 画像が入ったフォルダのフォルダパスを指定 (変数化している場合は、その変数を指定) プロパティとしてもともと選択されていたPathと Nameを無効化し、Class Nameを選択 (やりかたと説明は次頁参照)

Slide 55

Slide 55 text

オブジェクトのプロパティの編集 操作対象の要素をつかむ根拠になる 「オブジェクトのプロパティ」を編集す る方法です ①「オブジェクトのプロパティ」をクリック ここをクリック ② 表示された要素を取捨選択 → すると、オブジェクトを認識する根拠としてレ コーダーがつかんだ要素の一覧が右のように 表示されます。 取捨選択の基準 【残す・入れる】 処理のタイミングや条件を問わず不変で、 当該オブジェクトをユニークに認識できる要素 【外す】 処理のタイミングや条件によって 変わってしまうかもしれない要素 Pathは変わりやすいので 選択から除外(チェックを外す) Nameはフォルダパス全体が識別 要素になってしまっているためNG (チェックを外す) 「開く」のウィンドウの中に ツールバーはひとつしかない(不変)& フォルダパスを指定する場所は 常にツールバー(ユニーク) → これを選択(チェックを入れる)

Slide 56

Slide 56 text

アクションの編集 ④ファイル名の指定 操作対象の要素をつかむ根拠になる「オブジェクトのプロパティ」と、 オブジェクトに対するアクションを編集します 【Before】 【After】 続く▶ アクションを「テキストを設定」に変更。 設定内容として、「キーボード操作」を選択+ ループを回すごとにファイル名が変更できるよう、 $vFile{name}$.$vFile{extension}$ と指定 (ループ作成時にファイルを格納する変数名を vFileとしていた場合) プロパティは「Name」を選択 考え方や、「オブジェクトのプロパティ」の 編集方法は③の場合と同様です。 「テキストを設定」の内容の $vFile{name}$.$vFile{extension}$ の意味がわからない人は、以下の記事を参照して ください https://qiita.com/IQ_Bocchi/items/ed8a17deb6a1d64473c7 (Step3:ループの中で実行したい処理を行う)

Slide 57

Slide 57 text

おまけ問題 Step3 微調整 ここまで来れば、もう一息です! 以下を実施し、Botを仕上げましょう。 ① レコーダーで作成した処理をStep1で作成した ループの先頭のStepに移動する ② ファイルのアップロード後に、5秒の遅延を組み込む (Clova OCRが処理している時間を待つため) ②のやりかたと完成形のイメージを次頁以降で紹介します

Slide 58

Slide 58 text

① 「遅延」と 入力し検索 ② ドラッグしてフローの 中へ ① アクションから「遅延」を検索 ② ドラッグしてフローの中へ 遅延を組み込む ③ 詳細を以下のとおり設定します Webサイトやアプリに処理のリクエストをかけたあと、 処理結果が出るまでに時間がかかる場合は、 処理結果を待つために遅延を組込みます。 単位は「秒」を選択 遅延のタイプは「定期」で 遅延の秒数は「5」を指定

Slide 59

Slide 59 text

完成形 フロー ← (おまけ問題で追加した アップロード処理部分のみ) リスト → (完成形全体) アップロード処理部分

Slide 60

Slide 60 text

Botを実行してみよう (おまけ問題編) 処理が正常終了し、以下のようになっていればOK! フォルダ内にあるレシートの データが追加されている ※ レシートに書いていない項目の列は、空欄になっていてもOKです

Slide 61

Slide 61 text

Thank you 以上で、ハンズオンのメニューはすべて完了です。 今日学んだことを活かして、今後もLINEやClova OCR、 Automation Anywhereを活用した自動化・効率化を さらに広げていっていただければ幸いです。 ご参加ありがとうございました♡