# コンテキストと変数を使用

変数は、プログラムの実行中に変化する値を表します。

グローバル変数はシステム変数で、任意のモジュールまたは関数からアクセスでき、使用するファンクションまたはプログラムが実行を完了した後も値を保持しています。

情報メモ警告: デフォルトでは、globalMapオブジェクトの実装は同期化されません。そのため、ジョブ内でglobalMapオブジェクトを介して作成されたグローバル変数を使っている時にスレッドセーフの問題が引き起こされる可能性があります。ただし、globalMapオブジェクトはジョブ間で共有されないため、複数の子ジョブを並列で実行する場合は、それぞれの子ジョブ内でglobalMapオブジェクトを使用することで並列化時のスレッドセーフの問題を軽減できます。並列化の詳細は、 [並列化を使ってジョブパフォーマンスを最適化](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/using-parallelization-to-optimize-job-performance)をご覧ください。

コンテキスト変数とは、特定のコンテキストでユーザーが定義する変数をいいます。ジョブやルートの使用環境に応じて、「コンテキスト」と呼ばれるさまざまな実行タイプ(次の例ではProdとTest)別に異なる管理をしなければならない場合があります。たとえば、ジョブまたはルートの本番稼動の前には、各種テスト段階で実行して検証します。

情報メモ注:

コンテキスト変数の使用に関する一般的なアドバイス:

* コンテキスト変数内の小さなデータを使用します。
* コンテキスト変数内にコードを入れないようにします。
* デフォルトのString型ではなく、適切な変数型を使用します。たとえば、パスワードにはセキュリティを高めるためにPassword型、ファイルパスまたはディレクトリーには、不要なエスケープを避けるためにFile型またはDirectory型です。
* 文字列値全般を二重引用符で囲むことは避けてください。ただし、以下の場合は二重引用符の使用が必須となります。
  * 文字列にエスケープ文字が含まれており、エスケープの解除が発生するように設定する場合。
  * 文字列の先頭または末尾に、変数値の一部である二重引用符がある場合。

コンテキストにはパラメーターに特徴があります。パラメーターはほとんどがコンテキスト依存変数で、[Component] (コンポーネント)ビューでCtrl + スペースを押すと、コンポーネント固有プロパティで再利用するため変数リストに追加されます。

Talend Studioでは複数のコンテキストデータセットを作成できます。さらに、ジョブやルートのコンテキストタブから1回限りのコンテキストデータセットを作成したり、[Repository] (リポジトリー)ツリービューの[Contexts] (コンテキスト)ノードにコンテキストデータセットを一元化してさまざまなジョブやルートで再利用したりすることもできます。

ジョブの場合、コンテキスト変数の値は、作成中に定義する方法と、ジョブの実行中にtContextLoadコンポーネントを使用して明示的に、または暗黙的なコンテキストロード機能を使用して暗黙的に、コンテキストパラメーターをダイナミックにロードする方法とがあります。

情報メモ注: コンテキストパラメーターをダイナミックにロードする時に、パラメーター値が特定のファイルまたはデータベースからロードされ、Talend Studio(Talend Cloudコンテキストパラメーターの場合はTalend Management Console)で静的に定義されたパラメーター値は無効になります。

このセクションでは、コンテキストと変数を作成し、コンテキストパラメーターの値を定義する方法について説明します。

tContextLoadコンポーネントを使ってコンテキストパラメーターを動的にロードする例は、[コンテキスト](https://help.qlik.com/talend/ja-JP/components/8.0/context)をご覧ください。

暗黙的コンテキスト読み込み機能を使用してコンテキストパラメーターを動的に読み込む例については、をご覧ください。

### このセクション内

* [ジョブまたはルートのコンテキスト変数を定義](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0-R2026-01/defining-context-variables-for-job-or-route)
* [リポジトリー内でコンテキスト変数を一元管理する](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0-R2026-01/centralizing-context-variables-in-repository)
* [リポジトリーコンテキスト変数をジョブまたはルートに適用する](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0-R2026-01/applying-repository-context-variables-to-job-or-route)
* [ジョブまたはルートで変数を使用する](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0-R2026-01/using-variables-in-job-or-route)
* [選択したコンテキスト環境でジョブやルートを実行](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0-R2026-01/running-job-or-route-in-selected-context)
* [CI/CD実装でコンテキスト環境を使用](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0-R2026-01/context-environments-for-continuous-integration-with-talend-management-console)