WebMacroPlayer - WebMacroオプションによるWebデータの取得

WebMacroレコーダーによって記録した操作をプレイバックして、データを取得して出力ます。

WebMacroレコーダーと本コンポーネントを含むWebMacroオプションの詳細については、下記トピック「WebMacroオプションの使い方」を参照してください。

■ストリーム情報

入力フォーマットすべて
接続数1
説明 入力ストリームは使用せず、すべて無視します。
出力フォーマットXML,Binary
説明選択したトランザクション(HTTPリクエスト)の結果データを出力します。

■コンポーネントプロパティ

名前プロパティ型マッピング説明
出力選択済みboolean- WebMacroFileBrowserで出力したいデータのトランザクションが選択されたかどうか表示されます。
はい [true] - 選択されました。
いいえ [false] - 選択されていません。
JavaScriptタグを除去するboolean- 出力ストリームに出力されるデータにJavascriptタグが入っている場合、それらのデータを除外した結果を出力するかどうかを選択します。
はい [true] - 除外します。
いいえ [false] - 除外しません(HTTPリクエストの結果そのものが返されます。)
名前空間を取り除くboolean- 出力フォーマットがXMLの場合、DOCTYPEタグとデフォルトの名前空間の属性を含まずに出力するかどうか選択します。
はい [true] - 含みません。
いいえ [false] - 含みます。
エンコーディグchoice- 選択したトランザクションの入力データのエンコーディングを指定します。
プレイバック方法choice- プレイバックをWebMacroFileBrowserで指定したトランザクションのどこまでプレイバックするかを指定します。
指定トランザクションまで [After Selected Transaction]
指定したトランザクションまでをプレイバックします。
すべてのトランザクション [After All Transactions]
指定したトランザクション以後のトランザクションもプレイバックし、すべてのレコーディングされているトランザクションをプレイバックします。
プレイバック処理の最適化choice- プレイバックの処理を高速化するために最適化レベルを選択できます。
すべてプレイバックする [No Optimization]
すべてのトランザクションを順番にプレイバックします。
最小限のリスクで最適化 [Level 1 Optimization]
選択したHTTPリクエストのトランザクション以前のHEADオペレーションをスキップします。プレイバックスピードを最小限のリスクで最適化します。
スピート優先で最適化 [Level 2 Optimization]
選択したHTTPリクエストのトランザクション以前の可能な限りすべてのトランザクションをスキップします。この場合、".gif", ".jpg", ".png", ".css", or ".js"の拡張子をもつデータの取得をスキップします。プレイバックスピードを最大限に早くしますが、正しく取得できない場合があります。
プラグインクラスstring入力&出力 このプロパティは機能拡張用に予約されたものです。ユーザーはこのプロパティには文字列を設定しないようにしてください。
パラメータcategory入力&出力 プレイバックするトランザクションのHTTPリクエストを動的に変更するために使用するパラメータを指定します。
使用方法については下記トピック「パラメータの使い方」を参照してください。

■トランザクション処理

コミット何もしません。
ロールバック何もしません。

■エラー処理

タイプパラ
メータ
エラー処理フロー
へのストリーム
エラー
コード
説明
汎用 なし コンポーネントの入力ストリーム なし Webサーバーに接続できない場合
なし サーバー上のファイルを見つけることができない場合
なし レコーディングデータを読むことができない場合

■エラーコード

エラーが発生した場合、システム変数「エラーコード」に以下の内容が設定されます。

エラーの内容システム変数「エラーコード」の内容
通信上でSocketエラーが起きたとき
(Webサーバーに接続できない場合等)
SOCKET_EXCEPTION
HTTPでエラーが返されたとき
(サーバー上でファイルが見つからなかった場合等)
HTTP_ERROR
上記以外のエラーOTHER_EXCEPTION

■WebMacroオプションの使い方

WebMacroオプションを使うと、ユーザーがWebブラウザで操作したページ遷移やフォーム入力などを記録し、フロー設計時に記録の過程で取得するHTMLなどコンテンツを指定して、フロー実行時に本コンポーネントで指定したコンテンツを取得して出力することができます。これにより、フロー実行時のリアルタイムなコンテンツを取得することができます。操作を記録するツール「WebMacroレコーダー」と本コンポーネントを合わせて「WebMacroオプション」と呼びます。
たとえば、以下のようなことに利用可能です。

WebMacroオプション構成

WebMacroレコーダー
(クライアントで使用)
ブラウザからのユーザー入力を記録し、その入力をWebサイトに対して送ります(プロキシ動作をおこなう)。 フローデザイナーに同梱されています。
WebMacroPlayerコンポーネントWebMacroレコーダーで記録した操作をこのコンポーネントでプレイバックして、Webサイトからデータを取得するコンポーネント。 本コンポーネントには、WebMacroレコーダーで記録されたHTTPリクエスト動作のうち、フロー実行時にコンポーネントで使用するデータを指定するための専用GUIツール「WebMacroFileBrowser」が含まれています。

動作環境と制限事項

WebMacroレコーダーはInternetExplorer 6.0 / 7.0 / 8.0 / 9.0 (以後IEと記します)のみサポートします。WebMacroPlayerコンポーネント対応のライセンスファイルが必要です。

制限事項:WebMacroPlayerコンポーネントは、Windowsのみのサポートとなっております。

WebMacroオプションで対応できないサイトについては、下記トピック「WebMacroオプションで対応できないサイトについて」を参照してください。

WebMacroレコーダー

ブラウザからのWebサーバーへのリクエスト要求を記録するために、WebMacroレコーダーはブラウザからのリクエストを中継してWebサーバーにリクエストを発行します。 このとき、WebMacroレコーダーは、ブラウザからのリクエストデータをローカルディスク上に保管します。これを「レコーディングデータ」と呼びます。レコーディングデータをWebMacroPlayerコンポーネントでプレイバックすることで、データの取得が可能になります。

WebMacroレコーダーを起動するには、Windowsの「スタート」メニューからフローデザイナーの「WebMacroレコーダー」を選択します。WebMacroレコーダーは起動すると、ダイアログ形式の画面が表示されます。

Listen ポート番号IEからのリクエストをキャプチャーするためのプロキシサーバーのポート番号です。
Auto proxy IE(※)IEの「ローカルエリアネットワーク(LAN)の設定」をWebMacroレコーダーが起動したときに自動的に設定します。WebMacroレコーダーを終了すると自動的にもとの状態に戻ります。
upstream proxy を使う別のプロキシサーバーを経由して接続する場合は、この項目をチェックし「upstream proxyホスト名」と「upstream proxyポート番号」を設定します。
upstream proxy ホスト名プロキシサーバーのホスト名(IPアドレス)を入力します。
upstream proxy ポート番号プロキシサーバーの待ち受けポート番号を入力します。

上記の設定を変更した場合は、下部の「設定保存」のボタンを押して保存してください。保存した情報は次回のWebMacroレコーダーの起動から有効になります。

(※)「Auto proxy IE」チェックボックスをオンにした場合、IEのプロキシ設定が自動的に変更されますが、環境によっては自動変更が正しく反映されないことがあります。その場合、「Auto proxy IE」チェックボックをオフにし、IEのメニューから手動でプロキシ設定を行ってください。
手動でプロシキ設定を行うには、IEの「ツール」メニューから「インターネットオプション」を選択し、表示されたダイアログボックスで「接続」タブをクリックします。下部にある「LANの設定」ボタンをクリックし、さらに表示されたダイアログボックスの「プロキシ サーバー」グループで以下のように設定します。

  1. 「LANにプロキシ サーバーを使用する」チェックボックスをオンにします。
  2. 「アドレス」フィールドに「localhost」と入力します。
  3. 「ポート」フィールドに「8080」と入力します。(8080はWebMacroレコーダーのListenポートです。)

WebMacroレコーダーで操作を記録する

WebMacroレコーダーで記録する前に、下記トピック「事前設定」を確認してください。

WebMacroレコーダーの設定画面の下部にある「レコーディング開始」ボタンを押すとその直後から、WebブラウザからのWebサーバーへのリクエストの記録を開始します。「レコーディング開始」ボタンを押してから、インターネットエクスプローラーを起動して、コンテンツを取得したいサイトを表示する操作を行います。記録する操作が終了したら、インターネットエクスプローラーを閉じます。「レコーディング終了」ボタンを押すと、記録した操作が保存されます。

ブラウザからWebサーバーへのリクエストは、以下のディレクトリに保存されます。

[USER_DIR]/data/webmacro

※ [USER_DIR](%APPDATA%\Infoteria\flowdesigner\[version number])はフローデザイナー管理用フォルダです。(例 C:\Documents and Settings\[Windowsユーザー名]\Application Data\Infoteria\flowdesigner\4.5.0)

WebMacroPlayerコンポーネント

本コンポーネントは、フローの実行時にレコーディングされたURLで外部のWebサイトへリクエストを行い、その結果をXHTMLに正規化するか、もしくは変換を行わずBinaryとして取得し、次のコンポーネントに受け渡します。レスポンスがHTMLの場合は出力ストリーム型を「XML」、HTML以外の場合(例えば圧縮データやCSVなど)は出力ストリーム型を「Binary」と指定します。

WebMacroFileBrowser

WebMacroFileBrowserは、WebMacroレコーダーによって記録されたデータの中から、本コンポーネントでどの記録データを使用するかを指定するのに使用します。WebMacroPlayerコンポーネントを右クリックして表示されるメニューの「トランザクションの選択」をクリックするか、またはダブルクリックしてWebMacroFileBrowserを起動します。

WebMacroFileBrowser起動中に記録などを再度行った場合に、記録したデータのディレクトリを再度WebMacroFileBrowserに読み込ませたいときは、ファイルメニューから「リストを最新に更新」を選択すると、画面左の情報が再度読み込まれ最新のデータが表示されます。

画面左に「レコーディング」「プレイバック」の2つのタブが表示されます。
取得するデータを指定するには以下の手順で行います。

  1. 「レコーディング」タブで、取得したいデータがあるサイトを指定してリクエストをプレイバックします。
  2. 「プレイバック」タブに取得結果が表示されるようになります。
  3. 「プレイバック」タブで、結果を確認しながら取得するデータを選択してメニューから指定します。

「レコーディング」タブ

「レコーディング」タブには、今までWebMacroレコーダーで記録されたリクエストデータが「サイト」名称をルートとする木構造で表示されます。 「サイト」の下にリクエストしたサーバー名が表示され、サーバー名の中に記録をした日時を名称とするエントリ(以降、DateTimeエントリ)が表示されます。DateTimeエントリの下には、リクエストに対してシーケンシャルに割り当てられた番号が表示されます。番号をクリックするとそのHTTPリクエストの内容が画面右に表示されます。

プレイバックするには、DateTimeエントリを右クリックして表示されるメニューから「プレイバック」をクリックします。レコーディングされたデータに基づいて実際のサーバーにアクセスして、記録した操作がプレイバックされます。プレイバック後、「プレイバック」タブで実際に取得したデータを参照することができます。

削除するには、サーバー名またはDateTimeエントリを右クリックして表示されるメニューから「セッションの削除」をクリックします。

HTTPリクエストの変更

「レコーディング」タブでDateTimeエントリの下にある番号ノードを選択すると、その番号に対応するHTTPリクエストが画面右に表示されます。ここで表示されるリクエストはWebMacroPlayerコンポーネント実行時に再生されるリクエストそのものです。HTTPの仕様に沿って以下のようになっています。

バイナリデータを含まないリクエストの場合、この画面でリクエストを書き換えて再生するリクエスト内容を変更することができます。リクエストを変更するには、画面右の編集部分でリクエストを編集し、編集後に他のノードを選択して変更を保存してください。

ただし、このようなリクエストの変更は、HTTPに関する十分な知識が必要になります。例えば、HTTPボディにパラメータを使用する場合はその設定内容に合わせてContent-Lengthヘッダも適切に設定しなければ本コンポーネントで正しく取得されません。パラメータによるHTTPリクエストの変更は、必要最小限に抑えることをお勧めします。

パラメータの使い方

リクエストを変更する場合、本コンポーネントのインスペクタの「パラメータ」タブで定義したパラメータを置換文字列として使用することが可能です。 例えば、「パラメータ」タブで「param1」という名前を定義し、リクエスト内で$param1または${param1}のようにパラメータを埋め込んでおきます。本コンポーネントの前にMapperコンポーネントを配置し、パラメータ「param1」に値をマッピングします。フロー実行時にparam1に設定した値に置き変わります。

「プレイバック」タブ

「プレイバック」タブには、前述の「レコーディング」タブ上でプレイバックしたデータの一覧が表示されます。 一覧の各エントリは、レコーディングタブで表示されていたリクエスト番号に対する取得されたデータを表示しています。エントリの番号名のあとには、そのデータのMIMEタイプが表示されます。

一覧のエントリを選択すると、画面右には実際に取得されたデータが表示されます。上部に「リクエスト」、「レスポンス」という2つのタブが表示されます。「リクエスト」タブには、Webサーバーに送信したデータが表示されます。「レスポンス」タブには、Webサーバーからの返答データが表示されます。

下部の「Raw」タブには、そのデータのテキストでの表現形式が表示されます。 画像の場合、「JPEG」「GIF」等のペインが表示され、実際の画像データのプレビューをみることができます。 HTMLで返されたデータの場合、「HTML」というタブでプレビューすることができます。(※HTML のプレビューには、Javaで使用されているHTMLEditorKit のクラスを使用しています。このクラスで表示できるHTML(HTML3.2 相当)であれば、プレビューのコンテンツとして表示されます。)

「Raw」タブやプレビュー用のタブを使って、最終的に取得したいデータを探します。
取得するデータを指定するには、左側の一覧で取得したいコンテンツのエントリを右クリックして表示されるメニューから「対応するレコーディングトランザクションを選択して終了」をクリックします。データが指定され、WebMacroFileBrowserを終了します。

プレイバックデータに対応するリクエストデータのエントリを「レコーディング」タブで参照するには、右クリックメニューから「対応するレコーディングトランザクションにジャンプ」をクリックします。
対応するデータをXMLファイルとして書き出しすには、右クリックメニューから「XMLファイルとして書き出す」をクリックします。WebMacroPlayerコンポーネントの出力ストリーム型をXMLにした場合、ここで出力したXMLファイルをフローデザイナーのストリームペインで出力ストリームのフィールド定義としてインポートすると簡単に定義されます。

出力ストリーム型をXMLで出力する

選択するデータがBinaryデータ(JPEGなど)の場合

<Base64>というタグをルートするBase64でエンコードされたデータを含んだ形のXMLファイルとして出力されます。

選択するデータがHTMLデータの場合

HTMLデータはXHTMLに変換されて出力されます。プロパティ「JavaScriptタグを除去する」「名前空間を取り除く」の設定により出力されるXMLは適宜成形されます。

HTMLには、そのデータがどのようなエンコーディングで記述されているかについての情報が存在しないため、ストリームを生成するためにはそのHTMLと同じエンコーディングを「エンコーディグ」プロパティに指定する必要があります。HTMLのエンコーディングはIEを使って実際のデータがどのエンコーディングだったのかを調べることができます。IEで実際取得したいページを開いてみて、そのときのエンコーディングを確認して設定してください。

事前設定

コンテンツを取得するサイトへアクセスするときにプロキシサーバーを経由するかどうかによって設定を行います。

プロキシサーバーを使用する場合

コンテンツを取得するサイトに対して、(1)WebMacroレコーダーで記録するときに経由するプロキシサーバーと(2)フロー実行時にWebMacroPlayerコンポーネントで経由するプロキシサーバーをそれぞれ設定しておく必要があります。(1)と(2)のプロキシサーバーは同じである必要はありません。

(1)WebMacroレコーダーで記録するときに経由するプロキシサーバー

  1. プロキシサーバーのホスト名とポート番号を環境に合わせて設定します。WebMacroレコーダー内部のプロキシサーバーのListenポートを任意に指定することが可能です。デフォルトは「8080」です(すでにポート番号8080を他のサービスなどで使用されている場合には違うポート番号を指定します) 。次に「設定保存」ボタンをクリックし設定を保存します。
  2. IEを起動して、メニューから「ツール」-「インターネットオプション」-「接続(タブ)」-「LANの設定」を表示し、つづいてプロキシサーバー項目内の「詳細設定」ボタンをクリックします。
  3. HTTPの「使用するプロキシのアドレス」に「localhost」、「ポート」にWebMacroレコーダー画面の「Listenポート番号」に指定したポート番号を設定します。また、HTTPSを利用する場合にはSecureに同様の設定がされていることを確認します (その他FTPなどの設定についてはWebMacroレコーダーの動作には関係ありません)。

(2)フローを実行するときに経由するプロキシサーバー

Webブラウザで管理コンソールにアクセスしてプロキシサーバーを設定します。

http://<サーバーアドレス>:28080/ (標準のポート番号の場合)

ログインして「設定」メニューの「プロキシ」で指定します。詳しくは管理コンソールのオンラインヘルプを参照してください。

プロキシサーバーを使用しない場合

WebMacroレコーダーで、Auto proxy IEにチェックが入っていることを確認します。 設定においてWebMacroレコーダー内部のプロキシサーバーのListenポートを任意に指定することが可能です。ここでは8080として設定します (すでにポート番号8080を他のサービスなどで使用されている場合には違うポート番号を指定します)。次に「設定保存」ボタンをクリックし設定を保存します (以下、Listenポート番号は8080として説明します)。

WebMacroオプションの確認手順

ここでは、サンプルとしてローカルのサーバー経由でフローサービスの管理コンソールでログファイルをダウンロードしてみます。サンプルの手順で動作確認する場合、フローサービスを起動しておいてください。また、トピック「事前設定」の「プロキシサーバーを使用しない場合」の設定で確認してください。

  1. 最初にすべてのIEを終了します。
  2. Windowsの「スタート」メニューからフローデザイナーの「WebMacroレコーダー」を選択します。
  3. WebMacroレコーダーの「レコーディング開始」ボタンをクリックし、レコーディングを開始します。
  4. インターネットエクスプローラ(以下、IE)を起動します。IEは必ずWebMacroレコーダーのレコーディング開始後に起動させる必要があります。 設定を確認するには、ここでIEの「ツール」メニューから「インターネットオプション」-「接続(タブ)」-「LANの設定」からプロキシサーバー項目内の「詳細設定」をクリックして、「プロキシの設定」を表示し、「使用するプロキシのアドレス」に「localhost」、適切なポート番号が設定されているかを参照します。
  5. 次にIEからレコーディングしたいサイトに移動し目的のデータを取得します。http://localhost:28080/にアクセスし、ログインします。
  6. 管理コンソールのメニューで「ツール」-「メンテナンス」-「ログ」をクリックします。
  7. 「ダウンロード」ボタンをクリックし、「ファイルのダウンロード」ダイアログが表示されたら一時的にログファイル(ZIP)を保存する場所を指定し、「保存」ボタンを押してダウンロードします。
  8. ダウンロード後、IEを終了します。
  9. WebMacroレコーダーの「レコーディング終了」ボタンをクリックし、レコーディングを終了します。 上記操作でWebMacroレコーダーでのレコーディング作業は終了です。

フローデザイナーを起動し、下記のようなフローを作成します。

  1. フローで、コンポーネントをStart>WebMacroPlayer(Binary)>FilePut>Endと接続します(この例では取得したログファイルを別ファイルとして保存します)。
  2. WebMacroPlayerのプロパティ設定を行います。上記フローでWebMacroPlayerコンポーネントをダブルクリックするか、または右クリックメニューで「トランザクションの選択」を選択します。
  3. localhostディレクトリの中から最新日時のディレクトリ内に、先ほどWebMacroレコーダーでレコーディングしたデータが保存されていることを確認します。次にレコーディングデータのプレイバックを行います。まず、上記のディレクトリを右クリックして表示されるメニューから「プレイバック」をクリックします。
  4. レコーディングが正常に行われていればインジケータが表示され、プレイバックが行われます。
  5. 「プレイバック」タブをクリックし、プレイバックデータを確認します。 プレイバックデータはプレイバックを行った日時のディレクトリに保存されます。
  6. 次に上記ディレクトリから目的のダウンロードデータ(ここではZIPファイル)のリクエストを選択します。目的のリクエストを右クリックして表示されるメニューから「対応するレコーディングトランザクションを選択して終了」をクリックします。
  7. WebMacroPlayerコンポーネントの出力選択済みが「はい」になっていることを確認します。
  8. FilePutコンポーネントのファイルパスに、取得したログファイルを保存する場所を設定します。

以上でWebMacroPlayerコンポーネントの設定及びフローの設定は完了です。この例では、フローデザイナー上で上記フローを実行することで、管理コンソールから最新のログファイル(ZIP形式)を取得することができます。

■【 WebMacroオプションで対応できないサイトについて】

レコーディングされるデータ中のURLが頻繁かつランダムに変わるサイト(またはWebページ)

ログインの都度、ランダムにURLが変わるサイトや、取得するファイル名を含むようなURLをレコーディングした時のように、レコーディング時のURLと再生した時のURLが異なる場合は、WebMacroでは対応できません (再生してもそのURLが存在しないなどの場合があるため)。

対応策:
URLが規則性のある変更(例えば、実行日付など)の場合、その変更に対応したURLを動的に作成し、その文字列をURLリクエスト文字としてWebMacroPlayer に引き渡すことで、データの取得が可能になる場合があります。

ポリシー上、データ取得を認めないサイト

対象Webサイトのセキュリティポリシーにより、データ取得が認められない場合があります。

HTML のXHTML 化がうまくできないWebページ

サイトからHTML データを取得する場合、WebMacroは取得したHTMLデータをXHTML化(XML化)し、その後Mapperコンポーネントを使用して加工することになります。このとき「HTMLのXHTML化」がうまくできないような、複雑あるいはタグの省略など整形されていないHTMLの場合、うまく取得することができません。

HTML の構造が変わった場合

サイトからHTML データを取得する場合、WebMacroは取得したHTMLデータをXHTML化(XML化)し、その後Mapperコンポーネントで加工することになります。対象サイトのHTML の構造が変わりますと、Mapperコンポーネントで認識するXHTML の構造が変わり、取得する値が変わるため、マッピング情報が無効になります。

対応策:
WebMacroPlayerのFileBrowserで再度プレイバックを操作、およびMapperコンポーネントでマッピングし直すことで対応することができます。

Javaアプレットを使っているサイト

WebMacroレコーダーでは、HTTPリクエストを読み取りますが、Javaアプレットを使っているサイトの場合、直接、独自通信している場合があります。この場合、WebMacroレコーダーで読み取ることができないため対応できません。

対応策:
Javaアプレットの通信をHTTPプロキシ経由に設定することが可能で、かつHTTPレスポンスがフローサービスで扱えるデータ形式であれば扱える可能性があります。詳細は弊社サポートまでお問い合わせ下さい。

レコーディングの対象となるサーバーがSSLクライアント認証をおこなっている場合

リクエスト先のサーバーがSSLクライアント認証を行うサイトは、証明書の交換がSSLレベルで行われるため、この情報がWebMacroのレコーディングデータに記録されないため、このようなサイトはサポートできません。