ああああ

フレームワーク「ReFramework」でシナリオを作る[3]

フレームワーク「ReFramework」でシナリオを作る[3]

ReFrameworkを用いてのシナリオ開発、前回は、トランザクションデータを取得するところまで作成しました。

次は、実際に処理を行うProcess.xamlを作成していきます。

 

————————

【デモ用業務】

社員名、退職日が書かれたエクセルがある。

エクセル中の退職日の日付をチェックし、本日より昔の社員のステータスを「済」にする。

その処理を、作業ファイルというエクセルがあるので、そこに記載されているファイル分処理を行う。

終わったら作業ファイルを処理結果フォルダにコピーする。

————————

 

■Process.xamlにて処理を行う

 

エラーハンドリングを行いたいので、「トライキャッチ(TryCatch)」を設置し、Tryに処理を入れることにします。(フレームワークとなるMain.xamlは基本的に編集しない を前提としています)

 

今回は、『社員名、退職日が書かれたエクセル(チェックファイル)の、退職日の日付をチェックして、本日より昔の社員のステータスを「済」にする。』という処理です。

 

 

「範囲を読み込み(ReadRange)」でチェックファイルを読み込み、checkDatatableに格納

checkDataTableを「繰り返し各行(ForEachRow)」で回し、日付をチェック。Thenに「済」を記入する代入を設置

「範囲を書込み(WriteRange)」でチェックしたファイル(checkDataTable)を上書きします。

UiPathではこんな感じ。

※ここではあらかじめ、作業ファイルのフルパス、チェックファイルのフルパスを変数に格納しています。

 

条件分岐のConditionでは、データテーブルに記載されているものをString型に変更し、そこから更にDateTime型に変更しています。

 

▼DateTime型に変更

DateTime.Parse(String型日付)

 

次に、作業ファイルの「結果」欄に 済 と入れたいので、ForEachRowの後にその処理を入れます。

 

ここに 済 を入れたい!

 

 

「セルに書き込み(WriteCell)」を設置します。

 

ファイルパス、シート名、書き込む値は固定ですが、書き込むセルの行はトランザクションによって変わってきますよね…

セルには今回はこのように記載しました。

 

in_Config(“WorkFileWriteCell”).ToString + (in_TransactionItem.Table.Rows.IndexOf(in_TransactionItem) + 2).ToString

 

 

in_Config(“WorkFileWriteCell”).ToString

はConfin.xlsxから値を持ってきているだけ。今回は「B」としています。

 

(in_TransactionItem.Table.Rows.IndexOf(in_TransactionItem) + 2).ToString

では、トランザクションアイテムが何行目にあるかを取得してそれをエクセルの行に合わせるために+2しています。

 

これで一度実行してみます。

 

チェックファイル3つとも、該当する日付の社員のステータスに済と入っています。

 

作業ファイルの結果にも済と入っています。

 

これで処理を行うProcess.xamlを作成しました。

長くなってしまうので、次回は『終わったら作業ファイルを処理結果フォルダにコピーする。

』部分を作りたいと思います!

よーし!