(O+P)ut

OutPut Log by SE in SIer



(O+P)ut

OutPut Log by SE in SIer

【BluePrism】文字列を分割してコレクションに格納する

スポンサーリンク

BluePrismとコレクション

BluePrismとはフローを作成しながら、自動化したい作業を実現していくRPA*1ツールです。
本ツールには配列に近い機能を持つコレクションという型がありますが、文字列からコレクションへの変換は標準機能として提供されていません。


例えば、区切り文字で表現されている文字列を配列に格納する際、Javaでは以下のように記載します。

String color_str = "Blue,Red,Yellow";
String[] color_collection = color_str.split(",", -1);

これは以下の記述と同様です。

color_collection[0] = "Blue";
color_collection[1] = "Red";
color_collection[2] = "Yellow";


本記事では、同様の処理をBluePrismで行う際の流れについて解説します。

文字列を分割してコレクションに格納する流れ

用意する変数

以下の2つです。
f:id:mtiit:20190404111935p:plain

Dataとしてcolor_strという名前で以下の定義をしました、

Data Type Text
Initial Value Blue,Red,Yellow

Collectionとしてcolor_collectionという名前でFieldを以下で定義します。

Name color
Type Text

color_strを分割しながらcolor_collectionに格納していくことになります。

プロセス全体と方針

f:id:mtiit:20190404115046p:plain

方針は以下です。

  • コレクションに値を追加(Add Row
  • 区切り文字( , )の存在で条件分岐(Check
  • 区切り文字が存在すれば、区切り文字から左側をコレクションに追加(Split_left)/ 区切り文字から右側をcolor_strに再格納(Split_right
  • 区切り文字が存在しなければ、残りの文字列をコレクションに追加(GetLastItem

これを上で掲載した画像のように接続しています。
以下、詳細です。

プロセスの詳細

Check部分
InStr([color_str], ",") > 0

にて区切り文字の存在を確認しています

Add Row部分

アクションにて以下を指定します。

Business Object Collections
Action Add Row

インプット情報として、対象のコレクション名を文字列で指定します。

Collection Name "color_collection"

Split_left部分

Left([color_str], InStr([color_str], ",")-1)

上記で切り出した値を

color_collection.color

に格納します。

Split_right部分
Right([color_str], Len([color_str]) - InStr([color_str], ","))

上記で切り出した値を

color_str

に格納します。

GetLastItem部分
[color_str]

color_collection.color

に格納します。

実行結果

ループが回る度にcolor_strが短くなり、最終的に以下のように値が格納されます。
f:id:mtiit:20190404120333p:plain

終わりに

本記事ではBluePrismにて文字列を指定した区切り文字で分割し、コレクションに格納する流れを解説しました。
コレクションをLoopを用いずに制御する手法としても有効なので、覚えておくとよいかと思います。

以上、ご参考になれば幸いです。

*1:RPA : Robotic Process Automation