インプットデータの確認処理について

 

こんにちは。RPAロボット開発を行っている青柳です。

私はRPAロボット開発に携わってからいくつもロボットを開発してきましたが、
ほとんどのロボットにインプットデータを別のサイトやファイルに入力するような処理が入っています。

このような処理はRPAでは一般的ですが、インプットデータの作成は手作業で行う場合も多いため、
データ数が多くなると意図しないデータが紛れてしまう可能性が大きくなります。

そして、意図しないデータはロボットの処理の中で対策を行わないとエラー原因になってしまうことがあります。
エラー原因特定のために、目視でのデータ確認を行わないといけないこともあるため、
無駄な工数が発生してしまうこともあるかもしれません。

そこで今回はその対策方法としてデータの確認処理について書いていこうと思います。

また、今回はUiPathを使用して説明を行いますが、このデータ確認処理はどのRPA製品でも必要な処理となります。
UiPath以外で開発を行っている方は、データの確認すべきポイントだけ抑えてもらい、
その確認処理の実装方法は別途調べてもらえればと思います。

 

1.NULL判定

UiPath.Excel.ActivitiesのExcelReadCell(セルを読み込み)のアクティビティは取得した値の出力先に
String型の変数を指定しますが、対象のセルに何も書かれていない場合はNULLを返します。

仮にNULLが返ってきてしまった場合、その後の処理でString型に対して使用できる
メソッド(Replace、Trimなど)を使用するとエラーになってしまいます。

これを回避するために、If(条件分岐)アクティビティを使用して値がNULLの場合に
変数に空の文字列を代入してあげる必要があります。

やり方は簡単で、条件に「String.IsNULLorEmpty(変数名)」を入れて、Thenの中に代入で空の文字列を代入するだけです。

この条件は既に空の文字列が入っている場合もThenに進みますが影響はないので問題ないです。
また、Thenの中にLogMessage(メッセージをログ)アクティビティも入れると保守がしやすくなると思います。

 

2.数値判定

取得したString型のデータが数値として認識できない場合、その後の処理でString型から
数値型(Int32、Doubleなど)への変換や数値計算を行う場合にエラーになってしまいます。

なので、String型で取得した値を数値として扱う場合は数値として認識できるかを確認する処理が必要になります。

これもNULL判定同様にIf(条件分岐)アクティビティを使用して、条件の中に「Information.IsNumeric(変数)」と入れると、
変数が数値として認識できる場合はThenに進み数値として認識できない場合はElseに進みます。

 

3.日付判定

取得したString型データが日付として認識できない場合、その後の処理でString型から
DateTime型への変換や日付計算などを行うとエラーになってしまいます。

そこで、これもIf(条件分岐)アクティビティを使用して、条件の中に「IsDate(変数)」と入れると
日付として認識できるか判定してくれます。

 


以上、データの確認処理について書きました。

これらの処理があるかないかでロボットの品質が大きく変わりますので実装することをお勧めします。