3.A.6.6. ファイルを読む

ここでは、Sequenceを2つに分割しています。まず、テキストファイルがどうなるかを考えてみましょう。

テキストファイルで実行される最初のアクティビティは、その内容を読み取ることです。ここでも、ユーザーはAssignActivityを「Then」フィールドにドラッグし、Variableを使用します。この例では、Variableの名前は「content」、タイプは「string」です。

ファイルを読み込むための式はSystem.IO.File.ReadAllText(file_name) を使用します。内容は、割り当てられたVariableに格納されます。

images/openrpa_manipulatingfiles_readfile.png

備考

この例では、.txtでないものを削除します。このチュートリアルでさらに説明します。

3.A.6.7. ファイル作成日を取得する

次に、ファイルの作成日を取得します。この手順は、前の手順(Read File)とよく似ています。つまり、ユーザーはAssignActivityを使って、VB式の内容を保存することになります。

この場合、式はSystem.IO.File.GetCreationTime(file_name).ToShortTimeString となります。

images/openrpa_manipulatingfiles_getcreationdate.png

備考

ここでは、他の可能性もある。ユーザーは、時間、日、月、あるいは、ファイルの作成に関するその他の情報を取得することができます。これを行うには、ユーザーは式の最後の部分を必要な情報の種類に変更する必要があります(例えば、System.IO.File.GetCreationTime(file_name).Month)。

3.A.6.8. ファイルの内容(マッチング)を確認し、情報を抽出する

この例では、ファイルを移動する前に、テキストファイルから情報を抽出してログファイルに追加するためのアクションがいくつか追加されています。Matchesアクティビティが採用され、ユーザーはその3つのプロパティに注目する必要があります。「入力」、「パターン」、「結果」です。

最初の “Input “は、”Pattern “の検索対象となる文字列または文字列を格納するVariableである。この場合、値はファイルの内容に対応する “content “変数である必要がある。

“パターン “は、”入力 “内の文字列から検索されるRegEx式です(引用符で囲まれている必要があることに注意してください)。

最後に、”Results “は結果が格納されるVariableまたはArgumentです(この場合、Variableでなければなりません)。

この Variable の型はSystem.Text.RegularExpressions.Match でなければならないことにユーザーは注意しなければならない。これは、結果のリストになります。この例では、マッチごとに1つの結果のみが存在することになります。この結果を得るために、ユーザーは次の構文を使用する必要があります: variablename.First.ToString, つまり、リストの最初のアイテムは文字列に変換されます。

3.A.6.9. ファイルを移動する

これらの手順が完了すると、ロボットはファイルを内容に応じて分類する。この例では、製品情報があるかどうかが基準になっています。

ユーザーは、このSequenceに別のIfActivityをドラッグします(前のIf文のBody)。ここでは、ファイルの内容を格納する変数「content」が使用されます。メソッドは.Contains("string")で、構文は次のとおりです。content.Contains("product").

備考

なお、検索される語句は文字列であるため、引用符で囲まなければならない。

もし、そのような用語があれば、ロボットは「Then」フィールドに進み、そうでなければ、「Else」フィールドに進みます。つまり、このActivityは、ファイルを2つのカテゴリに分類しているのです。これは簡単な例ですが、より複雑な用語を検索することもできます。

最初の可能性(ファイルに製品情報がある)を考慮すると、ロボットはそのファイルを「製品情報」ディレクトリに移動します。これを行うには、別のアクティビティをシーケンスにドラッグして、Invoke Codeを作成する必要があります。このアクションは引数や変数に格納する値を生成しないので、Assignでファイルを移動することはできません。

images/openrpa_manipulatingfiles_movefile.png

ユーザーは、「エディターを開く」をクリックして、呼び出すコードを編集します。ユーザーは、好きなプログラミング言語を自由に選択することができます。この例では、VBを使用しています。式の構文は次のとおりです。System.IO.File.Move (移動 元の フルパス 移動先の フル パス )。ここで重要なのは、フルパスが必須であること、つまり、ファイル名を含むことです。

そして、オリジンのフルパスは、ファイルのフルパスを格納する変数(この例では、反復処理の「項目」)を介してアクセスされる。もう一つの方法は、ルートディレクトリのパス(この例では「path」という名前)を格納するArgumentを使い、サブディレクトリとファイル名を含む別の文字列と連結させる方法です。

備考

2つ以上の文字列を連結する方法は、”&”を使うことである。

3.A.6.A. ファイル名を変更する

移動時にファイル名を変更する場合、ユーザーが行うべきことは、移動先のフルパスに新しい名前を割り当てることのみです。

この例では、ファイル名の先頭に新しい単語を追加することでファイル名を変更しましたが、任意の名前を設定することができます。ファイルを移動する式を書くとき、ユーザーは新しい名前が式に書かれ、ディレクトリのパスに連結されていることを確認する必要があります。

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