はじめに
- 本記事は、UiPath Studio の基礎知識をお持ちで、これから Document Understanding を利用したい方向けの内容となっています。
- 記事の内容は、個人の見解または確認結果であり、UiPath の公式見解ではありません。
- 製品仕様や参考画像は 23.4 バージョンで構成しています。
- Automation Cloud のアカウントおよび Pro Trial を申請するなどして DU のアクセス権限を取得している必要があります。
Document Understanding のデータ出力操作のメモ
探し方がよくなかったのか、Document Understanding のエクスポートで得られる出力(DataSet(データセット)型)(※補足) に関する記事がみつからなかったのでメモしておきます。
DataSet型はデータベースの様なもので、Document Understanding にみる
読み取り結果が1種類の表(テーブル)におさまらないケースでよく使われます。
※補足:以下がDUの抽出結果をエクスポートするアクティビティ
Document Understanding のテンプレートにある標準の出力
- 「繰り返し(コレクションの各要素)」を配置、{DataSet}.Tables を各要素に、
TypeArgument に DataTable を指定します。 - 「範囲に書き込み(ワークブック)」を配置し、出力ファイルパス・シート名・内容(明細レコード)を指定します。
特定項目の値を取得したい、項目を絞って出力したい
読み取ったデータから取得する項目、出力項目を絞りたい場合にも、
抽出結果のデータセット.Tables(0).Rows(0).item("部署名").ToString+","+抽出結果のデータセット.Tables(0).Rows(0).item("お名前").ToString+","+抽出結果のデータセット.Tables(0).Rows(0).item("自由記述欄").ToString
の様に、{DataSet}.Tables(インデックス) でテーブル化できるため、普段のテーブル操作と同じ様に値取得が可能です。
// 値加工のサンプル:
// 半角スペースを除去(単純な文字列置換)
{左辺の整形済みテキスト} = 抽出結果のデータセット.Tables(0).Rows(0).item("自由記述欄").ToString.Replace(" ","")
// 電話番号からハイフンを除去(正規表現をもちいた置換)(例)080-1234-5555 → 08012345555
{左辺の整形済みテキスト} = System.Text.RegularExpressions.Regex.Replace(抽出結果のデータセット.Tables(0).Rows(0).item("電話番号").ToString, "[^0-9]", "")
// 日付のフォーマットを変更(正規表現をもちいた置換)(例)2023/06/14 → 2023年6月14日
System.Text.RegularExpressions.Regex.Replace(抽出結果のデータセット.Tables(0).Rows(0).item("入力日付").ToString,"(?<year>(?:\d\d)?\d\d)/(?<month>\d\d?)/(?<day>\d\d?)","${year}年${month}月${day}日")
読み取ったレコードを1つの表に纏めたい
本メモ記事を書く動機となったケースです。
新たなテーブルを1個つくって、そこにレコード追加をしていきたい場合 の実装メモです。
まず、「データ テーブルを構築」で新しいテーブルのインスタンスを生成しておきます。
繰り返し処理の中に「データ行を追加」アクティビティを配置し、{DataSet}.Tables(インデックス).Rows(インデックス).ItemArray と記述し列配列を指定します。
(tmpTable の出力例)
おわりに
いかがでしたでしょうか?
Document Understanding の機能はワークフローの一部であり、読み取った後のデータ操作が肝となるのですが、
DataSet型扱ったことがない方にとっては?がつきやすい部分かとおもい記事にしました。
この記事を読んで少しでもDUの理解が深まった、また関心が強まったという方は
是非以下の記事等もご覧になっていただけますと幸いです。