RPAエンジニアの雑記

RPA(Blue Prism)について色々記載してます。

(BluePrism)環境ロックって?

ご無沙汰しております、おむおむです。

最近インプットやブログ以外でのアウトプットの時間が増えてきました。。。
ぴえんです。

とか言いつつ、AD01(Blue Prism Developer)の試験に合格しました!

f:id:newgraduate19:20200310221814p:plain

AcclaimのURL貼ろうと思っていたのですが、
がっつり本名が入ってしまうのでパスで(-_-)

今後も引き続きキャッチアップするやで~!
(何やらROMの勉強もしなければならない流れ)

さて、今回はプロセステンプレートでも使用されている
環境ロックについて書いてみたいと思います。いえい。

ざっくりと説明

特定のリソース(厳密にはセッション)でのみ、
プロセスの一部もしくは全体の処理を実施できるようにする
機能です。

プロセスへのアクセス権だけだと、ユーザロール単位でしか縛れないので、
「リソースプールに対してセッションを指定しているけど、
とりあえずどれか1つのリソースだけに処理させたい!」って時に便利ですね。

プロセステンプレート内だと、
ワークキューへの登録の際にだけ使ってますね。
パラレルで実行して、同じデータを何回も登録してはダメですからね。

使ってみよう

使い方は簡単。内部オブジェクトの「環境ロック」を使用するだけ!
ロックの取得、解除、照会ができます。
今回はよく使う取得解除をピックアップして紹介しやす。

取得


入力パラメータの説明の前に、そもそもの仕組みから。

ロックが取れた場合、Lock Tokenというトークンが与えられます。

f:id:newgraduate19:20200224001758p:plain

このトークンの文字列の有無で処理の分岐を行う、といったことができるわけですね。

f:id:newgraduate19:20200224001146p:plain

さて、入力パラメータはいくつかありますが、特に重要なのはタイムアウト
ロックを取得できなかった場合、
現在かかっているロックが解除されるまでどれぐらいの時間待機するか、
ということを指定します。

こいつがデフォルト(空白)の場合無限に待機してしまうので要注意ですね。
プロセステンプレート内だと0秒になっており、そのステージに差し掛かった瞬間に
ロックが取れていなければ即終了!というロジックになっています。なるほどね。

また、「名前」も必ず指定する必要がありますが、
ここはプロセス名と一致させてもいいんじゃないかなーと思います。
揃えられるものは揃えておいた方が後々何かと楽じゃないかなーと思います。
(どっかにベストプラクティスとして書いてあった気がしたが忘れた...)

ロックを解除


f:id:newgraduate19:20200224003103p:plain

こいつの必須パラメータはLock Token。
鍵を持っているやつだけロックを解除するぜ!って感じ。
このアクションを使用しないと、プロセスが終了するまでロックがかかりっぱなしになります。

システムからも確認できる

「システム」->「ワークフロー」の「環境ロック」から、現在のロック状況を確認できます。

f:id:newgraduate19:20200311230714p:plain

例えば、ロックをかけている範囲内でフリーズしたり、
ネットワークの問題でリソースとAPサーバとの接続が切れたりと
再実行したくてもロックが外れなくなってしまったときなどはここから管理します。
まああんまりないですけどね。

まとめ

・パラレルで実行したくないプロセス全体もしくは一部に占有ロックをかけるよ
・ロックがかかるとトークンが発行されるよ
・ロックが外れなくなったらシステムから外せるよ

さあご本読むぞぉ