ああああ

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

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

前回までで実際の処理を行うProcess.xamlを作成し、実行してみて実際に仕様通りに動くことが確認できました。

————————

【デモ用業務】

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

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

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

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

——————-

今回はこの、終わったら作業ファイルを処理結果フォルダにコピーする 部分を作成します。

 

■EndProcess.xamlを作成する

作業ファイルを処理結果フォルダにコピーする処理ですが、フレームワーク上では「終了処理」に配置したいところです。Process内に配置してしまうと、トランザクション分コピーする処理を行ってしまい、なんていうか、1回でいい処理を複数やるのは負荷もかかります。

 

しかし、ダウンロードしたReFrameworkを見ると、終了処理には、CloseAllApplications.xamlとKillAllProcesses.xamlしか設置されていません。

 

ということで、フレームワーク内に終了処理用のxamlを作成し、それを呼び出すアクティビティを設置しておくことをお勧めします。

 

UiPathの画面、左上にある「新規」から新しいシーケンスを作成します。

今回は、EndProcess.xamlという名で作成しました。

 

EndProcess.xamlを開き、引数を作成しましょう。

Process.xamlと同様、二つの引数を作成します。

 

in_Config

方向:入力

型:System.Collections.Generic.Dictionary<String,Object>

 

in_TransactionItem

方向:入力

型:System.Data.DataRow

Main.xamlに戻り、作成したEndProcess.xamlを呼出します。

呼び出すのは終了処理のFinallyがいいです。

ここならTryでエラーが起きてKillAllProcesses.xamlを行った後に行われます。

 

「ワークフローファイルを呼び出し(InvokeWorkflowFile)」を設置して呼び出します。

引数の設定も忘れずに…

 

■コピー処理を行う

 

ここまでできれば、あとはファイルをコピーするだけです!

処理結果フォルダはInitAllApplication.xamlで作りましたしね。

 

使う変数の定義を行い、「ファイルをコピー(CopyFile)」アクティビティでコピーします。

(ここではいきなりコピーしましたが、Ifでファイルがあるかを確認し、あればコピー、なかったら無いというメールを送るなりすると尚よさそうですよね!)

 

今回、上書きしてもよいのでオプションの「上書き」にチェックを入れております。

上書きしない場合は、「ファイルの有無をチェックし、すでにファイルがある場合は所定の場所に退避させてからコピーする」などの処理を挟むとよいでしょう。

 

 

実行してみてファイルがコピーされていれば成功です。

 

今回はファイルのコピーでしたが、処理終了のメールを送信したい場合もこの、EndProcess.xamlに入れるといいと思います。

 

ReFrameworkを用い、一通りのシナリオを作成してみました。

次回は例外処理について少し記載したいと思います。