# クライアント変数
モバイルアプリとリアクティブWebアプリでは、クライアント変数を使用してクライアント側でキーと値の形式のデータを保存します。 たとえば、これらの変数を使用して構成やアプリのコンテキストデータを保存します。
クライアント変数で保存できるのは[基本データ型](https://success.outsystems.com/ja-jp/documentation/11/reference/outsystems_language/data/data_types/available_data_types/)のみです。 **バイナリ** データは例外です。バイナリは基本データ型ですが、これらの変数で保存することはできません。 環境全体のすべてのクライアント変数で利用可能なデータの量は、ブラウザに依存します。
クライアント変数の値は同じ環境内の様々なアプリ間で共有されます。ただし、これには以下の条件があります。
- アプリのユーザープロバイダが同じである。
- アプリが同じブラウザで実行されている。
クライアント変数を以下の中で使用することにより、クライアント変数の値をアプリ全体で共有することができます。
- パブリックブロック
- パブリッククライアントアクション
ユーザーがアプリからサインアウトするか、プラットフォームによって自動的にサインアウトされると、クライアント変数はそれぞれのデフォルト値にリセットされます。 ただし、クライアント変数を使用して機密情報や秘密情報を保存しないでください。
## 使用方法
この例は、クライアント変数を使用してSearchウィジェットの値を保持する方法を示しています。 その後、クライアント変数の値を使用してAggregateをフィルタリングします。 この値は別の画面に変更したりブラウザを閉じたりしても保持されます。
1. [ **Data** ]タブで、 **Client Variables** を右クリックして、[ **Add Client Variable** ]を選択します。
2. 変数の名前を入力します(例: `SearchKeyword`)。

3. Inputウィジェットを選択します。
4. [ **Properties** ]タブで、[ **Variable** ]フィールドに「`Client.SearchKeyword`」と入力します。

5. 要素ツリーでAggregateをダブルクリックします。
6. [ **Filter** ]タブで、[ **Add Filter** ]をクリックします。
7. フィルタリング条件を挿入します。
```
Employee.FirstName like "%" + Client.SearchKeyword + "%"
```
8. フィルタを保存し、[ **Close** ]をクリックします。

これらの手順を実行してモジュールをパブリッシュした後、ブラウザでフィルタの機能をテストできます。 Searchウィジェットの入力に挿入されたテキストは定義したクライアント変数に保存され、Aggregateのフィルタリングに使用されます。 別の画面に変更したりブラウザを閉じたりしても値は保持され、その値に基づくフィルタが引き続き適用されます。
## プロパティ
|名前|説明|必須|デフォルト値|備考|
|---|---|---|---|---|
|名前|画面、アクション、モジュールといった、定義されているスコープ内の要素を識別します。|あり|||
|説明|要素を文書化するテキスト。|||文書化の際に便利です。 このプロパティの最大サイズは2,000文字です。|
|データ型|変数のデータ型。|あり|||
|デフォルト値|この要素の初期値。 未定義の場合、データ型のデフォルト値が使用されます。|||クライアント変数のデフォルト値はリテラルにする必要があります。|