3.A.6.B. DataTableに情報を追加する

次に、ワークフローの最初に作成された DataTable に、ファイルについて収集した情報を追加します。ユーザーは、AddDataRowを各サブワークフローの最後(つまり、製品情報を持つテキストファイル、製品情報を持たないテキストファイル、またその他のファイル)にドラッグして、各ファイルを処理した記録を保持します。

新しい行を正しいDataTableに参照させるために、DataTableの名前は以前に作成されたものでなければなりません。RowData には、ユーザが追加したい変数名を、辞書の構文に従って追加します({variable, variable, variable})。

詳細は、Add this iteration’s invoice to DataTableに記載されています。なお、これは別の例ですので、変数名はこの例に従って変更する必要があります。

3.A.7. SOAPサービス

この例では、Windows Powershellを使って SOAPサービスVIES VAT Validation<https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl> _」に接続し、WSDLを使ってデータを収集するワークフローを作成し、入力データを取得して、収集したデータを出力バー内に展示します。

  1. SOAPサービスがどのように定義されているかを可視化する

  2. 入出力変数の定義

  3. SOAP Serviceに接続し、Invoke Code内でデータをマッピングする

  4. 収集したデータを展示する

  5. ワークフロー終了 – 出力

3.A.7.1. SOAPサービスがどのように定義されているかを可視化する

ここでは、接続先となるSOAPサービスのWSDL定義にアクセスし、入出力変数を定義することになります。

まず、VIES VAT Validation(https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl) ウェブサービスページにアクセスし、どのクラスでデータを収集するのかを確認することができます。

.wsdlファイルに定義されたスキーマから分かるように、定義されたtargetNamespaceはurn:ec.europa.eu:taxud:vies:services:checkVat:typesです。つまり、テンプレートの残りの部分で定義される要素は、checkVatクラスから継承された型です。これは、データを収集するために使用されるクラスです。

このクラス内のメイン関数はcheckVat関数で、この関数は2つの入力パラメータ、countryCodeと vatNumberを受け取ります。この関数が呼ばれると、checkVatResponse関数の内容、つまり、countryCode,vatNumber,requestDate,valid,name,addressが返されます。つまり、checkVat の入力パラメータ(countryCode,vatNumber) とcheckVat関数の呼び出しの出力パラメータ(requestDate,valid,name,address) を返すのです。ユーザはvalidnameaddressだけを使って、返されたデータを展示することになります。

3.A.7.2. 入出力変数の定義

ここでは、SOAPサービスに渡す入力変数と、SOAPサービス呼び出しの内容を格納するための出力変数を定義します。

まず、メインシーケンスにAssignアクティビティをドラッグします。To入力フィールドに変数countryCodeをEnter a VB expressionフィールドに"DK "を入力します。

さて、メインシーケンスにAssignアクティビティをドラッグします。To入力フィールドに変数vatNumberをEnter a VB expressionフィールドに"40400230 "を入力します。

備考

Ctrl+Kを押すと、入力フィールドに入力する際に自動的に変数が作成されますが、画面下部の変数ボックスをクリックして手動で作成することもできます。右側には、変数に代入する値を入力します。

images/check_soap_service_define_input_variables.png

ここで、返される他の出力変数、つまりvalidnameaddress を手動で定義しなければなりません。nameaddressString変数で、validBoolean変数です。これは、WSDLファイル内のcheckVatResponse関数の定義で簡単に見ることができます。valid変数の定義では、<xsd:element>の typeパラメータはxsd:booleanとみなされ、他の2つの変数については、そのtypeはxsd:stringとみなされる。

images/check_soap_service_response_class.png

あとは、Variables, Imports & Argumentsボックスの Variables セクションで、これらの出力変数を作成するだけです。

images/check_soap_service_create_output_variables.png

3.A.7.3. SOAPサービスに接続し、Invoke Code内でデータをマッピングする

ここでは、Invoke Codeアクティビティにデータをマッピングする方法と、Powershell言語を用いてSOAP Serviceの呼び出しを実行する方法について学習します。

まず、Invoke Codeアクティビティをメインシーケンスにドラッグします。エディタを開く]ボタンをクリックしてエディタを開き、その言語をPowerShellに設定します。

images/check_soap_service_drag_invoke_code.png
images/check_soap_service_open_editor.png

ここで、以下のコードをエディタに挿入してください。

 $Client = New-WebServiceProxy -Uri "http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl" -Class "checkVat"$DateChecked = $Client.checkVat([ref]$countryCode, [ref]$vatNumber, [ref]$valid, [ref]$name, [ref]$address)

Client行はVIES VAT Validationウェブサービスに接続し、データを収集するために使用されるクラスを定義します:checkVat.Toは、VIES VAT Validationウェブサービスに接続し、データを収集するために使用されるクラスを定義します。

DateCheckedの行は、前のセクションで見たように、定義されたcheckVatを実行し、参照変数(https://ss64.com/ps/syntax-ref.html)を使って、返される変数 –countryCode,vatNumber,valid,name,address– をマッピングしています。

3.A.7.4. 集めたデータを展示する

このセクションでは、ユーザーはWrite Lineアクティビティを使用して、Outputバーで収集したデータを表示します。

まず、WriteLineアクティビティをメインシーケンスにドラッグして、Text入力フィールドにvalid.ToStringを入力します。

さて、WriteLineアクティビティをメインシーケンスにドラッグして、Text入力フィールドにnameを入力します。

最後に、WriteLineアクティビティをメインシーケンスにドラッグして、Text入力フィールドにAddressを入力します。

images/check_soap_service_writeline.png

3.A.8. RESTサービス(Node-REDとの連携)

この例では、Chuck Norris Jokes API(https://api.chucknorris.io/) に接続し、ジョークをキャプチャするワークフローを作成することになります。

また、ユーザーはForge.FormsのダイナミックWPFフォーム(https://github.com/WPF-Forge/Forge.Forms)を使って、ジョークのカテゴリーを選択できるダイアログボックスを作成します。

また、メッセージがChuck Norrisのジョークかどうかを確認するために、簡単な検証方法が用いられています。

その手順は以下の通りです。

  1. Node-REDでTo/Fromに渡す変数を設定する

  2. NodeREDにおけるメッセージの操作について

  3. OpenRPAフォーム

  4. openrpaでワークフローを呼び出す

  5. 冗談で失敗したワークフローを作成する

  6. チャック・ノリス・ジョークを評価する

  7. ジョーク失敗のワークフローを呼び出す

  8. Node-REDにおける評価失敗ケースの設定

  9. 出力ロジック

  10. ワークフロー終了

3.A.8.1. Node-REDでの変数の受け渡しの設定

ロボットからデータを受け取り、Chuck Norris APIに問い合わせ、その値をロボットに返すというロジックがここにある。

ワークフローロジック

Workflow Inノードをワークスペースにドラッグします。

images/openrpa_workflow_example_rest_workflow_in_drag.png
images/openrpa_workflow_example_rest_workflow_in_workspace.png

Workflow In のプロパティで、OpenFlow ワークフローが割り当てるキューを定義するために、キュー 名を設定します。キュー名は完全に任意であり、ユーザが好きな名前を選択できます。この例では、chuckapi と設定しています。

備考

Node-RED ワークスペース内のノードのプロパティにアクセスするには、指定されたノードをダブルクリックします。ノードのプロパティボックスが表示され、それ自体に必要な各入力フィールドが表示されます。

RPAチェックボックスをオンにすると、このフローのワークフローがOpenRPAエージェントから呼び出されるようになります。

Name入力フィールドにワークフローの名前を設定します。ここでは、ChuckAPIと設定しています。

images/openrpa_workflow_example_rest_workflow_in_double_click.png
images/openrpa_workflow_example_rest_workflow_in_set_properties.png

HTTP Requestノードをワークスペースにドラッグします。

images/openrpa_workflow_example_rest_http_request_drag.png

Workflow In」ノードと「HTTP Request」ノードを接続します。

images/openrpa_workflow_example_rest_http_request_nodes_connect.png
images/openrpa_workflow_example_rest_http_request_nodes_connected.png

備考

ノードの接続は、Ctrlキーを押しながら、各ノードの外側にあるポートという灰色の長方形をクリックするだけで簡単にできます。クリックしたままでも接続できますが、筆者はCtrlキーを使う方が使いやすいと感じています。

リクエストのMethodを GETに設定します。

リクエストの送信先となるAPIのURLを設定します。この例では、https://api.chucknorris.io/jokes/random?category={{category}}です。

Mustache(https://mustache.github.io/mustache.5.html) の中の変数、すなわちcategoryも同様に任意の名前になっています。

この変数は、OpenRPAがユーザーから取得した選択肢の値を渡すために使用されます。ユーザーは自分の好きなように名前をつけることができます。

返送するタイプを設定します。この例では、パースされた JSON オブジェクトが返されます。

images/openrpa_workflow_example_rest_http_request_set_properties.png

Workflow Outノードをワークスペースにドラッグします。

images/openrpa_workflow_example_rest_workflow_out_drag.png

HTTP RequestノードとWorkflow Outノードを接続します。

images/openrpa_workflow_example_rest_workflow_out_nodes_connect.png
images/openrpa_workflow_example_rest_workflow_out_nodes_connected.png

備考

ノードの接続は、Ctrlキーを押しながら、各ノードの外側にあるポートという灰色の長方形をクリックするだけで簡単にできます。クリックしたままでも接続できますが、筆者はCtrlキーを使う方が使いやすいと思います。

画面左上の赤い「Deploy」ボタンをクリックして、フローをデプロイします。

images/openrpa_workflow_example_rest_chuck_api_deploy.png

3.A.8.2. Node-REDにおけるメッセージの操作

ここで、OpenRPAからNode-REDにパラメータを送信して、ワークフローがそれほど静的でないようにしたいと思います。

このパラメータには、Chuck Norris APIのジョークが関連するカテゴリを指定します。

Node-REDのワークフローで集めた変数からパラメータを変更するには、Functionノードとそのプロパティで簡単に行うことができます。

RobotsIn/Out の引数は常にmsg.payload属性に渡され(Node-RED では)、Functionノードで簡単に操作することができます。

images/openrpa_workflow_example_rest_function_node.png

ワークフローのChuckAPI Workflow InノードとHTTP Requestノードの間にFunctionノードをドラッグするだけで、ワークフローに追加できます。

備考

ノードを自動的に追加してシーケンスにバインドするには、Shiftキーを押しながらノードをドラッグします。こうすると、ノードがドラッグされる前にすでに確立されていたシーケンスの間に自動的に入ります。

images/openrpa_workflow_example_rest_parameter_passing_function_drag.png
images/openrpa_workflow_example_rest_parameter_passing_function_workspace.png

この例では、必要なパラメータはmsg.categoryで、これは OpenRPA ワークフローから渡されるcategory引数からmsg.payload.categoryとして収集されます。

images/openrpa_workflow_example_rest_parameter_passing_function_double_click.png

Functionノードのプロパティでmsg.category = msg.payload.category を設定します。

これは、ユーザーが次に構築するOpenRPAワークフローから取得したHTTP Requestノードに、categoryパラメータを設定するために使用されます。

images/openrpa_workflow_example_rest_parameter_passing_function_set_properties.png

備考

この例では、ユーザーはChangeノードを使用してmsg.category属性をmsg.payload.categoryに設定することもできますし、単にmsg.payload.categoryを HTTP リクエストに直接渡すこともできます(これについては後述します)。

3.A.8.3. OpenRPAフォーム

ここで、ユーザーは動的なWPFフォームを作成し、クライアントからカテゴリ値を収集します。

まず、Invoke Formulaスニペットをメインシーケンスにドラッグします。

ここで、「 デザイナーを開く」をクリックして、フォーム デザイナーを開きます。

images/openrpa_workflow_example_rest_openrpa_forms_click_open_designer_button.png

備考

フォーム デザイナーは、クライアントからの入力を収集するために、ユーザーが希望するWPFフォームを作成する場所です。その右側には、入力フォームのプレビューが表示される。その左側には、入力フォームを設計するために使用するコードを入力します。フォーム デザイナーにコードを追加した後、常にビルドフォームボタンを押して変更を保存し、プレビューを可視化することができます。

サンプルコードをすべて消去し、下記のコードスニペットをデザイナーのコードエディタに追加します。そして、Build formボタンを押してフォームを更新してください。

images/openrpa_workflow_example_rest_openrpa_forms_empty_designer.png
<form-designer> <title>Choose Chuck Norris API Category</title> <heading>Please enter the desired category number inside the input field. The returned joke will be related to the selected category.</heading><select name="category" label="Choose the desired category">   <option name="animal" />   <option name="career" />   <option name="celebrity" />   <option name="dev" />   <option name="explicit" />   <option name="fashion" />   <option name="food" />   <option name="history" />   <option name="money" />   <option name="movie" />   <option name="music" />   <option name="political" />   <option name="region" />   <option name="science" />   <option name="sport" />   <option name="travel" /></select><action name="submit" content='SUBMIT' icon='check' validates='true' ClosesDialog='true' ></action></form-designer>
images/openrpa_workflow_example_rest_openrpa_forms_filled_designer.png

備考

コードスニペットを追加した後、Create variablesボタンを押すと、WPFフォームで使用するすべての変数を自動的に作成することができます。

この場合、ワークフローはVariableを使用することができない。Node-REDで消費される値なので、必ずDirectionが In/OutまたはOutで、タイプがStringの Argumentとして設定しなければならない。

images/openrpa_workflow_example_rest_openrpa_forms_arguments_box.png

さて、WPFフォームから収集した値が正しい型であることを保証するために、ユーザーはAssignアクティビティを使用して値をStringにキャストします。

3.A.8.4. OpenRPAでワークフローを呼び出す

さて、いよいよOpenRPAでワークフローを起動し、処理ロジックを工夫していきます。

フローはすでにデプロイされているので、ユーザーはワークフローをOpenFlowリポジトリと同期させる必要があります。

前述の作業を行うには、OpenRPAのリボン内にある「Reload」ボタンをクリックします。OpenFlowリポジトリ内にある全てのワークフローがOpenRPAにリフレッシュされます。

images/openrpa_workflow_example_rest_invoke_openflow_click_reload_button.png

OpenRPAのデザイナーで、Invoke OpenFlowアクティビティをメインシーケンスにドラッグします。

呼び出したいRPAワークフローを選択します。ここでは、ChuckAPIを選択します。

images/openrpa_workflow_example_rest_invoke_openflow_drag_activity.png
images/openrpa_workflow_example_rest_invoke_openflow_chuck_api_selected.png

備考

注意:Node-REDがフローの実行を終了すると、msg.payloadに設定されたものがロボットに戻ってきます。NodeREDにmsg.payload.personが存在すれば、そこに戻ってきたものは自動的にOpenRPAのpersonという変数に格納されます。

3.A.8.5. 冗談の失敗を作成するワークフロー

ChuckAPIのプロセスが設定されたので、ユーザーは通常のプロセス実行時に何らかの障害が発生した場合に実行されるワークフローの設定に進むことができます。

新しいワークフローを作成します。この例では、REST Workflow Example - Joke Failedという名前で、ワークフローを指定します。

images/openrpa_workflow_example_rest_create_joke_failed_empty_workflow.png

WriteLineアクティビティをメインシーケンスにドラッグします。

images/openrpa_workflow_example_rest_create_joke_failed_drag_write_line.png

ここで、Chuck Norris API のジョークの内容を含むエントリを返すデフォルトの変数を作成する必要があります (「変数、引数、およびインポート」ボックス内)。この変数のエイリアスは、Chuck Norris API Random Joke(https://api.chucknorris.io/jokes/random)に示すように、valueです。

テキスト入力フィールドまたはプロパティボックスで、出力値をエイリアス値の新しい変数に設定します。

images/openrpa_workflow_example_rest_create_joke_failed_set_text_value.png

備考

Ctrl+Kを押すと、入力フィールドに入力する際に自動的に変数が作成されますが、画面下部の変数ボックスをクリックして手動で作成することもできます。右側には、変数に代入する値を入力します。

このワークフローは、OpenRPAの無限の可能性を示す一例として使用されているに過ぎない。ChuckAPIのジョークを.csvや .xslxファイルに読み込んで、そのデータを扱うワークフローを起動したり、MongoDB Entityに渡したり、前述したように自動化には限界がないのです。

3.A.8.6. チャック・ノリス・ジョークを評価する

ここでは、Chuck Norris APIから取得したジョークがジョークであるかどうかを確認するための評価処理を設定します。

ここで使われている検証基準は、返されたJSON 辞書の 値の項目の内容が、”Chuck Norris “という文字列を含んでいるかどうかというものである。

まず、Chuck Norris API のジョークの内容を含むエントリを返すデフォルト変数を、「変数、引数、およびインポート」ボックス内に作成する必要があります。この変数のエイリアスは、Chuck Norris API Random Joke(https://api.chucknorris.io/jokes/random) で見ることができるように、valueです。

REST ワークフロー 例のワークフローで、Ifアクティビティをデザイナへドラッグします。

images/openrpa_workflow_example_rest_evaluate_chuck_norris_joke_drag_if.png

アクティビティ本体またはプロパティボックスの条件」入力フィールドにvalue.Contains("Chuck Norris")を入力します。

images/openrpa_workflow_example_rest_evaluate_chuck_norris_joke_set_evaluation_condition.png

3.A.8.7. Node-REDでの評価失敗プロセスの設定

ChuckAPIプロセスの評価に失敗した場合に、さらに実行される適切なフローをユーザーが設定する必要があります。

ワークフローロジック

Workflow Inノードをワークスペースにドラッグします。

images/openrpa_workflow_example_rest_evaluate_setting_evaluation_failed_workflow_in_drag.png

Workflow In のプロパティで、OpenFlow ワークフローが割り当てられるキューを定義するQueue nameを設定します。

キュー名は完全に任意であり、ユーザは好きな名前を選ぶことができる。この例では、jokefailed と設定されています。

備考

Node-RED ワークスペース内のノードのプロパティにアクセスするには、指定されたノードをダブルクリックします。ノードのプロパティボックスが表示され、それ自体に必要な各入力フィールドが表示されます。

RPAチェックボックスをオンにすると、このフローのワークフローがOpenRPAエージェントから呼び出されるようになります。

Name」入力フィールドにワークフローの名称を設定します。ここでも、名前は任意に設定します。この例では、「Joke Failed」と設定されています。

images/openrpa_workflow_example_rest_evaluate_setting_evaluation_failed_workflow_in_double_click.png
images/openrpa_workflow_example_rest_evaluate_setting_evaluation_failed_workflow_in_set_properties.png

RPA WorkflowまたはRobotノードをワークスペースにドラッグします。このノードにより、評価失敗時にREST Workflow - Joke Failedワークフローを呼び出すことができます。

images/openrpa_workflow_example_rest_evaluate_setting_evaluation_failed_robot_drag.png

ワークフローを呼び出すロボットと呼び出されるワークフローをロボットノードのプロパティに設定します。また、ノードのLocal queue nameと Nameを設定します。

ローカル キュー 名は任意で、ロボットインスタンスのキューイングに使用されるキューを設定するために使用されます。

Nameパラメータは、Node-RED内部での表示のみに使用されます。

この例では、Local queue nameを jokefailedNameを Invoke Joke Failed Workflowに設定しています。

images/openrpa_workflow_example_rest_evaluate_setting_evaluation_failed_robot_set_properties.png

Workflow InノードとRobotノードを接続します。

images/openrpa_workflow_example_rest_evaluate_setting_evaluation_failed_robot_connect_node.png
images/openrpa_workflow_example_rest_evaluate_setting_evaluation_failed_robot_connected_node.png

備考

ノードの接続は、Ctrlキーを押しながら、各ノードの外側にあるポートという灰色の長方形をクリックするだけで簡単にできます。クリックしたままでも接続できますが、筆者はCtrlキーを使う方が使いやすいと感じています。

Email Outノード(アクティビティの右端にある文字アイコンのノード)をワークスペースにドラッグします。このノードは、評価時にエラーが発生した場合、選択したメールにmsg.payloadオブジェクトの JSON 文字列を送信する役割を担います。

images/openrpa_workflow_example_rest_evaluate_setting_evaluation_failed_email_drag.png

Invoke Joke Failed Workflowノードの一番上のポートを、emailノードの外側のポートに接続します。

備考

ノードの接続は、Ctrlキーを押しながら、各ノードの外側にあるポートという灰色の長方形をクリックするだけで簡単にできます。クリックしたままでも接続できますが、筆者はCtrlキーを使う方が使いやすいと思います。

images/openrpa_workflow_example_rest_evaluate_setting_evaluation_failed_email_connect_node.png
images/openrpa_workflow_example_rest_evaluate_setting_evaluation_failed_email_connected_node.png

Eメールノードのプロパティを設定します。

Toは、受信者からの電子メールアドレスを指します。

Useridは、メールを送信するアカウントのUserIdです。(例: ドメインなしの電子メール – 電子メールがadmin@openiap.io の場合、UserId はadmin になります)

パスワード– 送信者からのメールアカウントのパスワード。

この例では、ダミーの電子メール(admin@gmail.com)を設定し、メッセージの送受信に使用する。ここで注意すべきは、ユーザーがEメールを変更しなければ、ワークフローは明らかに機能しないということです。

images/openrpa_workflow_example_rest_evaluate_setting_evaluation_failed_email_set_properties.png

備考

ユーザーが Gmail の SMTP サーバを使用している場合、Less secure アプリのアクセスを許可する設定が正しいことが必要です。さもなければ、ワークフローの実行時にエラーメッセージが表示されます。そのためには、Less secure app access(https://myaccount.google.com/lesssecureapps) を参照し、Allow less secure appssettings がON になっていることを確認します。

Workflow Outノードをワークスペースにドラッグします。

images/openrpa_workflow_example_rest_evaluate_setting_evaluation_failed_workflow_out_drag.png

Workflow Out」ノードを「Eメール」(現在は「admin@gmail.com」)ノードに接続します。

備考

ノードの接続は、Ctrlキーを押しながら、各ノードの外側にあるポートという灰色の長方形をクリックするだけで簡単にできます。クリックしたままでも接続できますが、筆者はCtrlキーを使う方が使いやすいと感じています。

images/openrpa_workflow_example_rest_evaluate_setting_evaluation_failed_workflow_out_connect.png
images/openrpa_workflow_example_rest_evaluate_setting_evaluation_failed_workflow_out_connected.png

画面左上の赤い「Deploy」ボタンをクリックして、フローをデプロイします。

images/openrpa_workflow_example_rest_evaluate_setting_evaluation_failed_deploy.png

備考

Node-REDのフローに変更があった場合、ユーザーはそのフローをデプロイする必要があり、その変更は現在そのフローを使用しているロボット全体に伝搬されます。

3.A.8.8. ジョーク失敗のワークフローを呼び出す

あとは、ChuckAPIプロセスが正しく評価されない場合に備えて、REST Workflow Example - Joke Failedをワークフローが呼び出すようにする必要があります。

そのためには、Invoke OpenFlowアクティビティをElseシーケンスにドラッグして、Ifアクティビティの中に入れます。

images/openrpa_workflow_example_rest_evaluate_invoke_joke_failed_drag.png

ここで、起動するワークフローとして「冗談の 失敗」を選択します。

images/openrpa_workflow_example_rest_evaluate_invoke_joke_failed_select.png

このように、REST Workflow Example - Joke Failedアクティビティは、評価プロセスで失敗した場合に自動的に起動されます。

3.A.8.9. 出力ロジック

バルーンチップの表示」アクティビティを、「If」アクティビティの内側の「Then」シーケンスにドラッグします。

images/openrpa_workflow_example_rest_output_logic_show_balloon_tip_drag.png

表示されるバルーンヒントの タイトルを挿入します。

ユーザーに表示されるメッセージを挿入します。この例では、変数のです。

備考

Ctrl+Kを押すと、入力フィールドに入力する際に自動的に変数が作成されますが、画面下部の変数ボックスをクリックして手動で作成することもできます。右側には、変数に代入する値を入力します。

images/openrpa_workflow_example_rest_output_logic_show_balloon_tip_set.png

3.A.8.A. ワークフローの完成

以下に、ワークフローの出力と終了を含むスニペットを示します。また、それ以降のワークフロー全体も同様です。

images/openrpa_workflow_example_rest_output.png
images/openrpa_workflow_example_rest_1st_workflow_finished_1.png
images/openrpa_workflow_example_rest_1st_workflow_finished_2.png
images/openrpa_workflow_example_rest_2nd_workflow_finished_1.png
images/openrpa_workflow_example_rest_node-red_flow.png

3.A.9. PDFファイルの読み込みと解析

この例では、PDF ファイルからデータを抽出し、収集したデータを正規表現(https://ryanstutorials.net/regular-expressions-tutorial/)で処理し、CSV ファイルに保存するワークフローを作成します。

まず、データの抽出に使用するインボイスファイルをダウンロードする必要があります。このリンク(https://github.com/open-rpa/examples-files/raw/master/bpa-doc/parse_pdf/Horkheimer%20Technologies%20LLC.pdf)で入手可能です。

その手順は以下の通りです。

  1. PDFからテキストデータを抽出します。

  2. Match Regular Expression グループ。

  3. 結果を格納するDataTableを作成します。

  4. DataTableに行を追加する。

  5. DataTableをCSVに保存します。

3.A.9.1. PDFからデータを抽出する

このセクションでは、PDFからテキストデータを抽出し、変数に保存する方法を学習します。

まず最初に、ユーザーはReadPDFアクティビティをメインシーケンスにドラッグする必要があります。

images/openrpa_workflow_example_read_and_parsing_pdf_drag_readpdf.png

次に、...ボタンをクリックして、データを読み込むファイルを選択します。これが先ほどダウンロードしたインボイスファイルです。

ユーザーは、ReadPDFアクティビティによる抽出で生成されたテキストを保持するために使用される変数も作成する必要があります。この場合、変数はresultです。これは、プロパティボックスで利用可能なAllTextパラメータ内に設定する必要があります。

images/openrpa_workflow_example_read_and_parsing_pdf_configure_readpdf.png

備考

OpenRPAは、アクティビティ/プロパティに必要な正しい型を持つ新しい変数を自動的に作成することができます。プロパティボックスで新しい変数を作成する場合、変数名を入力した後、入力フィールド内にキャレットを置いたまま、Ctrl+Kを押します。