セッションパラメータ
セッションとは、ユーザーがビジュアリゼーションでマッシュアップを表示する際にサーバーに対して行う接続のことです。セッションパラメータを作成して、現在のユーザーセッションのテンポラリデータを保存できます。たとえば、セッションパラメータを使用して、マッシュアップで優先するスタイルテーマの設定を保存できます。セッションパラメータの値は、サーバーに接続しているユーザーごとに一意であり、セッションが終了するまで保存されます。ユーザーが異なるマッシュアップ間を移動しても、セッションパラメータデータは維持されます。
セッションは、ユーザーがアプリケーションを閉じたとき、ログアウト関数を使用してログアウトしたとき、またはサーバーでアイドル状態になった後でタイムアウトになったときに終了します。プラットフォームセッションのデフォルトのタイムアウト時間は 30 分です。
SetPlatformSessionTimeout 管理者サービスを使用して、デフォルトのタイムアウトを設定できます。詳細については、
管理者サービスを参照してください。
最良事例
• 複数のセッションに必要なデータを保存するには、データベースまたは Thing を使用します。
• 可能な場合、マッシュアップ間でデータを渡すにはマッシュアップパラメータを使用します。使用するセッションパラメータの数が多すぎると、パフォーマンスが低下する可能性があります。詳細については、
マッシュアップパラメータの設定を参照してください。
セッションパラメータ値での変更イベントの使用
UserManagementSubsystem 内でセッションパラメータを追加してから、Mashup Builder の「セッション」パネルを使用して、マッシュアップ内のウィジェット、サービス、または関数へのバインドを作成できます。パネルを選択すると、使用可能なセッションパラメータがリストされます。
「データプロパティ」パネルに、各パラメータの <Parameter_Name>Changed が表示されます。これらのイベントは、クライアント側でセッションパラメータの値が変更された場合にのみトリガーされます。サーバー上で SetGlobalSessionValues サービスを使用してパラメータの値を変更してもこのイベントはトリガーされません。サーバーで値が変更されたときにイベントをトリガーするには、パラメータの更新に使用するサービスの ServiceInvokeComplete イベントを代わりに使用します。
セッションパラメータの追加
1 つまたは複数のプロパティをセッションパラメータとして持つ Thing Shape エンティティを使用できます。UserManagementSubsystem エンティティにデータシェイプを追加するには、以下の手順に従います。
1. Composer で、「ブラウズ」をクリックします。
2. 「System」で、「サブシステム」を選択し、UserManagementSubsystem エンティティを開きます。
3. 次のいずれかの方法によって、サブシステムに Thing Shape を追加します。
◦ 「サービス」タブで、AddSessionShape サービスを実行します。
a. このサービスを見つけて、
「実行」列の下にある
をクリックします。
「サービスを実行」ダイアログボックスが開きます。
b. 「名前」フィールドで、セッションパラメータが含まれている Thing Shape を選択し、「実行」をクリックします。
c. 「完了」をクリックしてダイアログボックスを閉じます。
d. 「保存」をクリックして、サブシステムに対する変更を保存します。
◦ 「コンフィギュレーション」タブの「ユーザーセッションのシェイプ設定」で、「追加」をクリックします。ダイアログボックスが開きます。
a. Thing Shape 名を入力し、「追加」をクリックします。
b. 「保存」をクリックして、サブシステムに対する変更を保存します。
Thing Shape がサブシステムに追加されます。「セッション」パネルを開くと、データシェイプのプロパティが、バインド可能なセッションパラメータとしてリストされます。
| 複数の行と列から成るインフォテーブルをセッションパラメータとして使用した場合、パフォーマンスが低下する可能性があります。 |
詳細については、
ユーザー管理サブシステムを参照してください。
プラットフォームサーバーでのセッションパラメータへのアクセス
セッションパラメータの値を取得するには、以下の手順に従います。
1. Composer で、「ブラウズ」をクリックします。
2. 「システム」で、「リソース」を選択し、CurrentSessionInfo リソースエンティティを開きます。
3. 「サービス」タブで、GetGlobalSessionValues サービスを実行します。
a. リストでこのサービスを見つけて、
「実行」列の下にある
をクリックします。
「サービスを実行」ダイアログボックスが開きます。
b. 「実行」をクリックします。「出力」枠にカレントセッションのパラメータ値が表示されます。
c. 「完了」をクリックしてダイアログボックスを閉じます。
「セッション」パネルに、使用可能なセッションパラメータがリストされます。「データ」パネルを使用して GetGlobalSessionValues サービスをマッシュアップに追加し、返された値を関数、サービス、またはウィジェットにバインドできます。
例: セッションパラメータを使用したテキストフィールドウィジェットへの入力の保存
ウィジェットプロパティがセッションパラメータに直接バインドされている場合、ページを再表示した後でセッションプロパティの値は失われます。ページの再ロード時に値を保持するには、setter サービスと getter サービスを使用して、パラメータ値を更新および取得する必要があります。
1. 「セッションパラメータの追加」セクションの手順に従って、セッションパラメータを定義します。
2. セッションパラメータ値を設定するサービスを含むヘルパー Thing を作成します。
3. setter サービスに input_string という名前の入力パラメータを追加し、次の JavaScript コードを追加します。
Resources["CurrentSessionInfo"].SetGlobalSessionStringValue({name: "your_session_var", value: input_string});
4. マッシュアップを作成し、テキストボックスウィジェット、ボタンウィジェット、バリデータ関数を追加します。
5. 「データ」パネルを使用して、次のサービスを追加します。
◦ 手順 2 で作成した setter サービス。
◦ CurrentSessionInfo リソースからの GetGlobalSessionValues サービス。
6. テキストフィールドウィジェットの Text プロパティを setter サービスの input_string パラメータにバインドします。
7. GetGlobalSessionValues サービスの All Data プロパティの下にあるセッション変数をテキストフィールドウィジェットの Text プロパティにバインドします。
8. ボタンウィジェットの Clicked イベントを setter サービスにバインドします。
9. setter サービスの ServiceInvokeCompleted イベントをバリデータ関数の Evaluate サービスにバインドします。このイベントを使用することで、関数が実行される前にセッションパラメータの値が必ず更新されます。
10. 関数を編集して次のコードを定義式に追加します。
location.reload()
11. 保存してから、マッシュアップを表示します。
テキストボックスに値を入力し、ボタンをクリックしてページを再ロードします。ページが再ロードされた後も値は保持されます。