Python/HCL スクリプトの変数の使用
ロボットスクリプトエディターで Python/HCL スクリプトを作成する場合、2種類の変数を作成できます。
-
Python 変数 スクリプトの本文で定義された正規の Python 変数
-
HCL 変数 変数ウィンドウで定義された HCL 変数
2種類の変数は異なる目的のために用意されています。これは、その後のセクションで説明します。
また、HCL は、スクリプトが実行される Diligent One 組織や、スクリプトの実行モード(開発または本番)に基づき、組み込みシステム変数に値を自動的に割り当てます。詳細については、「system_variable[] メソッド」を参照してください。
この 3 種類の変数は、同じスクリプトで一緒に使用できます。
Python 変数
Python/HCL スクリプトの Python 変数は、いずれかの Python スクリプトで動作するのと同じ方法で動作します。スクリプトの値が変更対象である場合、事実に即した値よりも、スクリプトロジック内の変数を参照できます。必要とするスクリプトのどこにでも Python 変数を作成できます。
Python 変数の例
以下の例は、数値のリストを通じてループし、リスト内の各数値を2乗します。リストの数値が変化するために、スクリプトロジックは:事実に即した値の代わりに変数を使用します。
-
list_of_numbers – 数値のリストに割り当てられる変数
-
v_number – リストの単一の数値に割り当てられる変数
-
v_squared_number – v_number * v_number の結果に割り当てられる変数
for ループがそれぞれ繰り返され、v_number の値と、v_squared_number 変数が更新されます。
list_of_numbers = [1, 2, 3, 4, 5]
for v_number in list_of_numbers:
v_squared_number = v_number * v_number
print(v_squared_number)
スクリプトの出力:
1 4 9 16 25
HCL 変数
HCL 変数は2つの目的で使用されます:
-
ロボットのタスクでタスク入力パラメータの基礎を提供します。
-
パスワードや認証トークンなどの機密情報のセキュアなストレージを提供します。
ロボットでは、これらの要件のいずれも Python 変数を使って成し遂げることはできません。HCL 変数を使用する必要があります。
[変数]ウィンドウ
ロボットスクリプトエディターの[変数]ウィンドウは、スクリプトで必要な変数を定義するための一元化された場所です。特に、[変数]ウィンドウでは、ロボットタスクを実行またはスケジュールする際の、ユーザーが入力するロボットタスク入力値を格納するスクリプト変数を定義します。例:
-
タスクを実行またはスケジュールするときに特定の部署を指定できる v_department 変数
-
パスワードや認証トークンなどのデータソースへのアクセスに必要な認証資格情報を安全に管理する変数
[変数]ウィンドウを使用して、v_org_id などのスクリプトのコンテキストでのみ使用される HCL 変数を定義することもできます。ただし、この状況におけるもっと容易なアプローチは、HCL 変数を定義するよりも、スクリプトの本体で標準 Python 変数を作成することです。
変数定義フィールド
番号 | 説明 |
---|---|
1 |
名前 v_department などの変数名が含まれます。 |
2 |
型 変数の型を指定します。 |
3 |
値 スクリプト エディターで対話式でスクリプトを実行するときに変数に割り当てられる初期値 |
ロボットタスクの入力フィールド
番号 | 説明 |
---|---|
4 |
タスク入力 タスク デザイナーで変数がタスク入力パラメーターとともに使用されるうことを指定します。
|
5 |
タスク入力ラベルタスク デザイナーに表示される入力パラメーターのラベルを作成します。例:部署を入力してください タスク入力説明(省略可能) ユーザーに役立つ追加的な詳細を加える入力パラメーターの説明を作成します。 |
[変数]ウィンドウを使用して HCL 変数を定義する
タスクデザイナーのロボットタスク入力パラメーターで使用する v_department や v_password などの HCL 変数を定義します。
メモ
HCL 変数は、スクリプト構成オプション、パスワード、またはトークンなどのロボットタスク入力で使用することを主に目的としています。タスク入力で使用されないスクリプト変数では、スクリプト本文に標準の Python 変数を定義するのがより容易なアプローチです。
基本変数定義を作成する
-
ロボットスクリプト エディターから[変数を管理 ]をクリックします。
-
[変数]ウィンドウで[変数を追加]をクリックします。
-
次の値を指定して、基本変数定義を作成します。
フィールド 説明 名前 変数名を指定します。例:v_department または v_password。
メモ
Diligent One トークンを格納する変数は v_hb_tokenとまったく同じ名前を使用する必要があります。
Diligent One トークンの詳細については、HighBond アクセストークンの作成と管理を参照してください。
タイプ 変数の型を選択します。
-
文字 テキストの場合
-
パスワード パスワードまたはトークンを安全に管理します。
-
システムユーザー(ツールキットで提供)サービスアカウントのように、実際のユーザーを参照せずに、Diligent One プラットフォームの操作を許可します。
注意
理由がない場合は、システム ユーザー変数を編集しないでください。
値 変数値を入力します。パスワード変数値の長さは最大 8 KB です。
入力する値は、スクリプト エディターで対話式でスクリプトを実行するときに変数に割り当てられる初期値です。
メモ
タスク入力に関連する変数では、値はスクリプトエディターでのみ利用できます。値はタスク デザイナーのデフォルト値として渡されません。
-
関連付けられたタスク入力パラメーターを構成する
タスク デザイナーで変数がタスク入力パラメーターとともに使用される場合は、追加の設定を指定する必要があります。
-
トグルをクリックして、[タスク入力]を有効にします。
タスク デザイナーでユーザーに値を確認するには、この設定をオンにします。タスクを実行またはスケジュールするときには、ユーザーが入力した値が変数に格納されます。
-
ユーザーが入力値の指定を省略できるようにす場合は、[ユーザー入力任意]を選択します。
特定の値を入力すると、スクリプトの動作が変わることがありますが、スクリプトの実行のために必須の値ではない場合があります。たとえば、ユーザーが任意の開始日と終了日を指定すると、分析を特定のデータ範囲に制限することができます。
-
[タスク入力ラベル]で、このパラメーターのタスクデザイナーでユーザーに表示されるラベルを入力します。
例:「部署を入力してください」、「Diligent One トークンを入力してください」
-
省略可能。[タスク入力説明]には、ユーザーがパラメーターの入力値を指定することを支援する詳細情報を追加します。
変数定義を保存する
-
[保存して閉じる]をクリックして変数定義を保存し、[変数]ウィンドウを終了します。
-
[コミット]をクリックすると、更新された変数定義でスクリプトを保存します。
メモ
変数定義の保存を永続的に保存するには、スクリプトを保存し、コミットする必要があります。
-
コミット メッセージを入力し、[コミット]をクリックします。
スクリプトのコミットが成功したかどうかを確認するメッセージが表示されます。
スクリプトの再実行
[変数]ウィンドウの内容を保存すると、スクリプト エディターのセッション メモリが自動的に消去されます。インポートされた Python ライブラリ、Paython ディクショナリ、生成されたデータフレーム、またはメモリに格納された変数値は一切使用できません。以前にメモリに格納された内容に依存するスクリプト セルを実行した場合、エラーまたは予期しない結果が発生します。
セッション メモリを前の状態に復元するには、スクリプト全体を再実行するか、すべての前提条件セルを再実行します。
スクリプト内の HCL 変数を使用する
スクリプトで HCL 変数を使用するには、特定の HCL 構文を使用して変数を参照する必要があります。
HCL 文字変数を参照する
HCL 文字変数を参照するには、次の構文を使用します: hcl.variable["変数名"]
例:
print(hcl.variable["v_department"])
スクリプトの出力:
操作
必要な構成に関する詳細な情報については、variable[] メソッドを参照してください。
HCL パスワード変数を参照する
HCL パスワード変数を参照するには、次の構文を使用します: hcl.secret["変数名"].unmask()
例:
print(hcl.secret["v_hb_token"].unmask())
スクリプトの出力:
zq025f72938e4s...
必要な構成に関する詳細な情報については、secret[] メソッドを参照してください。
HCL 変数を Python 変数に割り当てる
便宜上、HCL 変数値を正規の Python 変数に割り当て、後から Python 変数のみを参照できます。
例:
department = hcl.variable["v_department"]
print(department)
token = hcl.secret["v_hb_token"].unmask()
print(token)
スクリプトの出力:
操作 zq025f72938e4s...