WebMacroレコーダーによって記録した操作をプレイバックして、データを取得して出力ます。
WebMacroレコーダーと本コンポーネントを含むWebMacroオプションの詳細については、下記トピック「WebMacroオプションの使い方」を参照してください。
| 入力 | フォーマット | すべて |
|---|---|---|
| 接続数 | 1 | |
| 説明 | 入力ストリームは使用せず、すべて無視します。 | |
| 出力 | フォーマット | XML,Binary |
| 説明 | 選択したトランザクション(HTTPリクエスト)の結果データを出力します。 |
| 名前 | プロパティ型 | マッピング | 説明 | ||||||
|---|---|---|---|---|---|---|---|---|---|
| 出力選択済み | boolean | - |
WebMacroFileBrowserで出力したいデータのトランザクションが選択されたかどうか表示されます。
|
||||||
| JavaScriptタグを除去する | boolean | - |
出力ストリームに出力されるデータにJavascriptタグが入っている場合、それらのデータを除外した結果を出力するかどうかを選択します。
|
||||||
| 名前空間を取り除く | boolean | - |
出力フォーマットがXMLの場合、DOCTYPEタグとデフォルトの名前空間の属性を含まずに出力するかどうか選択します。
|
||||||
| エンコーディグ | choice | - | 選択したトランザクションの入力データのエンコーディングを指定します。 | ||||||
| プレイバック方法 | choice | - |
プレイバックをWebMacroFileBrowserで指定したトランザクションのどこまでプレイバックするかを指定します。
|
||||||
| プレイバック処理の最適化 | choice | - |
プレイバックの処理を高速化するために最適化レベルを選択できます。
|
||||||
| プラグインクラス | string | 入力&出力 | このプロパティは機能拡張用に予約されたものです。ユーザーはこのプロパティには文字列を設定しないようにしてください。 | ||||||
| パラメータ | category | 入力&出力 |
プレイバックするトランザクションのHTTPリクエストを動的に変更するために使用するパラメータを指定します。 使用方法については下記トピック「パラメータの使い方」を参照してください。 |
| コミット | 何もしません。 |
|---|---|
| ロールバック | 何もしません。 |
| タイプ | パラ メータ | エラー処理フロー へのストリーム | エラー コード | 説明 |
|---|---|---|---|---|
| 汎用 | なし | コンポーネントの入力ストリーム | なし | Webサーバーに接続できない場合 |
| なし | サーバー上のファイルを見つけることができない場合 | |||
| なし | レコーディングデータを読むことができない場合 |
エラーが発生した場合、システム変数「エラーコード」に以下の内容が設定されます。
| エラーの内容 | システム変数「エラーコード」の内容 |
|---|---|
| 通信上でSocketエラーが起きたとき (Webサーバーに接続できない場合等) | SOCKET_EXCEPTION |
| HTTPでエラーが返されたとき (サーバー上でファイルが見つからなかった場合等) | HTTP_ERROR |
| 上記以外のエラー | OTHER_EXCEPTION |
WebMacroオプションを使うと、ユーザーがWebブラウザで操作したページ遷移やフォーム入力などを記録し、フロー設計時に記録の過程で取得するHTMLなどコンテンツを指定して、フロー実行時に本コンポーネントで指定したコンテンツを取得して出力することができます。これにより、フロー実行時のリアルタイムなコンテンツを取得することができます。操作を記録するツール「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オプションで対応できないサイトについて」を参照してください。
ブラウザからの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の設定」ボタンをクリックし、さらに表示されたダイアログボックスの「プロキシ サーバー」グループで以下のように設定します。
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)
本コンポーネントは、フローの実行時にレコーディングされたURLで外部のWebサイトへリクエストを行い、その結果をXHTMLに正規化するか、もしくは変換を行わずBinaryとして取得し、次のコンポーネントに受け渡します。レスポンスがHTMLの場合は出力ストリーム型を「XML」、HTML以外の場合(例えば圧縮データやCSVなど)は出力ストリーム型を「Binary」と指定します。
WebMacroFileBrowserは、WebMacroレコーダーによって記録されたデータの中から、本コンポーネントでどの記録データを使用するかを指定するのに使用します。WebMacroPlayerコンポーネントを右クリックして表示されるメニューの「トランザクションの選択」をクリックするか、またはダブルクリックしてWebMacroFileBrowserを起動します。
WebMacroFileBrowser起動中に記録などを再度行った場合に、記録したデータのディレクトリを再度WebMacroFileBrowserに読み込ませたいときは、ファイルメニューから「リストを最新に更新」を選択すると、画面左の情報が再度読み込まれ最新のデータが表示されます。
画面左に「レコーディング」「プレイバック」の2つのタブが表示されます。
取得するデータを指定するには以下の手順で行います。
「レコーディング」タブには、今までWebMacroレコーダーで記録されたリクエストデータが「サイト」名称をルートとする木構造で表示されます。 「サイト」の下にリクエストしたサーバー名が表示され、サーバー名の中に記録をした日時を名称とするエントリ(以降、DateTimeエントリ)が表示されます。DateTimeエントリの下には、リクエストに対してシーケンシャルに割り当てられた番号が表示されます。番号をクリックするとそのHTTPリクエストの内容が画面右に表示されます。
プレイバックするには、DateTimeエントリを右クリックして表示されるメニューから「プレイバック」をクリックします。レコーディングされたデータに基づいて実際のサーバーにアクセスして、記録した操作がプレイバックされます。プレイバック後、「プレイバック」タブで実際に取得したデータを参照することができます。
削除するには、サーバー名またはDateTimeエントリを右クリックして表示されるメニューから「セッションの削除」をクリックします。
「レコーディング」タブで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ファイルをフローデザイナーのストリームペインで出力ストリームのフィールド定義としてインポートすると簡単に定義されます。
<Base64>というタグをルートするBase64でエンコードされたデータを含んだ形のXMLファイルとして出力されます。
HTMLデータはXHTMLに変換されて出力されます。プロパティ「JavaScriptタグを除去する」「名前空間を取り除く」の設定により出力されるXMLは適宜成形されます。
HTMLには、そのデータがどのようなエンコーディングで記述されているかについての情報が存在しないため、ストリームを生成するためにはそのHTMLと同じエンコーディングを「エンコーディグ」プロパティに指定する必要があります。HTMLのエンコーディングはIEを使って実際のデータがどのエンコーディングだったのかを調べることができます。IEで実際取得したいページを開いてみて、そのときのエンコーディングを確認して設定してください。
コンテンツを取得するサイトへアクセスするときにプロキシサーバーを経由するかどうかによって設定を行います。
コンテンツを取得するサイトに対して、(1)WebMacroレコーダーで記録するときに経由するプロキシサーバーと(2)フロー実行時にWebMacroPlayerコンポーネントで経由するプロキシサーバーをそれぞれ設定しておく必要があります。(1)と(2)のプロキシサーバーは同じである必要はありません。
Webブラウザで管理コンソールにアクセスしてプロキシサーバーを設定します。
http://<サーバーアドレス>:28080/ (標準のポート番号の場合)
ログインして「設定」メニューの「プロキシ」で指定します。詳しくは管理コンソールのオンラインヘルプを参照してください。
WebMacroレコーダーで、Auto proxy IEにチェックが入っていることを確認します。 設定においてWebMacroレコーダー内部のプロキシサーバーのListenポートを任意に指定することが可能です。ここでは8080として設定します (すでにポート番号8080を他のサービスなどで使用されている場合には違うポート番号を指定します)。次に「設定保存」ボタンをクリックし設定を保存します (以下、Listenポート番号は8080として説明します)。
ここでは、サンプルとしてローカルのサーバー経由でフローサービスの管理コンソールでログファイルをダウンロードしてみます。サンプルの手順で動作確認する場合、フローサービスを起動しておいてください。また、トピック「事前設定」の「プロキシサーバーを使用しない場合」の設定で確認してください。
フローデザイナーを起動し、下記のようなフローを作成します。
以上でWebMacroPlayerコンポーネントの設定及びフローの設定は完了です。この例では、フローデザイナー上で上記フローを実行することで、管理コンソールから最新のログファイル(ZIP形式)を取得することができます。
ログインの都度、ランダムにURLが変わるサイトや、取得するファイル名を含むようなURLをレコーディングした時のように、レコーディング時のURLと再生した時のURLが異なる場合は、WebMacroでは対応できません (再生してもそのURLが存在しないなどの場合があるため)。
対応策:
URLが規則性のある変更(例えば、実行日付など)の場合、その変更に対応したURLを動的に作成し、その文字列をURLリクエスト文字としてWebMacroPlayer に引き渡すことで、データの取得が可能になる場合があります。
対象Webサイトのセキュリティポリシーにより、データ取得が認められない場合があります。
サイトからHTML データを取得する場合、WebMacroは取得したHTMLデータをXHTML化(XML化)し、その後Mapperコンポーネントを使用して加工することになります。このとき「HTMLのXHTML化」がうまくできないような、複雑あるいはタグの省略など整形されていないHTMLの場合、うまく取得することができません。
サイトからHTML データを取得する場合、WebMacroは取得したHTMLデータをXHTML化(XML化)し、その後Mapperコンポーネントで加工することになります。対象サイトのHTML の構造が変わりますと、Mapperコンポーネントで認識するXHTML の構造が変わり、取得する値が変わるため、マッピング情報が無効になります。
対応策:
WebMacroPlayerのFileBrowserで再度プレイバックを操作、およびMapperコンポーネントでマッピングし直すことで対応することができます。
WebMacroレコーダーでは、HTTPリクエストを読み取りますが、Javaアプレットを使っているサイトの場合、直接、独自通信している場合があります。この場合、WebMacroレコーダーで読み取ることができないため対応できません。
対応策:
Javaアプレットの通信をHTTPプロキシ経由に設定することが可能で、かつHTTPレスポンスがフローサービスで扱えるデータ形式であれば扱える可能性があります。詳細は弊社サポートまでお問い合わせ下さい。
リクエスト先のサーバーがSSLクライアント認証を行うサイトは、証明書の交換がSSLレベルで行われるため、この情報がWebMacroのレコーディングデータに記録されないため、このようなサイトはサポートできません。