このサイトをビューするために JavaScript を有効化してください。

Altova MapForce 2020 Enterprise Edition

Web サービスの呼び出し

例: RSS フィードからのデータのマッピング

スクロール ホーム トップ その他

この例は、 RSS (Rich Site Summary) フィードからのデータを Microsoft Excel にマップするために、MapForce からジェネリックな HTTP Web サービスを呼び出す方法について説明しています。この例は、次のパスで見つけることのできるマッピングデザインファイルが伴われます: <マイ ドキュメント>\Altova\MapForce2020\MapForceExamples\RssReader.mfd

 

この例では、Web サービスのレスポンスが Altova ブログの RSS フィードからマップされます  ( http://blog.altova.com/feed )。 Web サービスレスポンス構造のスキーマが必要になり、 MapForce は、フィードより返されたデータの構造を作成することができます。必要なスキーマをマイドキュメント フォルダーに相対的な次のパスで見るけることができます:<マイ ドキュメント>\Altova\MapForce2020\MapForceExamples\rss-2-0.xsd

 

RSS フィードの呼び出しは、リクエストパラメーターを必要としません。ですから、  Web サービスの呼び出しのリクエストパートは空です。レスポンスは、 Microsoft Excel ファイルにマップされます。また、各 RSSエントリの公開日を読みやすくするために、 Excel ファイル内で YYYY-MM-DD にフォーマットされます。

 

ですから、マッピングは、次の3つの主要なコンポーネントから構成されます: Web サービスの呼び出し、 ターゲット Excel コンポーネント、データ処理関数。

 

ステップ 1: Web サービスコンポーネントを追加する

1.マッピングの変換言語が BUILT-IN に設定されていることを確認してください ( 変換言語の選択 を参照する)。

2.「挿入」 メニューから、Web サービス関数」をクリックします。

3.「サービスの定義」 から「手動」をクリックします。

4.リクエストメソッドを GET に設定し、 URL を http://blog.altova.com/feed に設定します。

5.「レスポンス」から 「編集」 ボタンをクリックして、 Web サービスレスポンスのためのスキーマを参照します。スキーマは以下のパスで検索することができます: <マイ ドキュメント>\Altova\MapForce2020\MapForceExamples\rss-2-0.xsd.

mf_rss_example_01

6.「OK」をクリックします。

 

この段階では、Web サービスは、マッピングエリアで使用することができ、レスポンスパートからデータをマップすることができます。

mf_rss_example_02

 

ステップ 2: ターゲット Excel コンポーネントを追加する

1.「挿入」 メニューから、「Excel 2007+ ファイル」 をクリックします。

2.サンプルファイルを与えるようにプロンプトされると、 「スキップ」をクリックします。 Excel コンポーネントをマッピングエリアで使用することができます (サンプル JSON ファイルは生成されるため、必要ありません )。

3.シート 1 の横のボタン AddRemove_Selections をクリックします。「名前順にワークシートを表示」 オプションのチェックを解除するためにクリックします。

4.行 1 の横のボタン AddRemove_Selections をクリックします。下に示されるようにオプションを変更します。

mf_rss_example_03

7.レスポンス本文の次のアイテムを Excel コンポーネントの次のアイテムに接続します:

 

Response body

Excel file

channel

Worksheets

title

Worksheet Name

item

Rows

item/title

Row B (Title)

item/link

Row C (Link)

 

この段階では、 行 A (Date) の入力の値が不足しています。この値は次のステップで追加されます。

 

ステップ 3: 日付処理関数を追加する

RSS フィード内のレスポンス内の日付は、 RFC-822 フォーマットで表示されます。例: Wed, 20 Jan 2016 14:49:35 +0000。目標は、しかしながら、YYYY-MM-DD として、 Excel ファイル ファイル内で日付をフォーマットすることです。これを達成するには、 MapForce core ライブラリの substring-afterparse-date 関数マッピングに追加します (関数をマッピングに追加する方法に関しては、次を参照してください: 関数と作業する )。

ex_ws_rss_04

上に表示されるとおり、 substring-after 関数は、pubDate ノードから値を取り、 ,  の後のテキストを返します。 結果の値は マスク [D] [Mn] [Y] を使用して解析し、値を xs:date として返す MapForce core 関数 parse-date にパスされます。フォーマットマスクとは、月初めから数えた日の数値、スペース、月名、4桁の年数の順番で表示することを意味します (詳細に関しては、次を参照してください: format-dateTime 関数)。

 

最後に、解析された値は、 Excel コンポーネントの「日付」行に与えられます。

 

ステップ 4:マッピングの実行

Web サービスを呼び出す準備が整うと、「出力」 ボタンをクリックして、マッピングを実行し、 一般的な出力をプレビューします。Web サービス 呼び出しに成功すると、 「出力」 タブは、返されたデータ構造を表示します。呼び出しに失敗すると、 MapForce は、エラーを状況に応じて返します。

 

MapForce Server が存在する場合、 (http://www.altova.com/ja/mapforce/mapforce-server.html)マッピングをマッピング実行可能ファイル (*.mfx) にコンパイルし、 コマンドライン、または MapForce Server が実行されるサーバーマシン上の MapForce Server API  から実行することができます。(次を参照: マッピングを MapForce Server 実行可能ファイルへコンパイルする )。

 

GET メソッドを使用してリアルタイムに RSS フィード取得するジェネリックな HTTP Web サービスの呼び出しの作成が完了しました。 Web サービスとの作業に関する一般的な情報に関しては、次を参照してください: Web サービス呼び出しの追加 (REST-スタイル).

(C) 2019 Altova GmbH