セッションの再利用
セッションとは、ウェブサイト ブラウジングの結果を指し、ブラウジングの過程で取得されたページ、そのページの URL、Cookie および認証が含まれます。しかし、必要な情報へ容易に到達できるセッションの取得には、ログインなどの多数のナビゲーション ステップが必要になります。
ロボットの実行が頻繁過ぎてその応答時間を大幅に短くする必要がある場合、ロボットの適切なセッションの作成には必要以上に多くの時間がかかります。しかし、セッションの取得が行われロボットおよびロボットの実行間で共有されると、時間が大幅に節約されることになります。
セッションの再利用には以下の 2 つのステップ アクションを使用します。
- [セッションの保存] アクション:セッションを変数に保存します。
- [セッションの復元] アクション:変数からセッションを復元します。
例
ウェブサイトにログインし、データを収集して返すロボットがあると仮定します。ただし、収集しようとするデータは、リンク先ページに広く分散しています ([次のページ] リンクを使用している場合など)。ロボットの最初の呼び出しでサイトにログインして最初のページのデータを返し、その後続の呼び出しではそれぞれ新たなデータのかたまり (次のページ) を返すようにしたいとします。また、ログインしているユーザーのセッションをロボットの呼び出し間で共有したいと考え、さらに、返したデータ量が記録されるようにしたいとします。ロボットは以下の例のようになります。
![セッションの再利用](../../All_Images/SessionReusingRobot.png)
ロボットが呼び出されると、まず入力変数からセッションを復元しようとします。セッションが存在する場合はそのセッションが使用され、次のステップが次のページ リンクをクリックして新しいデータページを取得します。セッションがロボットに渡されない場合にはステップが失敗し、データが見つかる可能性のあるサイトの関連ページにログインし、ナビゲートする第 2 の選択肢が実行されます。
ロボットの実行が 2 つの代替分岐のうちの 1 つを経由すると、[セッションの保存] ステップに達します。これにより、次回ロボットを呼び出す場合に使用するセッションが保存されます。しかし、この呼び出しを行うには、セッションをロボットの呼び出し元に返す必要があります。これは、セッションを含む変数の値を返す通常の値返却ステップ、[リターン セッション] ステップによって処理されます (この変数は、[セッションの保存] ステップがセッションを保存した属性タイプ [セッション] の属性を持つタイプ)。最終的にロボットがデータの最後に到達すると (ページに次のページへのリンクが存在しない場合)、[次へをクリック] によってエラーが生成されます。[エラー処理] を [後続のステップ全てをスキップ] に設定しているため、これはロボットに無視されますが、[API 例外] にチェック マークを付けている場合は、呼び出し元で例外が発生します。たとえば、ロボットが Java から呼び出されている場合、このチェック マークを使用することでデータの最後に達したことを把握することができます。
セッションの保存後は、ロボットの残りのステップがテーブルをループして各行の値を返すといった方法によって、ページからデータを抽出します。
Design Studio では、ロボットの自然なフローによってロボットの実行が制御されることはありません。ロボットの実行は、ユーザーの操作によって制御されます。
-
セッションを保存するには、[セッションの保存] ステップの後に続くステップを選択します。
-
[セッションの復元] アクションを選択します。