リソースのブロック

リソースへのアクセスをブロックします。

コマンドの可用性: IBM RPA SaaS および IBM RPA オンプレミス

Description

このコマンドは、同じロックに対する各要求が割り振られる内部キューを作成します。 ロックが解除されると、次の要求によって再度ロックされます。 IBM RPA Control Centerでアクティブ・ロックを表示および解除できます。 詳しくは、アクティブ・ロックを参照してください。

スクリプト構文

IBM RPA の専有スクリプト言語の構文は、他のプログラミング言語と似ています。 スクリプト構文は、スクリプト・ファイル内のコマンドの構文を定義します。 この構文は、 IBM RPA Studioの 「スクリプト」 モードで操作できます。

waitLock --global(Boolean) --name(String) [--timeout(TimeSpan)] (Boolean)=success

依存関係

  • 「フィーチャーのアンロック」コマンドを使用して、このコマンドのスコープを終了する必要があります。
  • スクリプトを並行して実行するには、2 つ以上の Bot ランタイムが必要です。

入力パラメーター

以下の表は、このコマンドで使用可能な入力パラメーターのリストを示しています。 この表では、 IBM RPA Studioのスクリプト・モードで作業しているときのパラメーター名と、それに相当する Designer モードのラベルを確認できます。

「デザイナー」モードのラベル 「スクリプト」モードの名前 必須 使用可能な変数タイプ Description
グローバル global Required Boolean 同じ IBM RPA 環境で稼働するすべてのマシンからアクセス可能なロックを作成できるようにします。 有効にしない場合、ロックはソース・マシンでのみ作成されます。
名前 name Required Text ロックの名前。
タイムアウト timeout Optional Time Span, Number, Text 指定されたロックが使用可能かどうかを検査し続ける最大待機時間。
デフォルトのタイムアウトは 5 秒です。 「タイムアウトの設定」コマンドを使用して、スクリプトにデフォルトのタイムアウトを定義することもできます。

出力パラメーター

「デザイナー」モードのラベル 「スクリプト」モードの名前 使用可能な変数タイプ Description
成功 success Boolean ロックを作成する場合は True を返し、それ以外の場合は False を返します。

以下のコード例は、リソースをロックし、そのロック中のリソースへのアクセスを試行する方法を示しています。 LogMessageLock は、サンプル・ロックを作成します。 「リソースのブロック」コマンドはリソースへのアクセスを 2 回ブロックし、2 番目の要求は最初のロックによってブロックされます。 最初のロックは、「フィーチャーのアンロック」コマンドの実行後に終了します。

defVar --name successfullyEnteringLock --type Boolean
defVar --name lockName --type String
// Assigns the lock name to 'LogMessageLock'.
setVar --name "${lockName}" --value LogMessageLock
// Create a lock to the resources into your scope. It create a global lock to these resources.
waitLock --global  --name "${lockName}" --timeout "00:00:52" successfullyEnteringLock=success
	// Logs the message to state if it enter the lock.
	logMessage --message "Success to enter the \"${lockName}\" lock for the first time: ${successfullyEnteringLock}" --type "Info"
	// Tries to create a new lock to 'LockMessage' before the Unlock Feature command releases it. In this case, it isn't possible because the 'LogMessageLock' still locked.
	waitLock --global  --name "${lockName}" --timeout "00:00:52" successfullyEnteringLock=success
		// Logs the message to state if it enter the lock.
		logMessage --message "Trying to access the \"${lockName}\" lock." --type "Info"
		// Unlock the lock.
	release
	// Logs the message to state if it enter the lock.
	logMessage --message "Success to enter the \"${lockName}\" lock for the second time: ${successfullyEnteringLock}" --type "Info"
	// Unlock the lock.	
release

制限

IBM RPA オンプレミス環境の場合のみ: このコマンドは、 Redis バージョン 3.0.504では正しく機能しない場合があります。 詳しくは、『Redis により「セマフォーのブロック」コマンドおよび「リソースのブロック」コマンドの誤った動作が発生する』を参照してください。