さて、いよいよページ内の入力フォームに、Excel ファイル
から
集めたデータを入力します。
OpenRPA
ツールボックスの中にあるForeach DataRowアクティビティをドラッグしてください。次に、Foreach DataRowアクティビティの内部で、System.Activites
ツールボックスからSequenceアクティビティをドラッグしてください。
前述のように、Read Excelアクティビティから割り当てられたDataSet
内の各シートは、Tables
属性内のコレクションとしてインメモリに保存されます。
Tables
属性内の各シートは、Excel ファイル
内のシートに応じて取得され、これらのシートは0から始まる番号が付いています。 例として、Excel ファイル
内のDataTableに
行を追加する場合、まずDataTable クラスの
オブジェクトに割り当て、アクティビティを使用してテーブルに行を追加することになります。
各行を取得するには、取得したい行に0から始まる番号を1つの変数に代入するか、Foreach DataRowを使って各行を適宜自動的にループさせることができます。この例では、dsという
変数にDataSetが
代入されており、これがテーブルを
取得するための変数となっています。シートが1つしかないので、ds.Tables(0)
を使って、Foreach DataRowが値を取得するテーブルを
代入しています。
行が取得されるDataTableを
割り当てた後、列はForeach DataRowアクティビティの左側に割り当てられた変数内の属性にマッピングされることに注意してください – このケースでは、DataColumnの
値を返すか設定する行
です。
Foreach DataRowループは基本的に、行内のすべての値( 名前
、 姓
、会社 名
、…) を繰り返し処理し、各フィールドが属する Web ページ内のXPath
セレクタ アイテムに割り当てます。これにより、RPA Input Forms Challenge(http://www.rpachallenge.com/)
ページ内の値が入力されるようになります。
備考
DataRow オブジェクトは
、DataTableから
マッピングされた各行です。DataRow
オブジェクトとそのプロパティ、メソッドを使用することで、ユーザーはDataTable
内の値を取得、評価、挿入、削除、更新することができます。また、DataRowCollectionは
DataTable
内の実際のDataRow
オブジェクトを表しています。DataRowCollectionにマッピングされた各カラムは、DataRow
クラスオブジェクトの属性であるインデックスを使用して取得することが可能で、行内の1列目を取得する場合は、row(0)
を使用します。DataRow
クラスの詳細については、MicrosoftのDataRowクラスに関するドキュメント(https://docs.microsoft.com/en-us/dotnet/api/system.data.datarow?view=netcore-3.1
)へのリンクを参照してください。