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を押します。

3.A.9.2. 正規表現群に一致する

さて、ユーザーはMatchesアクティビティを使用して、ReadPDFが返す文字列からデータのグループを抽出します。

まず、MatchesActivityをメインシーケンスにドラッグします。

images/openrpa_workflow_example_read_and_parsing_pdf_drag_matches.png

最初の入力ボックスには、プレースホルダー「The input string to match against」が入っており、ユーザーは変数の内容、つまり前のセクションで取り込んだテキストを挿入することになります。

2つ目の入力ボックスには、データをグループに分けるために使用するRegExパターンを挿入します。ここで使われているのは、( \b[a-zA-Z0-9$.\-() ]*)です。正規表現についての詳しい説明は、RyansTutorials Regular Expressions(https://ryanstutorials.net/regular-expressions-tutorial/)を参照してください。RegExパターンは文字列としてキャプチャされるので、引用符で囲む必要があることをユーザーに思い出させるのは興味深いことです。また,必要に応じて,グループのマッチングやパターンのテストにRegex101(https://regex101.com/) を使うことが推奨される.

また、Properties Boxの Resultsパラメータで、マッチングを保存する変数(この例ではinvoiceResults)を設定する必要があります。これは、Match listまたは単にMatch[]というタイプで構成されます。下の画像にあるように

images/openrpa_workflow_example_read_and_parsing_pdf_configure_matches.png

3.A.9.3. 結果を格納するDataTableの作成

このセクションでは、結果を格納するためのDataTableを作成し、そのヘッダーを設定します。

まず、Matchesアクティビティの中にあるCreateDataTableアクティビティをシーケンスにドラッグします。

images/openrpa_workflow_example_read_and_parsing_pdf_drag_createdatatable.png

ここで、ユーザーはNew DataTable変数プレースホルダーの中にDataTableが保存される変数を作成する必要があります。この例では、変数名をinvoiceDataTableとします。

備考

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

また、Array of DataTable columnsplaceholderの中にヘッダを定義する必要があります。この例では、請求書から会社 請求書 番号合計 残高 3つのフィールドのみを取得するため、ヘッダーは{"会社 名", "請求書 番号 ", "合計 残高"}と定義されます。

images/openrpa_workflow_example_read_and_parsing_pdf_config_createdatatable.png

備考

DataTable オブジェクトは、同じ名前のクラスからDataSet オブジェクト 含まれるインメモリデータの1つのテーブルに対応します。Excel ファイルを読み込むと、それは自動的にDataSetクラスに割り当てられ、すべてのシートは DataTableクラスに保存されます-Excel ファイル内のシートの数だけ。ここで、DataTableオブジェクトは大文字と小文字を区別することに注意しましょう。

3.A.9.4. DataTableに行を追加する

ここでユーザーは、PDF ファイルから収集したデータを、前のセクションで定義したDataTableに追加することになります。

まず、AddDataRowアクティビティをMatchesアクティビティ内に挿入されたシーケンスにドラッグします。

images/openrpa_workflow_example_read_and_parsing_pdf_drag_adddatarow.png

ここで、ユーザはプレースホルダに挿入するDataTableの中に、データを挿入するDataTableを挿入する必要があります。

また、挿入するデータもユーザーが定義する必要があります。

会社 名は invoiceResultsリスト内のNo.1のMatch オブジェクトです。invoiceResults(0).ToStringとして代入されます。

invoiceNumberは invoiceResultsリスト内のNo.2のMatch オブジェクトです。invoiceResults(2).ToStringとして代入されます。

invoiceTotalBalanceは、No.3のMatch オブジェクトである。3のMatchオブジェクトをinvoiceResultsリスト内に生成します。invoiceResults(44).ToStringとして代入されます。

したがって、Array of DataTable columnsのプレースホルダの中に追加される行は、{invoiceResults(0).ToString, invoiceResults(2).ToString, invoiceResults(44).ToString} になります。以下のようになります。

images/openrpa_workflow_example_read_and_parsing_pdf_configure_adddatarow.png

3.A.9.5. データテーブルをCSVに保存する

これで、ユーザーは作成したDataTableをCSVファイルで保存することになる。

まず、WriteCSVファイルをメインシーケンスにドラッグします。

images/openrpa_workflow_example_read_and_parsing_pdf_drag_writecsv.png

ここで、...ボタンをクリックして、データを保存するCSVファイルのファイルパス(この例ではinvoice1.csv)を挿入します。

次に、そのプロパティ・ボックス内のDataTableに取り込んだ、DataTableを挿入します。この例では、この変数は前のセクションで定義されたDataTable、すなわちinvoiceDataTableです。

最後に、Delimiterパラメータを", "に変更します。

3.A.A. OpenRPA.Databaseアクティビティ、DataTable、DataView

この例では、AirBnB のデータから.csvデータセットを読み込み、MySQLデータベースにデータを挿入するワークフローを作成します。また、Inside AirBnB(http://insideairbnb.com/get-the-data.html)で公開されているlistings.csv Amsterdamのデータセットファイルの短縮版を使用することにします。私たちのバージョンは、169のエントリのみを含み、ここ(https://github.com/open-rpa/examples-files/raw/master/bpa-doc/parse_pdf/invoice1.csv )で利用可能であり、このワークフローの例で使用されるものである。

MySQL がインストールされた認証方法も暗号化されてはいけません。つまり、データベースへの接続にDataProvider MySql.Data.MySqlClientが使用されるので、 レガシーモードに設定する必要があります。

注意: これは非常に複雑な例なので、ユーザーはデータベーススキーマについて知っていて、適切なMySQL サーバーが動作していることが期待されます。しかし、怖がらないでください!たとえすべてのステップを自分で再現しようとしなくても、この例を見るだけで多くのことを学ぶことができます。

  1. CSVファイルダウンロード

  2. Pandasを使ったデータセットからのレビュー型

  3. CSVからDataTableにデータセットを読み込む

  4. MySQL内部でデータを保持するスキーマと テーブルを作成します。

  5. 結果を格納するDataTableを作成する

  6. バッチ番号欄の追加

  7. データベースへの接続

  8. SQLテーブルをDataTableにフェッチする

  9. データセットのループ

  10. IdとBatch No.の変数をインクリメントする。

  11. データローの追加とSQLテーブルの更新

  12. データへのクエリの実行 挿入されたデータの可視化

  13. DataViewを使ってデータをフィルタリングする

3.A.A.1. CSVファイルをダウンロードする

ここでは、インターネットからファイルをダウンロードし、特定のファイル パスを使用してフォルダーに保存する方法について説明します。

まず、DownloadFileアクティビティをドラッグして、...ボタンをクリックして、データセットを含むファイル パス(ここでは"C: \BPAWorkflow ExamplesUsing DataTables")を入力し、Saveボタンをクリックします。また、アクティビティにDownload Datasetという名前を付けます。今回の場合、このファイル パスは 「C:㊧Workflow ExamplesUsing DataTables㊧airbnb_review_listings.csv 」になります。

また、データセットのダウンロード元URLを プロパティボックスhttps://github.com/open-rpa/examples-files/raw/master/bpa-doc/parse_pdf/invoice1.csv)内に挿入します。

すでに指定したファイル パスに ファイルをダウンロードしている場合に備えて、OverwriteパラメータもTrueに設定してください。

images/openrpa_workflow_examples_using_datatables_drag_download_file.png
images/openrpa_workflow_examples_using_datatables_download_file_select_filepath_click_save.png
images/openrpa_workflow_examples_using_datatables_download_file_insert_url.png

ここでOpenRPAのリボン内にある再生ボタンをクリックすると、ファイルがダウンロードされます。また、指定したフォルダにファイルが存在するかどうかを確認することをお勧めします。

備考

アクティビティのパラメータで設定した名前(DisplayName)を変更するには、アクティビティの名前を2回クリックし、希望の名前を入力してリターンキーを押すか、プロパティボックスでパラメータDisplayNameを設定する方法があります。

3.A.A.12. 挿入したデータにクエリを実行し、データを可視化する

このセクションでは、SQL Tableに挿入されたデータを操作するためのクエリ・アクティビティの使用方法を学びます。

まず、[Execute Non Query]アクティビティを[Database Scope]シーケンスにドラッグします。このアクティビティは、単にSQL クエリを実行し、影響を受ける行の数をInt32変数に保存します。

ここでは、任意の項目、つまり217の行を削除し、その結果の値をreturn217変数に保存することにしています。

クエリフィールド 実行 するクエリを含むフィールド)の中に「DELETE from using_datatables.airbnbdata WHERE id = 217;」を挿入してください。これにより、id番号217を含むエントリーが削除されます。ActivityのProperty Boxの Resultプロパティにその名前を入力し、Ctrl+Kを押して return217という変数にその結果を保存します。行が正しく削除されると、値1を含むInt32変数が返されるはずです。

ここで、[クエリ実行]アクティビティを[データベース スコープ]シーケンスにドラッグします。

SELECT * FROM using_datatables.airbnbdata;” をQueryフィールド( 実行 するQuery を含む)に挿入し、resultsDTDataTableフィールド( 結果を 保存 する DataTable 含む)に挿入してCtrl+Kキーを押して作成します。これにより、airbnbdata SQL テーブルからすべてのエントリーが選択され、resultsDT DataTableに保存されます。

images/openrpa_workflow_using_datatables_execute_non_query_and_execute_query.png

ここでは、任意の項目(たとえば213)の場所名を取得し、それを変数place_name_value に保存します。

ここで、Execute Scalar<>アクティビティをDatabase Scopeシーケンスにドラッグします。ウィンドウが開き、ユーザーはクエリによって返されるタイプ(この例ではString)を選択することができます。また、「SELECT place_name FROM using_datables.airbnbdata WHERE id = 213;」をクエリーフィールド 実行 するクエリー)に挿入し、「place_name_value」を結果フィールド( クエリーの 結果)に入力してください。このクエリは、ID番号213を含むエントリから場所名の値を選択し、place_name_value変数に保存します。

images/openrpa_workflow_using_datatables_execute_scalar_string.png
images/openrpa_workflow_using_datatables_execute_scalar_string_activity.png

これでユーザーは挿入されたデータを視覚化することができます。

最初の値 –return217– は影響を受ける行数を含む数値で、実行されるクエリは1行に影響すると予想されるので、ユーザーはIfActivity を使用してその値が1に等しいかどうかをチェックし、目標が達成されたかどうかに応じて出力にデータを書き込むことができます。

IfアクティビティをDatabase Scopeシーケンスにドラッグします。条件入力フィールド(VB 式を 含むフィールド)の中に、return217 = 1を挿入します。

WriteLineアクティビティをIfアクティビティの中のThenシーケンスにドラッグし、Textフィールド、つまりEnter a VB Expressionを含むフィールドに「Successfully deleted row no. 217」と挿入します。

次に、WriteLineアクティビティをIfアクティビティ内のElseシーケンスにドラッグし、Textフィールド(Enter a VB Expressionプレースホルダーを含むフィールド)に「Unable to delete row no. 217」と挿入します。これは、アクティビティが217に等しいidを含む行を削除できなかった場合にのみ発生します。

WriteLineアクティビティをDatabase Scopeシーケンスの末尾にドラッグします。Enter a VB Expressionプレースホルダーを含むTextフィールドに、「place_name of row no. 178: " + resultsDT.Rows(178).Item(2).ToString」を挿入します。これにより、Execute Queryアクティビティで収集したテーブルの178番目の行のplace_nameの値が表示されます。

最後に、WriteLineアクティビティをもう1つ、Database Scopeシーケンスの最後にドラッグします。 番号 213の場所名 " + 場所名_値“を挿入してください。これで、Execute Scalar<>アクティビティで実行されたクエリから収集された値が表示されます。

images/openrpa_workflow_using_datatables_visualize_data.png

3.A.A.13. DataViewを使用してデータをフィルタリングする

ここで、ユーザーはDataViewタイプを使ってデータをフィルタリングすることになります。

まず、AssignActivityを一番外側のシーケンスにドラッグして、sqldtviewを sqldt.DefaultViewに代入します。また、その型をSystem.Data.DataViewに設定し、OpenRPAがフィルタリングできるようにします。

images/openrpa_workflow_using_datatables_assign_dataview.png

次に、もう一つのAssignActivityを一番外側のシーケンスにドラッグして、sqldtview.RowFilterに 「id > 162」を代入します。 これにより sqldt DataTableの idが162より大きい値のみを取得するように フィルタリングされます。

images/openrpa_workflow_using_datatables_assign_rowfilter.png

ここで、Foreach DataRowActivityをドラッグして、データをフィルタリングできるようにします。プロパティボックスに DataViewとして sqldtviewを挿入します。

images/openrpa_workflow_using_datatables_for_each_datarow_filter.png

最後に、WriteLineアクティビティをThenシーケンスに追加し、"Place name of row " + row.Item(0).ToString + " is: " + row.Item(2).ToStringを挿入して、指定した行のplace_name値を表示させます。

images/openrpa_workflow_using_datatables_for_each_datarow_filter_drag_writeline.png

3.A.A.2. Pandasを使ってデータセットから型を確認する

まず、pandasライブラリ(Python Data Analysis Library)を使って、データセットに含まれる型を調べてみましょう。

Pythonシェルを初期化する – ここでは、すでにPythonと pandasライブラリがインストールされていると仮定しています。もしインストールされていない場合は、Googleが作成したColab Platform(https://colab.research.google.com/)を使用することができます。ただし、ファイルをFilesサイドバーにアップロードし、前のセクションで設定したファイル パス(この例では"C:\BPAWorkflow ExamplesUsing DataTables.csv" )の代わりに相対 パス、つまり./airbnb_review_listings.csvを使用する必要があります。

シェルを使っているので、エスケープ文字(˶‾᷄ ‾᷅˵)を入れてください。これで、ファイルパスが "C:㊧Workflow Examples㊧Using DataTables㊧airbnb_review_listings.csv" になりました。

以下のコードを実行します。

>>> import pandas as pd>>> df = pd.read_csv("C:\\BPA\Workflow Examples\\Using DataTables\\airbnb_review_listings.csv")>>> len(df.dtypes)>>> df.dtypes

これで、データセットに含まれるすべての型が表示されます。以下のコードに見られるように。

>>> len(df.dtypes)16>>> df.dtypesid                                  int64name                               objecthost_id                             int64host_name                          objectneighbourhood_group               float64neighbourhood                      objectlatitude                          float64longitude                         float64room_type                          objectprice                               int64minimum_nights                      int64number_of_reviews                   int64last_review                        objectreviews_per_month                 float64calculated_host_listings_count      int64availability_365                    int64dtype: object

つまり、このデータセットには16個の特徴量、つまりさまざまな型を持つ変数が含まれていることになる。int64型、float64型、object型など、後者はStringオブジェクトと同じように扱われます。また、異なるデータ型でデータベースを作成し、OpenRPAの内部で正しい型を持つ変数を設定しなければならないことも意味しています。

型がわからない場合は、「型とは何か」をご覧ください。

3.A.A.3. CSVからDataTableにデータセットを読み込む

このセクションでは、.csvファイルをDataTableに読み込む方法を学びます。

ここでユーザーは、ReadExcelアクティビティをデザイナーにドラッグし、.csvファイルのファイル パスを 「...」ボタンで選択するか、プロパティボックス内の「Filename」パラメータに直接貼り付けて選択する必要があります。

先に設定したパラメータに加えて、ユーザーは.csvファイルを読み込むDataTableを設定する必要があります(この例ではamsterdamdtです)。また、.csvファイルの区切り文字を定義するDelimiter(ここでは","文字) も設定します。

備考

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

images/openrpa_workflow_examples_using_datatables_read_csv.png
images/openrpa_workflow_examples_using_datatables_read_csv_select_file.png

備考

OpenRPAでは、DataTableは値を保持するために使われる2次元の非シリアライズ可能なオブジェクトに相当します。これはij列の行列と考えることができます。i行は.Rows(n)属性でアクセスできます。ここでnはアクセスしたい行の番号です(0から始まります)。j個の列には、.Item(n)属性を使ってアクセスします。nは、アクセスしたい列の番号-0から始まる-です。ここで、ユーザがRows属性にアクセスしなければならないことを思い出してください。したがって、ユーザがデータ テーブルの 3 行目の 2 列目にアクセスしたい場合は、.Rows(2).Item(1)属性を使用することになります。

備考

.NET APIでは、DataTable オブジェクトは、同じ名前のクラスからDataSet オブジェクトに含まれるインメモリデータの1つのテーブルに対応します。Excel ファイルを読み込むと、それは自動的にDataSetクラスに割り当てられ、すべてのシートは DataTableクラスに保存されます – 0からExcel ファイル内のシートの量に番号が付けられています。ここで、DataTableオブジェクトは大文字と小文字を区別することに注意してください。

3.A.A.4. MySQL内部でデータを保持するスキーマと テーブルを作成する

このセクションでは、MySQL Workbenchを使用して、データを保持するデータベースと テーブルを作成します。

以下のコード部分をコピーして、MySQL Workbench 内の新しいクエリに貼り付けてください。

CREATE DATABASE `using_datatables` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;CREATE TABLE using_datatables.`airbnbdata` (   `id` int NOT NULL AUTO_INCREMENT,   `datasetId` bigint DEFAULT NULL,   `placeName` varchar(255) NOT NULL,   `hostId` bigint DEFAULT NULL,   `hostName` varchar(255) DEFAULT NULL,   `neighbourhoodGroup` varchar(255) DEFAULT NULL,   `neighbourhood` varchar(255) DEFAULT NULL,   `latitude` double DEFAULT NULL,   `longitude` double DEFAULT NULL,   `room_type` varchar(255) DEFAULT NULL,   `price` bigint DEFAULT NULL,   `minimum_nights` bigint DEFAULT NULL,   `number_of_reviews` bigint DEFAULT NULL,   `last_review` varchar(255) DEFAULT NULL,   `reviews_per_month` double DEFAULT NULL,   `calculated_host_listings_count` bigint DEFAULT NULL,   `availability_365` bigint DEFAULT NULL,   PRIMARY KEY (`id`));

備考

ここで、データセット内のobject型の特徴がvarchar(255)として設定されていることがわかります。これは、OpenRPA内のSystem.Data.String型からマッピングされています。これはOpenRPAのSystem.Data.Doubleデータ型にマッピングされています

ここで、クエリパネル内の「 クエリ実行」ボタンをクリックします。

images/openrpa_workflow_examples_using_datatables_create_schema_and_table.png

すべてがうまくいくと、MySQL WorkbenchAction Outputセクションに以下のようなメッセージを表示します。

images/openrpa_workflow_examples_using_datatables_schema_and_table_created.png

これで完了です。これでユーザーは続行できるようになりました。

3.A.A.5. 結果を格納するDataTableの作成

このセクションでは、結果を格納するためのDataTableを作成し、そのヘッダーを設定します。

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

images/openrpa_workflow_examples_using_datatables_create_data_table.png

ここで、New DataTable変数プレースホルダーの中に、DataTableを保存する変数を作成します。この例では、変数名をsqldtとします。

備考

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

また、DataTable の Array of columnsプレースホルダを含むフィールドの中にヘッダを定義しなければなりません。データセットの機能はすべてDataTableオブジェクトに追加され、デフォルトのintデータ型は前のセクションで定義した 主キーとなります。これ以降、ヘッダは{"id", "name", "host_id", "host_name", "neighbourhood_group", "neighbourhood", "latitude", "longitude", "room_type”,価格” となります。 room_type", "price", "minimum_nights", "number_of_reviews", "last_review", "reviews_per_month", "calculated_host_listings_count", "availability_365"} のように設定します。

このDataTableの目的は、.csvファイルから収集したすべてのデータを保存し、後でDataViewを使ってそこから収集したデータをフィルタリングして表示することである。

images/openrpa_workflow_examples_using_datatables_create_sql_storage_data_table.png

3.A.A.6. バッチ番号の追加Column.

このセクションでは、AddDataColumnアクティビティを使用して、処理中のエントリの現在のインデックスを含むデータカラムをDataTableに追加する方法、およびMySQL Workbench を使用してテーブルを変更する方法について学習します。

まず、AddDataColumnアクティビティをメインシーケンスに ドラッグします。これは、現在処理中のエントリーのインデックスに対応するbatch_noを追加するものです。

DataTableプレースホルダーの中にsqldtを挿入します。

新しい 名のプレースホルダーの中にbatch_noを挿入します。

Browse for types… オプションを使用して、ドロップダウン内のデータ型をSystem.Data.Int64として選択します。

images/openrpa_workflow_examples_using_datatables_adddatacolumn_batchno.png

ここで、SQL テーブルを変更し、BIGINTフィーチャーであるbatch_noも含めるようにします。

MySQL Workbench内のairbnbdata SQL テーブル内をマウスの右ボタンでクリックし、Alter Table…ボタンをクリックしてください。

images/openrpa_workflow_examples_using_datatables_alter_table.png

新しいタブが開き、airbnbdata SQL Tableに関するすべての設定が含まれ、新しいカラムを追加することができるようになります。まず、SQL テーブル 内の機能の最後までスクロールダウンし、空のフィールドを2回クリックする必要があります。

images/openrpa_workflow_examples_using_datatables_alter_table_column_prompt.png

Column Nameの右下に、batch_noと入力します。次に、Datatypeの下にある空のフィールドをダブルクリックし、BIGINTと入力します。また、NNチェックボックスをクリックすると、このフィールドがNULLになることはありません。

images/openrpa_workflow_examples_using_datatables_alter_table_empty_column_prompt.png

ここで「適用」ボタンをクリックします。変更点、つまり実際に実行されたSQL クエリを確認できるページが表示されます。そして、Executeをクリックします。

images/openrpa_workflow_examples_using_datatables_adddatacolumn_batchno_apply_page.png
images/openrpa_workflow_examples_using_datatables_alter_table_filled_column_prompt.png

これで完了です。 これでユーザーは、最初にデータを保持するDataTableオブジェクトとSQL テーブルに batch_noを両方追加することに成功しました。

3.A.A.7. データベースへの接続

このセクションでは、前のセクションで作成されたデータベースへのMySQL接続を設定する方法を学びます。

まず、ワークフローをモジュール化するために、Sequenceアクティビティをメインシーケンスにドラッグし、その名前を「Connect to Database」に変更します。

images/openrpa_workflow_examples_using_datatables_connect_to_database.png

備考

アクティビティのパラメータで設定した名前(DisplayName)を変更するには、アクティビティの名前を2回クリックし、希望の名前を入力してリターンキーを押すか、プロパティボックスでパラメータDisplayNameを設定する方法があります。

次に、Database ScopeアクティビティをConnect to Databaseシーケンスにドラッグします。MySQLを使用するため、パラメータを手動で設定する必要があります。

まず,ConnectionStringを 「Server=localhost;Port=3306;Database=using_datatables;Uid=${USERNAME};Pwd='${PASSWORD}'; 」として,${USERNAME}はデータベースに設定するユーザー名(与えられたデータベースに対して書き込みができることも必要),${PASSWORD}は与えられたユーザー名のパスワードとします.

次に、DataProvider を設定します。この例では “MySql.Data.MySqlClient” です。

最後にDataSourceを設定しますが、これは「using_datatables」です。これは、スキーマとテーブルの作成で作成したデータベース または スキーマで 、MySQL内にデータを保持することになります。

これで、接続が正常に設定されました

images/openrpa_workflow_examples_using_datatables_database_scope.png