この節では、収集したデータセットを
ループし、データを適切なデータ型にパースし、IfActivity を使ってデータセット内に含まれる異常なエントリにデフォルト値を割り当てる方法を学習します。最後に、sqldtと
sqlrawdtの
両方に行を追加します。このセクションの最後に、与えられたデータセットの 特徴を
そのデータ 型とともに
索引付けするための参照表があります。
まず、Foreach DataRowアクティビティをDatabase Scopeアクティビティ内のシーケンスにドラッグします。Enter a VB Expressionを
含むフィールドの中に、amsterdamdtを
挿入します。
Read ExcelWorkflowの例では、Read Excelアクティビティによって返されたDataTableから
セルを読み取るのと同様に、データセットの
各特徴は変数に割り当てられる必要があります。
ここでは4種類のデータが扱われています。これらはそれぞれ,SQL テーブルの
bigint
,double
,date
,varchar(255)
に対応する。
Int64
型の場合、ユーザーはInt64.Parse
メソッドを使用してデータを解析する必要があります。
id_dataset
変数の値をInt64.Parse(row.Item(0).ToString)
とし、型をSystem.Data.Int64
とする例が示されています。続いて、残りの変数も設定します。これらは、“host_id“,price
,minimum_nights
,number_of_reviews
,calculated_host_listings_count
andavailability_365
です。
この特定のInsideAirBnBデータセットでは、Double
型のフィーチャーは、NULL値(つまり variable.ToString が “” を返す)か、CDbl()
を使用して適切に変換できる数値のどちらかになります。
このように、NULL値と有効値を区別するために、If
Activityを使用しています。 また、row.item(xx)[...]
を何度も記述しないように、一時変数<featureNameValue>を
いくつか使用しています。
下図はその例で、temp 変数に
latitudeValue
、テーブルに挿入される実際の値をlatitudeとして
設定しています。残りの変数も設定してください。これらはlongitudeと
reviews_per_month
です。
DateTime
型では、異常な入力に対してチェックするためにtemp
変数を
使用する必要があります。ここでは、先ほど示したIfActivityも使用していますが、唯一の違いは、デフォルト値が0ではなく
、New System.DateTime(2011,10,12,0,0,0)
と任意に設定されている点です。
最後の型はString
です。ユーザがすべきことは、行のi番目の
エントリを見つけ、データセット内の指定されたエントリとマッチさせ、.ToString
メソッドでStringに
キャストすることです。OpenRPAは0からインデックスを開始することをユーザーに思い出させるのに便利です。
各指標の参照表は以下のとおりです。
id_dataset – Int64 – 0 場所名 – 文字列 – 1 host_id – Int64 – 2 host_name – 文字列 – 3 neighbourhood_group – 文字列 – 4 neighborhood – 文字列 – 5 latitude – Double – 6 longitude – Double – 7 room_type – 文字列 – 8 price – Int64 – 9 minimum_ights – Int64 – 10 number_of_views – Int64 – 11 last_views – DateTime – 12 reviews_permonth – Double – 13 calculated_reviews_permonth – String – 4.8 価格 – Int64 – 9 最小宿泊日数 – Int64 – 10 レビュー数 – Int64 – 11 last_review – DateTime – 12 reviews_per_month – Double – 13 calculated_host_listings_count – Int64 – 14 availability_365 – Int64 – 15 “$.
備考
OpenRPAでは、DataTableは
値を保持するために使われる2次元の非シリアライズ可能なオブジェクトに相当します。これはi
行j
列の行列と考えることができます。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
オブジェクトは大文字と小文字を区別することに注意してください。