【Blue Prism】Tips
Blue Prismの小ネタを書きます。
四捨五入
Blue PrismのRound()は銀行丸めです。
Round(Number, Places) | Places桁目で銀行丸め |
小数点以下第N桁目が奇数 → 5未満は切り捨て(それ以外は切り上げ)
小数点以下第N桁目が偶数 → 5以下は切り捨て(それ以外は切り上げ)
例) N=1
・小数点以下第1桁目が奇数 → 実質四捨五入
Round(1.14, 1) → 1.1
Round(1.15, 1) → 1.2
・小数点以下第1桁目が偶数 → 5以下は切り捨て
Round(1.25, 1) → 1.2
Round(1.26, 1) → 1.3
そのため、四捨五入をする場合は、四捨五入する桁に5を足した数字をRndDn()で切り捨てます。
RndDn(Number, Places) | Places桁目で切り捨て |
RndDn(1.24+0.05, 1) → 1.2
1.24 + 0.05 = 1.29のため、切り捨てると1.2
RndDn(1.25+0.05, 1) → 1.3
1.25 + 0.05 = 1.3のため、切り捨てても1.3
四捨五入になっている。
整数の四捨五入
例) 1240000を5桁目で四捨五入
RndDn(124000/10000+0.5, 0)*10000 → 120000
① 四捨五入したい桁数で割る
➁ 0.5を足した値をRndDn()で切り捨てる
③ 最初に割った桁数をかけ直す
1250000の場合、四捨五入すると130000に切り上がります。
RndDn(125000/10000+0.5, 0)*10000 → 130000
正規表現
Blue Prismで正規表現を扱うオブジェクトには、Utility - Strings、AVO.Regexがあります。AVO.RegexはDXからダウンロード可能です。
https://digitalexchange.blueprism.com/dx/entry/3593/solution/avoregex
Utility - Strings
Utility - Stringsで正規表現を扱うオブジェクトは2つあります。
・Test Regex Match
まず、正規表現の名前付きキャプチャについて記載します。
正規表現の名前付きキャプチャは、マッチしたテキストの一部分に名前を付けて抽出する機能で、Utility - Strings > Extract Regex Valueを使用します。
Regex Pattern | (?<name>pattern)という形式で名前付きキャプチャを指定。 name:名前付きキャプチャの名前部分 pattern:マッチさせる正規表現 |
Target String | 抽出対象の文字列 |
Named Values | "Name"フィールドと"Value"フィールドの2つのフィールドのみで 構成されたコレクションを指定。Name列に名前付きキャプチャし たいパターンの名前を1行ずつ並べ、Value列は空欄にする。 |
Outputsには、名前付きキャプチャの結果が格納されたコレクションが返る。InputsのNamed Valuesで指定したコレクションをそのまま使うことが多いです。
Named Values コレクション
"(?<数量>\d*)個(?<金額>\d*)円"
のように、2つの名前付きキャプチャを指定したい場合、Named ValuesコレクションのInitial Valuesにも、Nameフィールドに"数量"と"金額"の2つの行を設定しておきます。
※ "りんご1個120円、みかん1個80円"のように2箇所マッチする文字列を指定したとしても、抽出されるのは最初にマッチした1箇所のみとなります。みかんにもマッチするには、さらに数量と金額の行を増やし、パターンも追加する必要があります。
Test Regex Match
マッチ箇所があるかどうかを、True、Falseで判定します。
AVO.Regex
AVO.Regexオブジェクトで使える機能には以下の5つがあります。
Escape Text For Use In Regex
Extract All Matches As Colletion
マッチ部分全てを抽出し、コレクションに出力します。
Extract First Match As Text
最初にマッチしたテキストを抽出します。名前付きキャプチャを使用できます。
Regex Replace
正規表現でマッチした箇所を、指定した文字に置き換えます。いくつか使い方があります。
1.マッチした箇所を全て置き換える
Regex Pattern | 正規表現パターン |
Text To Do Replacement On | 置換対象の文字列 |
Replacement Text | 置換文字列 |
2.プレースホルダー
Regex Patternの()でキャプチャした文字列は、Replacement Textで$1~$99を使って参照できます。
上記例では、$1に"マッチ文字列の"120円"が格納されます。$1 = 120円
注意したいのが、マッチした順番に$1、$2、$3…と格納されるのではなく、()グループごとに割り振られている点です。
上記例だと、$1 = (\D*)であり、「りんご」「、ぶどう」「、みかん」にそれぞれマッチするため、Replacement Textに"$1"を指定すると「りんご、ぶどう、みかん」となります。
3.名前付きキャプチャ
Utility - Strings > Extract Regex Valueで使用した名前付きキャプチャも使えます。
Regex Pattern の値で名前付きキャプチャ?<name>を指定し、Replacement Textでマッチした値を参照するには、${name} とします。
Tipsは随時更新していきます。