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